UserParameterの引数に正規表現を指定したい
お世話になっております。
UserParameterを利用した監視を実現しようとしています。
Zabbixバージョン:2.0.xベース?(MIRACLE ZBX 2.0.10)
サーバ:CentOS 6.7
クライアント:CentOS 6.7
下記のようなシェルスクリプトを用意しました。
:省略
case "$1"
"case1")
value="`ps -aux | grep -- $2`"
;;
:省略
esac
echo "$value"
これを叩くUserParameterは
UserParameter=grep_test[*],/etc/zabbix/script/grep_test.sh $1 $2
で、
zabbix_get -s 127.0.0.1 -k grep_test[case1,"/usr/java/jdk1.6.0_25/bin/java .*"]
としたところ、何も返却されませんでした。
grep_testキーの第二引数に入力した文字列で直接grepすると正しい結果が得られることは確認済みです。
UserParameterで実行されるシェルスクリプトに echo $2 のようにデバッグコードを挟んでみたところ、
/usr/java/jdk1.6.0_25/bin/java . .. .autofsck
と表示され、引数の内容が何かしら評価されているように見えます。
UserParameterでは正規表現を渡すことはできないのでしょうか?
※UnsafeUserParameters=1は設定済みです。
fripper - 投稿数: 495
MIRACLE ZBX ならではの機能拡張やその他独自仕様については、残念ながら解りません
本家版との動作の違いについては、MIRACLE 社サポートへの質問をお願いします
本家版での 2.0.x エージェントの動作を見ている限りは、
アイテムキーの角括弧 [] に与えた引数部分は、UserParameter 処理段階で、
シェルが引数解釈をしてしまっているようです
書込でご報告頂いている動作、echo の結果を見る限りでは
「sh -c」か「eval」的な引数展開によって、アスタリスクが、
ファイル名のワイルドカードとして解釈・展開されてしまっているようです
バックスラッシュ(\) をアスタリスク直前に挟むと、シェル展開動作はスキップできるかもしれませんが
アイテム登録その他動作に影響が出る気がしますね‥
zabbix_get を利用する場合には、get に与える -k でのキー引数指定の段階での
シェルによる解釈・展開にも注意が必要でしょう
シングルクォートで、キー全体を括るなど‥。
mkt - 投稿数: 41
返信ありがとうございます。
はい、そのような結果に見えます。
GUIのアイテム設定側で正規表現を指定するのは必須要件ではない(最低限シェルに埋め込む、で可)ので、代替手段を検討したいと思います。
ありがとうございました。