diff --git a/defaults/main.yml b/defaults/main.yml index e9bd78f..a00ec54 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -275,3 +275,17 @@ prometheus_agent: annotations: title: '{%raw%}{{ $labels.instance }}: Uptime{%endraw%}' description: "Uptime is more than 30 days, please reboot soon" + AptUpgradesPending: + group: nodeexporter + enabled: True + alert: UpgradesPending + expr: | + sum(apt_upgrades_pending{job="node", instance="{{ inventory_hostname }}"}) > 0 or + sum(apt_upgrades_held{job="node", instance="{{ inventory_hostname }}"}) > 0 + for: 25h + labels: + severity: warning + instance: "{{ inventory_hostname }}" + annotations: + title: '{%raw%}{{ $labels.instance }}: AptUpgradesPending{%endraw%}' + description: "Upgrades pending for more than 24 hours" diff --git a/tasks/main.yml b/tasks/main.yml index e98c7c8..df250c8 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,6 +1,8 @@ - name: install node-exporter apt: - pkg: prometheus-node-exporter + pkg: + - prometheus-node-exporter + - prometheus-node-exporter-collectors - name: copy node-exporter config notify: restart node-exporter diff --git a/templates/grafana-promtail.yml.j2 b/templates/grafana-promtail.yml.j2 index 674c89a..1c78ef3 100644 --- a/templates/grafana-promtail.yml.j2 +++ b/templates/grafana-promtail.yml.j2 @@ -35,3 +35,10 @@ scrape_configs: labels: job: nginx __path__: /var/log/nginx/access-promtail.log +- job_name: postfix-bounces + static_configs: + - targets: + - localhost + labels: + job: postfix-bounces + __path__: /var/log/mailman3/bounce.log diff --git a/templates/node-scraper.j2 b/templates/node-scraper.j2 index 3a2afad..ca3d152 100644 --- a/templates/node-scraper.j2 +++ b/templates/node-scraper.j2 @@ -93,8 +93,8 @@ {% for j in prometheus_agent.scrapers[item].proxy|d({}) %} - job_name: "prometheus-agent - proxy - {{ j }} : {{ inventory_hostname }}" scheme: https -{% for i in ['scrape_timeout', 'scrape_interval', 'metrics_path'] if prometheus_agent[i] or i in prometheus_agent.agents.proxy.mappings[j] %} - {{ i }}: {{ prometheus_agent.agents.proxy.mappings[j].get(i, prometheus_agent[i]) }} +{% for i in ['scrape_timeout', 'scrape_interval', 'metrics_path', 'basic_auth'] if (i in prometheus_agent and prometheus_agent[i]) or (i in prometheus_agent.agents.proxy.mappings[j]) %} + {{ i }}: {{ prometheus_agent.agents.proxy.mappings[j].get(i, prometheus_agent[i])|to_json }} {% endfor %} params: {% for i in prometheus_agent.agents.proxy.mappings[j].params|d({}) %}