summaryrefslogtreecommitdiff
path: root/munin-node/tasks/main.yml
diff options
context:
space:
mode:
authorMatthew Fennell <matthew@fennell.dev>2026-09-09 22:00:45 +0100
committerMatthew Fennell <matthew@fennell.dev>2026-09-09 22:00:45 +0100
commitd2ecd350c47312cbf58840c953a9be68990d01e5 (patch)
tree4e4a00507a393a53db11c53c7b0123d262125574 /munin-node/tasks/main.yml
parent0dd7bb008d2079f45b85736549ac524796c1f398 (diff)
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.
Diffstat (limited to 'munin-node/tasks/main.yml')
-rw-r--r--munin-node/tasks/main.yml126
1 files changed, 126 insertions, 0 deletions
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