From d2ecd350c47312cbf58840c953a9be68990d01e5 Mon Sep 17 00:00:00 2001 From: Matthew Fennell Date: Wed, 9 Sep 2026 22:00:45 +0100 Subject: Copy munin-node tasks & handlers from xmpp-server This is a straightforward copy and delete from the xmpp-server playbook for now. Cleanup (for instance, adding a prefix to the variable names) will come later. --- munin-node/handlers/main.yml | 6 +++ munin-node/tasks/main.yml | 126 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) diff --git a/munin-node/handlers/main.yml b/munin-node/handlers/main.yml index d8d22f9..2b69d03 100644 --- a/munin-node/handlers/main.yml +++ b/munin-node/handlers/main.yml @@ -3,3 +3,9 @@ # SPDX-License-Identifier: AGPL-3.0-or-later --- + +- name: Restart munin-node + ansible.builtin.service: + name: munin-node + state: restarted + become: true diff --git a/munin-node/tasks/main.yml b/munin-node/tasks/main.yml index d8d22f9..342a3f7 100644 --- a/munin-node/tasks/main.yml +++ b/munin-node/tasks/main.yml @@ -3,3 +3,129 @@ # SPDX-License-Identifier: AGPL-3.0-or-later --- + +- name: Ensure required packages are installed + ansible.builtin.apt: + name: + - libdbi-perl # Used by munin postgres plugins + - munin-node # Graphs and monitoring + state: present + update_cache: true + become: true + +- name: Ensure munin-node tcp ports are open + community.general.ufw: + rule: allow + port: "{{ item }}" + proto: tcp + state: enabled + loop: + - 4949 # Munin + become: true + +- name: Ensure munin is configured + ansible.builtin.template: + src: "{{ playbook_dir }}/files/munin-node.conf.j2" + dest: /etc/munin/munin-node.conf + owner: root + group: root + mode: "0644" + become: true + notify: Restart munin-node + +- name: Ensure munin plugins are configured + ansible.builtin.file: + src: "/usr/share/munin/plugins/{{ item.src }}" + dest: "/etc/munin/plugins/{{ item.dest }}" + owner: root + group: root + state: link + become: true + with_items: + - src: apt_all + dest: apt_all + - src: cpu + dest: cpu + - src: df + dest: df + - src: df_abs + dest: df_abs + - src: df_inode + dest: df_inode + - src: diskstats + dest: diskstats + - src: entropy + dest: entropy + - src: forks + dest: forks + - src: fw_conntrack + dest: fw_conntrack + - src: fw_forwarded_local + dest: fw_forwarded_local + - src: fw_packets + dest: fw_packets + - src: if_ + dest: if_enp1s0 + - src: if_err_ + dest: if_err_enp1s0 + - src: irqstats + dest: irqstats + - src: load + dest: load + - src: memory + dest: memory + - src: netstat + dest: netstat + - src: open_files + dest: open_files + - src: open_inodes + dest: open_inodes + - src: postgres_autovacuum + dest: postgres_autovacuum + - src: postgres_bgwriter + dest: postgres_bgwriter + - src: postgres_cache_ + dest: postgres_cache_prosody + - src: postgres_checkpoints + dest: postgres_checkpoints + - src: postgres_connections_ + dest: postgres_connections_prosody + - src: postgres_connections_db + dest: postgres_connections_db + - src: postgres_locks_ + dest: postgres_locks_prosody + - src: postgres_oldest_prepared_xact_ + dest: postgres_oldest_prepared_xact_prosody + - src: postgres_prepared_xacts_ + dest: postgres_prepared_xacts_prosody + - src: postgres_querylength_ + dest: postgres_querylength_prosody + - src: postgres_scans_ + dest: postgres_scans_prosody + - src: postgres_size_ + dest: postgres_size_prosody + - src: postgres_streaming_ + dest: postgres_streaming_prosody + - src: postgres_transactions_ + dest: postgres_transactions_prosody + - src: postgres_tuples_ + dest: postgres_tuples_prosody + - src: postgres_users + dest: postgres_users + - src: postgres_xlog + dest: postgres_xlog + - src: proc_pri + dest: proc_pri + - src: processes + dest: processes + - src: swap + dest: swap + - src: threads + dest: threads + - src: uptime + dest: uptime + - src: users + dest: users + - src: vmstat + dest: vmstat + notify: Restart munin-node -- cgit v1.2.3