diff --git a/README.md b/README.md
index b55199d..034f30f 100644
--- a/README.md
+++ b/README.md
@@ -112,7 +112,7 @@ There are no configuration files.
 
 **CLI flags**
 ```
-usage: fail2ban_exporter [<flags>]
+usage: exporter [<flags>]
 
 Flags:
   -h, --help     Show context-sensitive help (also try --help-long and --help-man).
@@ -127,6 +127,8 @@ Flags:
                  username to use to protect endpoints with basic auth
       --web.basic-auth.password=""  
                  password to use to protect endpoints with basic auth
+      --collector.f2b.exit-on-socket-connection-error  
+                 when set to true the exporter will immediately exit on a fail2ban socket connection error
 ```
 
 **Environment variables**
@@ -134,13 +136,14 @@ Flags:
 Each environment variable corresponds to a CLI flag.
 If both are specified, the CLI flag takes precedence.
 
-| Environment variable      | Corresponding CLI flag           |
-|---------------------------|----------------------------------|
-| `F2B_COLLECTOR_SOCKET`    | `--collector.f2b.socket`         |
-| `F2B_COLLECTOR_TEXT_PATH` | `--collector.textfile.directory` |
-| `F2B_WEB_LISTEN_ADDRESS`  | `--web.listen-address`           |
-| `F2B_WEB_BASICAUTH_USER`  | `--web.basic-auth.username`      |
-| `F2B_WEB_BASICAUTH_PASS`  | `--web.basic-auth.password`      |
+| Environment variable            | Corresponding CLI flag                            |
+|---------------------------------|---------------------------------------------------|
+| `F2B_COLLECTOR_SOCKET`          | `--collector.f2b.socket`                          |
+| `F2B_COLLECTOR_TEXT_PATH`       | `--collector.textfile.directory`                  |
+| `F2B_WEB_LISTEN_ADDRESS`        | `--web.listen-address`                            |
+| `F2B_WEB_BASICAUTH_USER`        | `--web.basic-auth.username`                       |
+| `F2B_WEB_BASICAUTH_PASS`        | `--web.basic-auth.password`                       |
+| `F2B_EXIT_ON_SOCKET_CONN_ERROR` | `--collector.f2b.exit-on-socket-connection-error` |
 
 ## 4. Building from source
 
diff --git a/src/cfg/cfg.go b/src/cfg/cfg.go
index 842e12a..bdd383d 100644
--- a/src/cfg/cfg.go
+++ b/src/cfg/cfg.go
@@ -7,19 +7,21 @@ import (
 )
 
 const (
-	socketEnvName            = "F2B_COLLECTOR_SOCKET"
-	fileCollectorPathEnvName = "F2B_COLLECTOR_TEXT_PATH"
-	addressEnvName           = "F2B_WEB_LISTEN_ADDRESS"
-	basicAuthUserEnvName     = "F2B_WEB_BASICAUTH_USER"
-	basicAuthPassEnvName     = "F2B_WEB_BASICAUTH_PASS"
+	socketEnvName                = "F2B_COLLECTOR_SOCKET"
+	fileCollectorPathEnvName     = "F2B_COLLECTOR_TEXT_PATH"
+	addressEnvName               = "F2B_WEB_LISTEN_ADDRESS"
+	basicAuthUserEnvName         = "F2B_WEB_BASICAUTH_USER"
+	basicAuthPassEnvName         = "F2B_WEB_BASICAUTH_PASS"
+	exitOnSocketConnErrorEnvName = "F2B_EXIT_ON_SOCKET_CONN_ERROR"
 )
 
 type AppSettings struct {
-	VersionMode        bool
-	MetricsAddress     string
-	Fail2BanSocketPath string
-	FileCollectorPath  string
-	BasicAuthProvider  *hashedBasicAuth
+	VersionMode           bool
+	MetricsAddress        string
+	Fail2BanSocketPath    string
+	FileCollectorPath     string
+	BasicAuthProvider     *hashedBasicAuth
+	ExitOnSocketConnError bool
 }
 
 func init() {
@@ -64,6 +66,11 @@ func readParamsFromCli(settings *AppSettings) {
 		Default("").
 		Envar(basicAuthPassEnvName).
 		String()
+	rawExitOnSocketConnError := kingpin.
+		Flag("collector.f2b.exit-on-socket-connection-error", "when set to true the exporter will immediately exit on a fail2ban socket connection error").
+		Default("false").
+		Envar(exitOnSocketConnErrorEnvName).
+		Bool()
 
 	kingpin.Parse()
 
@@ -72,6 +79,7 @@ func readParamsFromCli(settings *AppSettings) {
 	settings.Fail2BanSocketPath = *socketPath
 	settings.FileCollectorPath = *fileCollectorPath
 	settings.setBasicAuthValues(*rawBasicAuthUsername, *rawBasicAuthPassword)
+	settings.ExitOnSocketConnError = *rawExitOnSocketConnError
 }
 
 func (settings *AppSettings) setBasicAuthValues(rawUsername, rawPassword string) {
diff --git a/src/collector/f2b/collector.go b/src/collector/f2b/collector.go
index 2b502d6..95f9bd0 100644
--- a/src/collector/f2b/collector.go
+++ b/src/collector/f2b/collector.go
@@ -5,6 +5,7 @@ import (
 	"gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/cfg"
 	"gitlab.com/hectorjsmith/fail2ban-prometheus-exporter/socket"
 	"log"
+	"os"
 )
 
 type Collector struct {
@@ -13,6 +14,7 @@ type Collector struct {
 	lastError                  error
 	socketConnectionErrorCount int
 	socketRequestErrorCount    int
+	exitOnSocketConnError      bool
 }
 
 func NewExporter(appSettings *cfg.AppSettings, exporterVersion string) *Collector {
@@ -23,6 +25,7 @@ func NewExporter(appSettings *cfg.AppSettings, exporterVersion string) *Collecto
 		lastError:                  nil,
 		socketConnectionErrorCount: 0,
 		socketRequestErrorCount:    0,
+		exitOnSocketConnError:      appSettings.ExitOnSocketConnError,
 	}
 }
 
@@ -41,6 +44,9 @@ func (c *Collector) Collect(ch chan<- prometheus.Metric) {
 	if err != nil {
 		log.Printf("error opening socket: %v", err)
 		c.socketConnectionErrorCount++
+		if c.exitOnSocketConnError {
+			os.Exit(1)
+		}
 	} else {
 		defer s.Close()
 	}