Muninのプラグインを何本も書いてきましたが、最近になってプラグイン書くのに役立つ環境変数があることを知りました。
実際の変数を出力したければ以下のようなファイル作って munin-run
実行してみるだけです。
$ cat /etc/munin/plugins/test #!/bin/bash env
こんな感じの変数出力が得られます。
$ munin-run test | grep MUNIN MUNIN_BASH=/bin/bash MUNIN_PLUGSTATE=/var/lib/munin/plugin-state/nobody MUNIN_PERL=/usr/bin/perl MUNIN_STATEDIR=/var/run/munin MUNIN_PYTHON=/usr/bin/python MUNIN_PLUGINUSER=nobody MUNIN_LOGDIR=/var/log/munin MUNIN_PERLLIB=/usr/share/perl5/vendor_perl MUNIN_HASSETR=1 MUNIN_LIBDIR=/usr/share/munin MUNIN_HTMLDIR=/var/www/html/munin MUNIN_DEBUG=0 MUNIN_CAP_MULTIGRAPH=1 MUNIN_OSTYPE=linux MUNIN_BINDIR=/usr/bin MUNIN_GOODSH=/bin/sh MUNIN_SBINDIR=/usr/sbin MUNIN_HOSTNAME=localhost.localdomain MUNIN_VERSION=2.0.30 MUNIN_MASTER_IP= MUNIN_DOCDIR=/usr/share/doc/munin-2.0.30 MUNIN_RUBY=/usr/bin/ruby MUNIN_CGIDIR=/var/www/cgi-bin MUNIN_MANDIR=/usr/man MUNIN_SPOOLDIR=/var/lib/munin/spool MUNIN_DBDIR=/var/lib/munin MUNIN_CGITMPDIR= MUNIN_CONFDIR=/etc/munin MUNIN_STATEFILE=/var/lib/munin/plugin-state/nobody/test- MUNIN_USER=nobody MUNIN_GROUP=nobody MUNIN_PREFIX=/usr MUNIN_MKTEMP=mktemp -p /tmp/ MKTEMP =
ディレクトリ系は言うまでも無く役立ちます。特に MUNIN_PLUGSTATE
や MUNIN_STATEFILE
は良い感じです。権限関係でハマることもあるので MUNIN_USER
や MUNIN_GROUP
もデバッグ時などにはありがたいです。