diff --git a/README.md b/README.md index 1300e7f..4766da8 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,10 @@ The list of parameters are: * `HUBITAT_TOPIC_PREFIXES`: MQTT topic used for Hubitat messages (default: "hubitat/") * `EXPOSE_LAST_SEEN`: Enable additional gauges exposing last seen timestamp for each metrics * `PARSE_MSG_PAYLOAD`: Enable parsing and metrics of the payload. (default: true) + * `PROMETHEUS_CERT`: Certificate to use for HTTPS. (default: None) + * `PROMETHEUS_CERT_KEY`: Key file for the certificate. Note: you must specify both _CERT and _CERT_KEY, otherwise it will use plain http. (default: None) + * `PROMETHEUS_CA`: File for a custom root CA to use. (default: None) + * `PROMETHEUS_CA_DIR`: Path to a directory with CA certificates to use. (default: None) ### Deployment diff --git a/mqtt_exporter/main.py b/mqtt_exporter/main.py index 010a980..b245722 100644 --- a/mqtt_exporter/main.py +++ b/mqtt_exporter/main.py @@ -538,7 +538,9 @@ def stop_request(signum, frame): signal.signal(signal.SIGINT, stop_request) # start prometheus server - start_http_server(settings.PROMETHEUS_PORT, settings.PROMETHEUS_ADDRESS) + start_http_server(settings.PROMETHEUS_PORT, settings.PROMETHEUS_ADDRESS, \ + certfile = settings.PROMETHEUS_CERT, keyfile = settings.PROMETHEUS_CERT_KEY, \ + client_cafile = settings.PROMETHEUS_CA, client_capath = settings.PROMETHEUS_CA_DIR) # define mqtt client client.on_connect = subscribe diff --git a/mqtt_exporter/settings.py b/mqtt_exporter/settings.py index ba40694..70f5567 100644 --- a/mqtt_exporter/settings.py +++ b/mqtt_exporter/settings.py @@ -28,5 +28,9 @@ MQTT_TLS_NO_VERIFY = os.getenv("MQTT_TLS_NO_VERIFY", "False") == "True" PROMETHEUS_ADDRESS = os.getenv("PROMETHEUS_ADDRESS", "0.0.0.0") PROMETHEUS_PORT = int(os.getenv("PROMETHEUS_PORT", "9000")) +PROMETHEUS_CERT = os.getenv("PROMETHEUS_CERT", None) +PROMETHEUS_CERT_KEY = os.getenv("PROMETHEUS_CERT_KEY", None) +PROMETHEUS_CA = os.getenv("PROMETHEUS_CA", None) +PROMETHEUS_CA_DIR = os.getenv("PROMETHEUS_CA_DIR", None) KEEP_FULL_TOPIC = os.getenv("KEEP_FULL_TOPIC", "False") == "True"