feat(munin): add third party plugin installation

Amolith created

Details plugin paths, symlinking, and munin-node-configure usage.

Change summary

skills/monitoring-with-munin/SKILL.md | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)

Detailed changes

skills/monitoring-with-munin/SKILL.md 🔗

@@ -85,9 +85,36 @@ echo 'quit' | nc -w3 <node_ip> 4949
 
 A working node responds with `# munin node at <hostname>` followed by the plugin list.
 
+## Installing third-party plugins
+
+Third-party plugins (including our custom ones) go in `/usr/local/munin/lib/plugins/`, **not** the distribution plugin directory (`/usr/share/munin/plugins/` on Debian, `/usr/lib/munin/plugins/` on Arch). This avoids package updates overwriting custom plugins.
+
+```bash
+mkdir -p /usr/local/munin/lib/plugins
+cp my_plugin /usr/local/munin/lib/plugins/
+chmod +x /usr/local/munin/lib/plugins/my_plugin
+```
+
+Create symlinks in `/etc/munin/plugins/` manually:
+
+```bash
+# Simple plugin
+ln -s /usr/local/munin/lib/plugins/my_plugin /etc/munin/plugins/my_plugin
+# Wildcard plugin
+ln -s /usr/local/munin/lib/plugins/my_plugin_ /etc/munin/plugins/my_plugin_instance
+```
+
+Auto-detection with `munin-node-configure` requires `--libdir`:
+
+```bash
+munin-node-configure --libdir /usr/local/munin/lib/plugins --shell
+```
+
+Note: `munin-node-configure` runs `autoconf`/`suggest` as the munin user. Plugins that need root (e.g. smartctl) will hang. For those, run `autoconf` and `suggest` manually as root and create symlinks by hand.
+
 ## Writing plugins
 
-A plugin is any executable in `/etc/munin/plugins/` (usually a symlink to `/usr/share/munin/plugins/` or `/usr/lib/munin/plugins/`). It must handle two invocations:
+A plugin is any executable in `/etc/munin/plugins/` (usually a symlink from the plugin library directory). It must handle two invocations:
 
 ```bash
 ./plugin config    # print graph metadata