diff --git a/monitoring.yml b/monitoring.yml index 1ab0f417..b5284e9a 100644 --- a/monitoring.yml +++ b/monitoring.yml @@ -9,6 +9,8 @@ - targets: [pulsar.adm.crans.org] prometheus_unifi_snmp_targets: - targets: "{{ groups['crans_unifi'] | list | sort }}" + prometheus_apache_targets: + - targets: [zamok.adm.crans.org] roles: - prometheus - prometheus-alertmanager @@ -18,6 +20,11 @@ roles: - prometheus-node +# Export apache metrics +- hosts: zamok.adm.crans.org + roles: + - prometheus-apache + # Deploy grafana - hosts: fy.adm.crans.org vars: diff --git a/roles/prometheus-apache/handlers/main.yml b/roles/prometheus-apache/handlers/main.yml new file mode 100644 index 00000000..88098ed1 --- /dev/null +++ b/roles/prometheus-apache/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart prometheus-apache-exporter + service: + name: prometheus-apache-exporter + state: restarted diff --git a/roles/prometheus-apache/tasks/main.yml b/roles/prometheus-apache/tasks/main.yml new file mode 100644 index 00000000..dcbd0446 --- /dev/null +++ b/roles/prometheus-apache/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: Install prometheus-apache-exporter + apt: + update_cache: true + name: prometheus-apache-exporter + register: apt_result + retries: 3 + until: apt_result is succeeded + +- name: Make prometheus-apache-exporter listen on adm only + lineinfile: + path: /etc/default/prometheus-apache-exporter + regexp: '^ARGS=' + line: | + ARGS="-telemetry.address={{ ansible_hostname }}.adm.crans.org:9117" + notify: Restart prometheus-apache-exporter diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml index 16e53cbc..2c1226c0 100644 --- a/roles/prometheus/tasks/main.yml +++ b/roles/prometheus/tasks/main.yml @@ -57,6 +57,12 @@ content: "{{ prometheus_unifi_snmp_targets | to_nice_json }}" dest: /etc/prometheus/targets_unifi_snmp.json +# We don't need to restart Prometheus when updating nodes +- name: Configure Prometheus Apache targets + copy: + content: "{{ prometheus_apache_targets | to_nice_json }}" + dest: /etc/prometheus/targets_apache.json + - name: Activate prometheus service systemd: name: prometheus diff --git a/roles/prometheus/templates/prometheus/prometheus.yml.j2 b/roles/prometheus/templates/prometheus/prometheus.yml.j2 index aa17aea0..f7e11367 100644 --- a/roles/prometheus/templates/prometheus/prometheus.yml.j2 +++ b/roles/prometheus/templates/prometheus/prometheus.yml.j2 @@ -76,9 +76,21 @@ scrape_configs: - target_label: __address__ replacement: 127.0.0.1:9116 + - job_name: apache + file_sd_configs: + - files: + - '/etc/prometheus/targets_apache.json' + relabel_configs: + # Do not put :9117 in instance name, rather here + - source_labels: [__address__] + target_label: instance + - source_labels: [instance] + target_label: __address__ + replacement: '$1:9117' + - job_name: django scheme: https static_configs: -# - targets: [] + - targets: [] # Activate this line when the captive portal need monitoring - - targets: ["portail-captif.crans.org:443"] +# - targets: ["portail-captif.crans.org:443"]