MySQL監視について
引き続きMySQL監視ではまっております。
概要:
Template_APP_MySQLを設定したが、アイテムのMySQL部の全てが
”Not supported by ZABBIX agent”と表示される。
環境:
RedHat Linux EE 4.6
ZABBIX 1.6.5
テストは単体で行っております。
状況:
・zabbix_agend.confの設定
EnableRemoteCommands=1
UserParameter=mysql.version,mysql -V
(mysqlは他も設定、状況説明上省略しています。)
・エージェント再起動
28022:20091112:105711 cfg: para: [UserParameter] val [mysql.version,mysql -V]
28022:20091112:105711 Accepted configuration parameter: 'UserParameter' = 'mysql.version,mysql -V'
・ホストにテンプレートを登録した際
サーバ側ログ
1465:20091112:110054 Item [hogehoge.com:version[mysql]] error: Not supported by ZABBIX agent
1465:20091112:110054 Parameter [version[mysql]] is not supported by agent on host [hogehoge.com] Old status [0]
エージェント側ログ(ログレベル4で取得)
28030:20091112:110054 Requested [version[mysql]]
rootでmysql -Vを実行するとバージョン表示できる事を確認。
zabbixアカウントの問題かなと思い、passwdのログインシェルを/sbin/nologin => /bin/bashに変更後、再度su - zabbix後にmysql -Vを実行しバージョン確認後でも状況は変化せず。
ちょっとした設定の違いだとは思いますが、見つかりません。
何か設定する点が有ればご指導お願いします。
KAZ - 投稿数: 1085
sugapさん
アイテムのキーは「mysql.version」になっていますか?
ログからだと「version[mysql]」になっているように見えますが…
sugap - 投稿数: 5
KAZさん ありがとうございます。
アイテムのmysql[version]をmysql.versionにするとOKになりました。
ありがとうございます。
一つ腑に落ちないのですが、デフォルトで設定していたのですが、
テンプレートではmysql[version]に対し、zabbix_agentdではmysql.versionと記述しています。
私はサーバではmysql[version]と記述しエージェントではmysql.versionと記述すると思っていました。
テストをした所、zabbix_agentd.confにmysql[version]を記述すると
4423:20091112:134413 cfg: para: [UserParameter] val [mysql[version],mysql -V]
4423:20091112:134413 Accepted configuration parameter: 'UserParameter' = 'mysql[version],mysql -V'
4423:20091112:134413 Can't add user specifed key "mysql[version]". Incorrect key!
とのエラーになりました。
つまり、zabbix_agentd.confにはmysql.versionとしなければいけない。と言う事でテンプレートを全修正にする事にしました。
デフォルトの設定が全て動くとは限らないということですね。
KAZ - 投稿数: 1085
sugapさん
テンプレートは何のテンプレートでしょうか?
また、テンプレート側を直さない方法もあるかと思います。
申し訳ありませんが、テンプレート名を教えて頂けますか?
KAZ - 投稿数: 1085
sugapさん
どうやら、1.4系からmysql[version]的な書き方はNGになったようです。
下記の様な設定にするとキーにmysql[version]と書いても大丈夫になります。
zabbix_agentd.conf
<code>
UserParameter=mysql[*],<<シェル名>> $1
</code>
例えば…
<code>
UserParameter=mysql[*],/usr/local/shell/mysqlcheck.sh $1
</code>
/usr/local/shell/mysqlcheck.shの中身
<code>
#!/bin/sh
case $1 in
ping)
mysqladmin -uroot ping|grep alive|wc -l
;;
uptime)
mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T"
;;
threads)
mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q"
;;
questions)
mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
;;
slowqueries)
mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O"
;;
qps)
mysqladmin -uroot status|cut -f9 d":"
;;
version)
mysql -V
;;
esac
</code>
※:owner/groupはzabbix起動ユーザで、ownerに実行件を与えて下さい。
こんな感じです。
<code>
[xxxxxxxxxxxx shell]# ls -l | grep mysqlcheck.sh
-rwxr--r-- 1 zabbix zabbix 407 11月 12 15:02 mysqlcheck.sh
</code>
sugap - 投稿数: 5
KAZさん
ヒントありがとうございます。
上記の設定方法でやってみます。