eae-am-deutschen-platz/playbook_provision_monitori...

169 lines
4.0 KiB
YAML

---
- name: provision node exporters
hosts:
- server
- vms
- container
vars:
package_names:
OpenBSD: node_exporter
Debian: prometheus-node-exporter
tasks:
- name: install node exporter
package:
name: "{{ package_names[ansible_distribution] }}"
- name: start and enable node_exporter
service:
name: "{{ package_names[ansible_distribution] }}"
state: started
enabled: yes
- name: provision blackbox exporters
hosts:
- mon-e2e-clients01
- mon-e2e-wan01
- monitoring01
tasks:
- name: install blackbox exporter
package:
name: prometheus-blackbox-exporter
- name: add net raw capability to blackbox exporter
capabilities:
path: /usr/bin/prometheus-blackbox-exporter
capability: cap_net_raw+ep
notify:
- restart blackbox-exporter
- name: configure blackbox-exporter
copy:
src: files/blackbox.yml
dest: /etc/prometheus/blackbox.yml
owner: root
group: root
mode: 0644
validate: "prometheus-blackbox-exporter --config.file='%s' --config.check"
notify:
- restart blackbox-exporter
handlers:
- name: restart blackbox-exporter
service:
name: prometheus-blackbox-exporter
state: restarted
- name: provision monitoring
hosts:
- eae-adp-jump01
tasks:
- name: install prometheus stack
package:
name:
- prometheus
- snmp_exporter
- alertmanager
- grafana
- name: configure alertmanager
template:
src: templates/alertmanager.yml.j2
dest: /etc/alertmanager/alertmanager.yml
validate: "/usr/local/bin/amtool check-config %s"
notify:
- reload alertmanager
- name: configure prometheus alerting rules
copy:
src: files/alerting_rules.yml
dest: /etc/prometheus/alerting_rules.yml
validate: "/usr/local/bin/promtool check rules %s"
notify:
- reload prometheus
- name: configure prometheus
template:
src: templates/prometheus.yml
dest: /etc/prometheus/prometheus.yml
validate: "/usr/local/bin/promtool check config %s"
notify:
- reload prometheus
- name: enable anonymous login in grafana
blockinfile:
path: /etc/grafana/config.ini
block: |
[auth.anonymous]
enabled = true
org_role = Viewer
notify:
- restart grafana
- name: template grafana datasource provisioning
template:
src: "{{ item }}"
dest: /etc/grafana/provisioning/datasources/
owner: root
group: _grafana
mode: 0640
with_fileglob:
- "templates/grafana/provisioning/datasources/*"
notify:
- restart grafana
- name: create /etc/grafana/dashboards
file:
path: /etc/grafana/dashboards
state: directory
owner: root
group: _grafana
mode: 0755
- name: install dashboards
copy:
src: "{{ item }}"
dest: /etc/grafana/dashboards/
owner: root
group: _grafana
mode: 0640
with_fileglob:
- "templates/grafana/dashboards/*"
- name: template grafana dashboard provisioning
copy:
src: "{{ item }}"
dest: /etc/grafana/provisioning/dashboards/
owner: root
group: _grafana
mode: 0644
with_fileglob:
- "templates/grafana/provisioning/dashboards/*"
notify:
- restart grafana
- name: enable and start monitoring stack
service:
name: "{{ item }}"
enabled: true
state: started
with_items:
- prometheus
- snmp_exporter
- alertmanager
- grafana
handlers:
- name: reload prometheus
shell:
cmd: "kill -SIGHUP $(pgrep prometheus)"
- name: reload alertmanager
shell:
cmd: "kill -SIGHUP $(pgrep alertmanager)"
- name: restart grafana
service:
name: grafana
state: restarted