Zabbixにあらかじめ定義されていないエージェントチェックを実行したい場合があります。そのような場合にユーザーパラメータが役立ちます。
必要なデータを取得するコマンドを作成し、それをエージェントの設定ファイルのユーザーパラメータ('UserParameter'設定パラメータ)に含めることができます。
ユーザーパラメータの構文は以下の通りです。
ご覧の通り、ユーザーパラメータにもキーが含まれています。このキーはアイテムを設定する際に必要となります。参照しやすい任意のキーを入力してください(ホスト内で一意である必要があります)。
エージェントを再起動するか、エージェントのランタイム制御オプションを使用して新しいパラメータを反映させます。例:
その後、アイテムを設定する際に、実行したいユーザーパラメータのコマンドを参照するためのキーを入力します。
ユーザーパラメータはZabbixエージェントによって実行されるコマンドです。 アイテム値の事前処理ステップの前に、最大16MBのデータを返すことができる点に注意してください。
UNIX系OSでは/bin/shがコマンドラインインタプリタとして使用されます。 ユーザーパラメータはエージェントチェックのタイムアウトに従います。タイムアウトに達した場合、フォークされたユーザーパラメータプロセスは終了されます。
関連情報:
単純なコマンド:
agent は、'ping' キーを持つ item に対して常に '1' を返します。
より複雑な例:
agent は、MySQL サーバが生きている場合は '1' を、そうでない場合は '0' を返します。
柔軟なユーザーパラメータは、キーにパラメータを受け入れます。この方法で、柔軟なユーザーパラメータは複数のアイテムを作成するための基礎となります。
柔軟なユーザーパラメータは次の構文を持ちます:
| パラメータ | 説明 |
|---|---|
| Key | 一意のアイテムキー。[*]は、このキーがブラケット内のパラメータを受け入れることを定義します。 パラメータはアイテムの設定時に指定されます。 |
| Command | キーの値を評価するために実行されるコマンド。 柔軟なユーザーパラメータのみ: コマンド内で位置参照$1…$9を使用して、アイテムキー内のそれぞれのパラメータを参照できます。 Zabbixはアイテムキーの[ ]で囲まれたパラメータを解析し、コマンド内の$1,...,$9をそれに応じて置換します。 $0は、実行される元のコマンド($0,...,$9の展開前)に置換されます。 位置参照は、ダブルクォート(")またはシングルクォート(')で囲まれているかどうかに関係なく解釈されます。 位置参照を変更せずに使用するには、ダブルドル記号を指定します(例: awk '{print $$2}')。この場合、 $$2は実際にコマンド実行時に$2に変換されます。 |
$記号による位置参照は、柔軟なユーザーパラメータに対してのみZabbixエージェントによって検索および置換されます。単純なユーザーパラメータの場合、そのような参照処理はスキップされるため、$記号のエスケープは必要ありません。
特定の記号は、デフォルトでユーザーパラメータで許可されていません。完全なリストについては、UnsafeUserParametersのドキュメントを参照してください。
とてもシンプルなもの:
ping[something]というフォーマットを持つ監視項目は無制限に定義することができる。
もっとセンスを磨こう!
このパラメータは、MySQLデータベースの可用性を監視するために使用することができます。
ユーザー名とパスワードを渡すことができます:
正規表現にマッチする行はファイル中に何行あるか?
このパラメータは、ファイル内の行数を計算するために使用することができます。
コマンドの戻り値は、コマンドによって生成された標準出力と標準エラー出力の両方です。
テキストを返すアイテム(文字列、ログ、テキスト型の情報)は、標準エラー出力があっても未サポートにはなりません。
戻り値は16MBに制限されています(切り捨てられる末尾の空白も含む); データベースの制限も適用されます。
テキストを返すユーザーパラメータ(文字列、ログ、テキスト型の情報)も空白を返すことができます。 無効な結果の場合、アイテムは未サポートになります。