Zabbix の UserParameter を使用して、MySql が起動しているかどうかを確認しようとしています。
UserParameterは次のようになります。
ユーザーパラメータ=mysql.ping、sudo mysqladmin ping | grep -c alive | wc -l
mysqladmin ping | grep -c alive
サーバーで実行すると、正しい応答が返されます。
#mysqladmin ping | grep alive | wc -l
1
しかし、zabbix ユーザーとしてコマンドを実行しようとすると、次のエラーが発生します。
# sudo -u zabbix sudo mysqladmin ping | grep alive | wc -l mysqladmin: 'localhost' のサーバーへの接続に失敗しました エラー: 'ユーザー 'root'@'localhost' のアクセスが拒否されました (>パスワードを使用: NO)'
0
以下を実行するだけで動作します:
# sudo -u zabbix mysqladmin
..mysqladmin のさまざまなコマンドを一覧表示する
パスワードを必要としない zabbix を sudoers リストに追加しました。
この問題は MySql にのみ発生し、他のすべての UserParameters (メール、ロードなど) は正常に動作しています。
答え1
こうした面倒な作業を行う必要はありません。UserParameter=mysql.status を使用して、my.cnf と zabbix エージェントを設定できます。
問題の解決策は次のとおりです:
https://www.zabbix.com/forum/showthread.php?t=40870