# SPDX-FileCopyrightText: 2026 Matthew Fennell # # SPDX-License-Identifier: AGPL-3.0-or-later --- - name: Ensure required packages are installed ansible.builtin.apt: name: - munin-node # Graphs and monitoring state: present update_cache: true become: true - name: Ensure prosody packages are installed ansible.builtin.apt: name: - libdbi-perl # Used by munin postgres plugins state: present update_cache: true when: "'prosody' in extra_profiles" 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: munin-node.conf.j2 dest: /etc/munin/munin-node.conf owner: root group: root mode: "0644" become: true notify: Restart munin-node - name: Ensure default 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: 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 - name: Ensure prosody 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: 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 when: "'prosody' in extra_profiles" notify: Restart munin-node