Muninのプラグイン書くのに役立つ環境変数たち

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_PLUGSTATEMUNIN_STATEFILE は良い感じです。権限関係でハマることもあるので MUNIN_USERMUNIN_GROUPデバッグ時などにはありがたいです。