UserParameter設定で引数の引き渡しが出来ない件
いつもお世話になっております。
ZabbixエージェントのUserParameter設定で
下記の様に引数付のアイテムを作成して監視をしようとしているのですが
アイテムが「取得不可」のステータスになってしまうため、質問させて頂きたいです。
■Zabbixアイテムキー
mysql.status[Questions]
■ユーザパラメータ記述
UserParameter=mysql.status[*],/usr/bin/mysqladmin --defaults-extra-file=/etc/zabbix/zabbix_my.cnf extended-status | grep -w $1 | awk '{printf $4}'
下記の様にgrepする文字列を直接記入すれば値が取れるのですが
「$1」のように引数で引き渡すと値が取れなくなってしまいます。
■値が取れる場合
UserParameter=mysql.bytes_received,/usr/bin/mysqladmin --defaults-extra-file=/etc/zabbix/zabbix_my.cnf extended-status | grep -w Bytes_received | awk '{printf $4}'
マニュアルを確認したところ、
「エージェントデーモン設定オプションが有効ではない場合、
' ・` * ? [ ] \{ \} ~ $ ! & ; ( ) < > | # @などの記号を含む引数付きパラメータを渡すことはできません。[ ] { } ~ $ !& ; ( ) < > | # @ 」
といった記述があり、何か追加設定が必要なのかと感じたのですが
UserParameterを使うにあたって必要な設定項目などございますでしょうか?
https://www.zabbix.com/documentation/1.8/jp/manual/config/user_parameters
使用しているZabbixエージェントは
zabbix-agent-1.8.5-1.el5.JP.x86_64です。
お手数をお掛けしてしまい申し訳ございませんが
解決策などございましたら、ご教示頂きたく存じます。
moritake - 投稿数: 10
自己解決いたしました。
下記の部分をシェルスクリプトにして
ユーザパラメータに
UserParameter=mysql.status[*],/etc/zabbix/test.sh $1
の様に記述する事で値が取れました。
■シェルスクリプト内コマンド
/usr/bin/mysqladmin --defaults-extra-file=/etc/zabbix/zabbix_my.cnf extended-status | grep -w $1 | awk '{printf $4}'
お騒がせいたしました。
KAZ - 投稿数: 1085
moritakeさん
ちょっと違うかもしれませんが過去ログにも書かれていたりします。A(^^;
http://www.zabbix.jp/node/2673
zinten - 投稿数: 69
moritakeさん
解決しているようですが。。。。
>「エージェントデーモン設定オプションが有効ではない場合、
>' ・` * ? [ ] \{ \} ~ $ ! & ; ( ) < > | # @などの記号を含む引数付きパラメータを渡すことはできません。[ ] { } ~ $ !& ; ( ) < > | # @ 」
これらのパラメータを含む場合、
Zabbixエージェントのconfで「UnsafeUserParameters」を1に設定することで実行できるようになるようです。
パラメータに関しては以下のページ参照のこと。
https://www.zabbix.com/documentation/1.8/manual/processes/zabbix_agentd