You've already forked prometheus-fail2ban-exporter
fix: recover from fail2ban server restarts
Update the code collecting metrics to open a new socket connection each time metrics are collected. This ensures that a new socket connection is used each time and avoids errors caused by fail2ban being restarted.
This commit is contained in:
@ -21,15 +21,19 @@ type JailStats struct {
|
||||
BannedTotal int
|
||||
}
|
||||
|
||||
func MustConnectToSocket(path string) *Fail2BanSocket {
|
||||
func ConnectToSocket(path string) (*Fail2BanSocket, error) {
|
||||
c, err := net.Dial("unix", path)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to open fail2ban socket: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
return &Fail2BanSocket{
|
||||
socket: c,
|
||||
encoder: ogórek.NewEncoder(c),
|
||||
}
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Fail2BanSocket) Close() error {
|
||||
return s.socket.Close()
|
||||
}
|
||||
|
||||
func (s *Fail2BanSocket) Ping() bool {
|
||||
|
Reference in New Issue
Block a user