Nagiosのcheck_mysqlに.my.cnfを参照させる

MySQLの稼働やレプリケーション監視は柔軟性が欲しくて自前のスクリプトでやっているのですが、それとは別にNagiosでの監視もそれはそれで欲しいよね、という話。

check_mysqlに直接パスワード渡すとかないわー、と思って.my.cnfを渡す方法を探してみた。

$HOMEさえ設定してやれば、check_mysqlが.my.cnfを読み込んでくれるらしい。

で、こういう風に書くと実際のnagiosユーザのホームディレクトリ(/etc/passwdの設定)は関係ないので、好きなところに.my.cnfを配置出来ると。

define command{
    command_name    check_mysql
    command_line    HOME=/home/nagios $USER1$/check_mysql -H $HOSTADDRESS$
}

この例では、/home/nagios/を手動で作って、そこに

[client]
user = replication_user
password = password

みたいな.my.cnfを置いた。

これでわりといい感じに監視出来るようになりました。