summaryrefslogtreecommitdiff
path: root/roles/monitoring/prometheus/server/defaults
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-09-28 18:02:27 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-09-28 18:02:27 +0200
commitc49412b8f31f551ec90b3dcd1d8e8e867a2b1680 (patch)
tree3cc302ee1282f3bd2c7e7a9a0bd6c220bb15e025 /roles/monitoring/prometheus/server/defaults
parentcosmetic fix (diff)
prometheus: add ssl exporter
Diffstat (limited to 'roles/monitoring/prometheus/server/defaults')
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/main.yml2
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_blackbox__probe.yml11
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_ssl.yml3
-rw-r--r--roles/monitoring/prometheus/server/defaults/main/rules_ssl__probe.yml119
4 files changed, 130 insertions, 5 deletions
diff --git a/roles/monitoring/prometheus/server/defaults/main/main.yml b/roles/monitoring/prometheus/server/defaults/main/main.yml
index 1e0ccf78..3aea0509 100644
--- a/roles/monitoring/prometheus/server/defaults/main/main.yml
+++ b/roles/monitoring/prometheus/server/defaults/main/main.yml
@@ -20,6 +20,8 @@ prometheus_server_rules:
blackbox/probe: "{{ prometheus_server_rules_blackbox__probe + prometheus_server_rules_blackbox__probe_extra }}"
ipmi: "{{ prometheus_server_rules_ipmi + prometheus_server_rules_ipmi_extra }}"
ipmi/remote: "{{ prometheus_server_rules_ipmi__remote + prometheus_server_rules_ipmi__remote_extra }}"
+ ssl: "{{ prometheus_server_rules_ssl + prometheus_server_rules_ssl_extra }}"
+ ssl/probe: "{{ prometheus_server_rules_ssl__probe + prometheus_server_rules_ssl__probe_extra }}"
# prometheus_server_alertmanager:
# url: "127.0.0.1:9093"
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_blackbox__probe.yml b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox__probe.yml
index 9f9d2292..5a75abf0 100644
--- a/roles/monitoring/prometheus/server/defaults/main/rules_blackbox__probe.yml
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_blackbox__probe.yml
@@ -1,4 +1,5 @@
---
+## https://awesome-prometheus-alerts.grep.to/rules#blackbox
prometheus_server_rules_blackbox__probe_extra: []
prometheus_server_rules_blackbox__probe:
- alert: BlackboxProbeFailed
@@ -26,16 +27,16 @@ prometheus_server_rules_blackbox__probe:
severity: warning
annotations:
summary: Blackbox SSL certificate will expire soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
- description: "SSL certificate expires in 30 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+ description: "SSL certificate expires in less than 30 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
- - alert: BlackboxSslCertificateWillExpireSoon
- expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 3
+ - alert: BlackboxSslCertificateWillExpireVerySoon
+ expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 7
for: 0m
labels:
severity: critical
annotations:
- summary: Blackbox SSL certificate will expire soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
- description: "SSL certificate expires in 3 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+ summary: Blackbox SSL certificate will expire very soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "SSL certificate expires in less than 7 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
- alert: BlackboxSslCertificateExpired
expr: probe_ssl_earliest_cert_expiry - time() <= 0
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_ssl.yml b/roles/monitoring/prometheus/server/defaults/main/rules_ssl.yml
new file mode 100644
index 00000000..06c7e027
--- /dev/null
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_ssl.yml
@@ -0,0 +1,3 @@
+---
+prometheus_server_rules_ssl_extra: []
+prometheus_server_rules_ssl: []
diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_ssl__probe.yml b/roles/monitoring/prometheus/server/defaults/main/rules_ssl__probe.yml
new file mode 100644
index 00000000..8805de0a
--- /dev/null
+++ b/roles/monitoring/prometheus/server/defaults/main/rules_ssl__probe.yml
@@ -0,0 +1,119 @@
+---
+prometheus_server_rules_ssl__probe_extra: []
+prometheus_server_rules_ssl__probe:
+ - alert: SslCertificateProbeFailed
+ expr: ssl_probe_success == 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: SSL certificate probe failed (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "Failed to fetch SSL certificate information {{ '{{' }} $labels.instance {{ '}}' }}\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+
+ - alert: SslCertificateExpiresSoon
+ expr: ssl_cert_not_after - time() < 86400 * 30
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: SSL certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate {{ '{{' }} $labels.cn {{ '}}' }} is expiring in less than 30 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateExpiresVerySoon
+ expr: ssl_cert_not_after - time() < 86400 * 7
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: SSL certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate {{ '{{' }} $labels.cn {{ '}}' }} is expiring in less than 7 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateChainExpiresSoon
+ expr: ssl_verified_cert_not_after - time() < 86400 * 30
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: SSL chain certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The chain certificate {{ '{{' }} $labels.cn {{ '}}' }} is expiring in less than 30 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateChainExpiresVerySoon
+ expr: ssl_verified_cert_not_after - time() < 86400 * 7
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: SSL chain certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The chain certificate {{ '{{' }} $labels.cn {{ '}}' }} is expiring in less than 7 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateOscpStatusUnknown
+ expr: ssl_ocsp_response_status == 2
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: SSL certificate OSCP status unknown (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "Failed to get the OSCP status for {{ '{{' }} $labels.cn {{ '}}' }}\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+
+ - alert: SslCertificateOscpStatusRevoked
+ expr: ssl_ocsp_response_status == 1
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: SSL certificate revoked (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "OCSP reports SSL certificate {{ '{{' }} $labels.cn {{ '}}' }} as revoked\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = {{ '{{' }} $labels {{ '}}' }}"
+
+ - alert: SslCertificateFileExpiresSoon
+ expr: ssl_file_cert_not_after - time() < 86400 * 30
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: SSL certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate in {{ '{{' }} $labels.file {{ '}}' }} is expiring in less than 30 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateFileExpiresVerySoon
+ expr: ssl_file_cert_not_after - time() < 86400 * 7
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: SSL certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate in {{ '{{' }} $labels.file {{ '}}' }} is expiring in less than 7 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateKubernetesExpiresSoon
+ expr: ssl_kubernetes_cert_not_after - time() < 86400 * 30
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: SSL kubernetes certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate in kubernetes secret {{ '{{' }} $labels.namespace {{ '}}' }}/{{ '{{' }} $labels.secret {{ '}}' }} is expiring in less than 30 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateKubernetesExpiresVerySoon
+ expr: ssl_kubernetes_cert_not_after - time() < 86400 * 7
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: SSL kubernetes certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate in kubernetes secret {{ '{{' }} $labels.namespace {{ '}}' }}/{{ '{{' }} $labels.secret {{ '}}' }} is expiring in less than 7 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateKubeconfigExpiresSoon
+ expr: ssl_kubeconfig_cert_not_after - time() < 86400 * 30
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: SSL kubeconfig certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate in kubeconfig {{ '{{' }} $labels.kubeconfig {{ '}}' }} is expiring in less than 30 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"
+
+ - alert: SslCertificateKubeconfigExpiresVerySoon
+ expr: ssl_kubeconfig_cert_not_after - time() < 86400 * 7
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: SSL kubeconfig certificate expires soon (instance {{ '{{' }} $labels.instance {{ '}}' }})
+ description: "The certificate in kubeconfig {{ '{{' }} $labels.kubeconfig {{ '}}' }} is expiring in less than 7 days\n VALUE = {{ '{{' }} $value {{ '}}' }}\n LABELS = BRACEOPEN $labels {{ '}}' }}"