···
nodeCfg = config.services.munin-node;
cronCfg = config.services.munin-cron;
-
muninPlugins = pkgs.stdenv.mkDerivation {
-
name = "munin-available-plugins";
-
cp --preserve=mode ${pkgs.munin}/lib/plugins/* $out/
-
*/plugin.sh|*/plugins.history)
-
# read magic makers from the file
-
family=$(sed -nr 's/.*#%#\s+family\s*=\s*(\S+)\s*/\1/p' $file)
-
cap=$(sed -nr 's/.*#%#\s+capabilities\s*=\s*(.+)/\1/p' $file)
-
--set PATH "/run/wrappers/bin:/run/current-system/sw/bin" \
-
--set MUNIN_LIBDIR "${pkgs.munin}/lib" \
-
--set MUNIN_PLUGSTATE "/var/run/munin"
-
# munin uses markers to tell munin-node-configure what a plugin can do
-
echo "#%# family=$family" >> $file
-
echo "#%# capabilities=$cap" >> $file
-
# NOTE: we disable disktstats because plugin seems to fail and it hangs html generation (100% CPU + memory leak)
-
buildInputs = [ pkgs.makeWrapper ];
muninConf = pkgs.writeText "munin.conf"
···
···
description = "Munin Node";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment.MUNIN_PLUGSTATE = "/var/run/munin";
echo "updating munin plugins..."
mkdir -p /etc/munin/plugins
rm -rf /etc/munin/plugins/*
-
PATH="/run/wrappers/bin:/run/current-system/sw/bin" ${pkgs.munin}/sbin/munin-node-configure --shell --families contrib,auto,manual --config ${nodeConf} --libdir=${muninPlugins} --servicedir=/etc/munin/plugins 2>/dev/null | ${pkgs.bash}/bin/bash
-
ExecStart = "${pkgs.munin}/sbin/munin-node --config ${nodeConf} --servicedir /etc/munin/plugins/";