-#4 ユーザーパラメータ
概要
Zabbixで既定にならないエージェントチェックを実行したい場合があります。ユーザーパラメータはそういう場合に効果的です。
必要なデータを取得するコマンドを書いて、エージェントの設定ファイル(「UserParameter」設定パラメータ)のユーザーパラメータに追加することができます。
ユーザーパラメータの構文を以下に示します:
UserParameter=<key>,<command>
ご覧の通り、ユーザーパラメータもキーを持っています。キーは、アイテムを設定するときに必要です。参照しやすいキーを選択して入力します(ホスト内で一意である必要があります)。エージェントを再スタートします。
それから、アイテムを設定するときに、実行したいユーザーパラメータからそのコマンドを参照するキーを入力します。
ユーザーパラメータはZabbixエージェントによって実行されるコマンドです。UNIXオペレーティングシステムでコマンドラインインタプリタとして、/bin/sh が使用されます。この方法で、Zabbixエージェントの機能を拡張することができます。
ユーザーパラメータを使用できるようにするステップ・バイ・ステップのチュートリアルを参照してください。
シンプルなユーザーパラメータの例
単純なコマンド:
UserParameter=ping,echo 1
キー「ping」のとき、エージェントは常に「1」を返します。
より複雑なコマンドの例:
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
エージェントは、MySQLサーバが動作中なら「1」、それ以外なら「0」を返します。
引数付きパラメータ
引数付ユーザーパラメータは、キー付きのパラメータを受け取ります。引数付きユーザーパラメータはいくつかのアイテムを作成するための基盤となり得ます。
引数付きユーザーパラメータを使用する構文を以下に示します:
UserParameter=key[*],command
| パラメータ 説明 | |
|---|---|
| キー 一 | なアイテムキー。[*]はこのキーがパラメータを受け取ることを定義します。 |
| コマンド キーの | を評価するために実行するコマンド。 []の内容が解析され、コマンドの$1、…、$9と置き換えられます。 $0は、オリジナルのコマンド($0,…,$9の記述の前)に置き換えられれ実行されます。 |
不変な位置の参照を使用するには、二重の$を指定します - 例えば、awk '{print $$2}'。
<note important>UnsafeUserParametersを除いて、エージェントデーモン設定オプションが有効ではない場合、' ・` * ? [ ] \{ \} \~ $ ! & ; ( ) < > | # \@などの記号を含む引数付きパラメータを渡すことはできません。[ ] { } \~ $ !& ; ( ) < > | # @. Additionally, newline is not allowed either. :::
テキスト(文字列、ログ、テキストタイプの情報)を返すユーザーパラメータは、戻り値に空白の文字を設定することによって、空白だけを返すことができるようになりました(2.0からサポート)。無効な値が返された場合は、エージェントがZBX_NOTSUPPORTED と返します。
例1
とても単純な引数付きパラメータ:
UserParameter=ping[*],echo $1
ping[引数]という形式のアイテムを無制限に定義して監視することができます。
- ping[0] ? 常に「0」が返ります。
- ping[aaa] ? 常に「aaa」が返ります。
例2
実用的な例
UserParameter=mysql.ping[*],mysqladmin –u$1 –p$2 ping|grep alive|wc –l
このパラメータを使用して、MySQLデータベースの可用性を監視できます。引数として、ユーザ名とパスワードを渡します:
mysql.ping[zabbix,our_password]
例3
ファイル内で正規表現と一致する行数を求める例
UserParameter=wc[*],grep -c "$2" $1
このパラメータを使用して、ファイル内の行数を計算できます。
wc[/etc/passwd,root]
wc[/etc/services,zabbix]
本ページは2013/05/03時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this
page」から英語版を参照してください。