diff --git a/cluster/staging/app/telemetry/config/prometheus.yml b/cluster/staging/app/telemetry/config/prometheus.yml index 9930130..ced52cc 100644 --- a/cluster/staging/app/telemetry/config/prometheus.yml +++ b/cluster/staging/app/telemetry/config/prometheus.yml @@ -16,6 +16,17 @@ scrape_configs: cert_file: /etc/prometheus/consul-client.crt key_file: /etc/prometheus/consul-client.key + - job_name: 'smartctl-exporter' + scrape_interval: 60s + consul_sd_configs: + - server: 'https://localhost:8501' + services: + - 'smartctl-exporter' + tls_config: + ca_file: /etc/prometheus/consul.crt + cert_file: /etc/prometheus/consul-client.crt + key_file: /etc/prometheus/consul-client.key + - job_name: 'garage' authorization: type: Bearer diff --git a/cluster/staging/app/telemetry/deploy/telemetry-system.hcl b/cluster/staging/app/telemetry/deploy/telemetry-system.hcl index 9cd254a..71a7ff0 100644 --- a/cluster/staging/app/telemetry/deploy/telemetry-system.hcl +++ b/cluster/staging/app/telemetry/deploy/telemetry-system.hcl @@ -3,47 +3,92 @@ job "telemetry-system" { type = "system" priority = "100" - group "collector" { - network { - port "node_exporter" { static = 9100 } - } + group "node_exporter" { + network { + port "node_exporter" { static = 9100 } + } - task "node_exporter" { - driver = "docker" + task "node_exporter" { + driver = "docker" - config { - image = "quay.io/prometheus/node-exporter:v1.8.1" - network_mode = "host" - volumes = [ - "/:/host:ro,rslave" - ] - args = [ "--path.rootfs=/host" ] - } + config { + image = "quay.io/prometheus/node-exporter:v1.8.1" + network_mode = "host" + volumes = [ + "/:/host:ro,rslave" + ] + args = [ "--path.rootfs=/host" ] + } - resources { - cpu = 50 - memory = 40 - } + resources { + cpu = 50 + memory = 40 + } - service { - tags = [ "telemetry" ] - port = 9100 - address_mode = "driver" - name = "node-exporter" - check { - type = "http" - path = "/" - port = 9100 - address_mode = "driver" - interval = "60s" - timeout = "5s" - check_restart { - limit = 3 - grace = "90s" - ignore_warnings = false - } - } - } - } - } - } + service { + tags = [ "telemetry" ] + port = 9100 + address_mode = "driver" + name = "node-exporter" + check { + type = "http" + path = "/" + port = 9100 + address_mode = "driver" + interval = "60s" + timeout = "5s" + check_restart { + limit = 3 + grace = "90s" + ignore_warnings = false + } + } + } + } + } + + group "smartctl_exporter" { + network { + port "smartctl_exporter" { static = 9101 } + } + + task "smartctl_exporter" { + driver = "docker" + user = "root" + + config { + image = "prometheuscommunity/smartctl-exporter:v0.13.0" + network_mode = "host" + privileged = true + args = [ + "--web.listen-address=0.0.0.0:9101" + ] + } + + resources { + cpu = 50 + memory = 40 + } + + service { + tags = [ "telemetry" ] + port = 9101 + address_mode = "driver" + name = "smartctl-exporter" + check { + type = "http" + path = "/" + port = 9101 + address_mode = "driver" + interval = "60s" + timeout = "5s" + check_restart { + limit = 3 + grace = "90s" + ignore_warnings = false + } + } + } + } + } +} diff --git a/doc/ports b/doc/ports index 73fdb48..116a5f2 100644 --- a/doc/ports +++ b/doc/ports @@ -47,5 +47,6 @@ ports so that we can avoid conflicts when adding services. 8999 opendkim 9090 prometheus 9100 node_exporter +9101 smartctl_exporter 9334 tricot metrics 9991 guichet