エージェントの設定ファイルでユーザパラメータ(UserParameter)を定義することによって、Zabbixエージェントの機能を拡張することができます。
内部チェックは、Zabbixサーバが処理します。/bin/shは、UNIXオペレーティングシステムでコマンドラインインタプリタとして使用されます。
監視するパラメータを新しく定義するには、Zabbixエージェントの設定ファイルに1行追加して、エージェントを再起動する必要があります。
ユーザパラメータの構文を以下に示します: UserParameter=key,command
パラメータ 説明 | |
---|---|
キー 一 | なアイテムキー。 |
コマンド キーの | を評価するために実行するコマンド。 |
単純なコマンド
UserParameter=ping,echo 1
キー「ping」のとき、エージェントは常に「1」を返します。
複雑なコマンドの例
UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc –l
エージェントは、MySQLサーバが動作中なら「1」、それ以外なら「0」を返します。
引数付きユーザパラメータを使用すると、細かいコントロールが可能になり、柔軟性が高まります。
引数付きユーザパラメータを使用する構文を以下に示します。
UserParameter=key[*],command
パラメータ 説明 | |
---|---|
キー 一 | なアイテムキー。[*]はこのキーがパラメータを受け取ることを定義します。 |
コマンド キーの | を評価するために実行するコマンド。 []の内容が解析され、コマンドの$1、...、$10と置き換えられます。 |
<note important>エージェントデーモン設定オプションが有効ではない場合、
' ・` * ? [ ] \{ \} ~ $ ! & ; ( ) < > | # @などの記号を含む引数付きパラメータを渡すことはできません。[ ] { } ~ $ !& ; ( ) < > | # @ :::
単純な引数付きパラメータ
UserParameter=ping[*],echo $1
ping[引数]という形式のアイテムを無制限に定義して監視することができます。
実用的な例
UserParameter=mysql.ping[*],mysqladmin –u$1 –p$2 ping|grep alive|wc –l
このパラメータを使用して、MySQLデータベースの可用性を監視できます。引数として、ユーザ名とパスワードを渡します。
mysql.ping[zabbix,our_password]
ファイル内で正規表現と一致する行数を求める例
UserParameter=wc[*],grep "$2" $1|wc -l
このパラメータを使用して、ファイル内の行数を計算できます。
wc[/etc/passwd,root] wc[/etc/services|zabbix]
<note important>Zabbixエージェントデーモンの-t、-oオプションはユーザパラメータをサポートしていないことに注意してください。詳細はmanpageを参照してください。 :::