diff options
-rw-r--r-- | ansible/group_vars/all/nftables.yml | 9 | ||||
-rw-r--r-- | ansible/host_vars/lovelace/prometheus.yml | 9 | ||||
-rw-r--r-- | ansible/inventory/hosts.yaml | 3 | ||||
-rw-r--r-- | ansible/playbook.yml | 2 | ||||
-rw-r--r-- | ansible/roles/prometheus/tasks/main.yml | 16 |
5 files changed, 37 insertions, 2 deletions
diff --git a/ansible/group_vars/all/nftables.yml b/ansible/group_vars/all/nftables.yml index eba3319..68d0bbd 100644 --- a/ansible/group_vars/all/nftables.yml +++ b/ansible/group_vars/all/nftables.yml @@ -60,6 +60,15 @@ nftables_configuration: | iifname {{ ansible_default_ipv6.interface }} udp dport {{ wireguard_port }} ct state new accept {% endif %} + + {% if "monitoring" in group_names %} + # Prometheus connections + iifname {{ ansible_default_ipv4.interface }} tcp dport 9090 ct state new accept + {% if ansible_default_ipv6 is defined %} + iifname {{ ansible_default_ipv6.interface }} tcp dport 9090 ct state new accept + {% endif %} + {% endif %} + {% if "databases" in group_names %} # PostgreSQL connections iifname {{ ansible_default_ipv4.interface }} ip saddr @possible_lke_ipv4_addrs tcp dport postgresql ct state new accept diff --git a/ansible/host_vars/lovelace/prometheus.yml b/ansible/host_vars/lovelace/prometheus.yml index 5d114a1..cf748d0 100644 --- a/ansible/host_vars/lovelace/prometheus.yml +++ b/ansible/host_vars/lovelace/prometheus.yml @@ -1,4 +1,13 @@ --- + +prometheus_cmdline_options: " --web.config.file=/etc/prometheus/web_config.yml" + +prometheus_web_configuration: + tls_server_config: + cert_file: "/etc/letsencrypt/live/prometheus.{{ inventory_hostname }}.box.pydis.wtf/fullchain.pem" + key_file: "/etc/letsencrypt/live/prometheus.{{ inventory_hostname }}.box.pydis.wtf/privkey.pem" + + prometheus_configuration: global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. diff --git a/ansible/inventory/hosts.yaml b/ansible/inventory/hosts.yaml index 5d8e3cb..6a6a47d 100644 --- a/ansible/inventory/hosts.yaml +++ b/ansible/inventory/hosts.yaml @@ -13,5 +13,8 @@ all: databases: hosts: lovelace: + monitoring: + hosts: + lovelace: vars: wireguard_port: 46850 diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 62fc2d0..0cb4cf6 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -12,7 +12,7 @@ - unattended-upgrades - name: Deploy our monitoring stack - hosts: lovelace + hosts: monitoring roles: - prometheus - prometheus-blackbox-exporter diff --git a/ansible/roles/prometheus/tasks/main.yml b/ansible/roles/prometheus/tasks/main.yml index a4565a1..c8ba53f 100644 --- a/ansible/roles/prometheus/tasks/main.yml +++ b/ansible/roles/prometheus/tasks/main.yml @@ -18,7 +18,7 @@ notify: - Restart the prometheus service -- name: Configure prometheus +- name: Deploy prometheus general config copy: content: | # Ansible managed @@ -32,6 +32,20 @@ notify: - Reload the prometheus service +- name: Deploy prometheus web server config + copy: + content: | + # Ansible managed + {{ prometheus_web_configuration | to_nice_yaml }} + dest: /etc/prometheus/web_config.yml + owner: prometheus + group: prometheus + mode: "0400" + tags: + - role::prometheus + notify: + - Reload the prometheus service + - name: Configure prometheus rules copy: content: | |