6 Zabbixトラッパー

概要

トラッパーアイテムは、データを問い合わせる代わりに、受信したデータを受け付けます。
これは、Zabbix に送信したいあらゆるデータに役立ちます。

設定

トラッパーアイテムを設定するには、以下の手順を実行します。

  1. データ収集 → ホスト に移動します。
  2. 対象ホストの行で アイテム をクリックします。
  3. アイテムの作成 をクリックします。
  4. 設定フォームにアイテムのパラメータを入力します。

必須の入力フィールドには、赤いアスタリスクが付いています。

トラッパーアイテムで特定の情報の入力が必要なフィールドは次のとおりです。

タイプ 「Zabbixトラッパー」を選択します。
キー Zabbix server にデータを送信する際に、アイテムを識別するために使用されるキーを入力します。
データ型 送信されるデータの形式に対応する情報の種類を選択します。
許可されたホスト カンマ区切りのIPアドレス(CIDR表記も可)またはDNS名の一覧です。

指定した場合、ここに一覧表示されたホストからの受信接続のみが許可されます。
IPv6サポートが有効な場合、'127.0.0.1'、'::127.0.0.1'、'::ffff:127.0.0.1' は同等に扱われ、'::/0' は任意のIPv4またはIPv6アドレスを許可します。任意のIPv4アドレスを許可するには '0.0.0.0/0' を使用できます。

なお、「IPv4互換IPv6アドレス」(0000::/96 プレフィックス)はサポートされていますが、RFC4291 では非推奨とされています。

例: 127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:db8::/32, mysqlserver1, zabbix.example.com, {HOST.HOST}

スペース、ユーザーマクロ、およびホストマクロ {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN} がサポートされています。

値を送信する前に、アイテムの保存後、設定キャッシュの更新によって Zabbix server が変更を取り込むまで最大60秒待つ必要がある場合があります。

データの送信

Zabbixサーバーまたはプロキシへのデータ送信は、Zabbix senderユーティリティまたはZabbix sender プロトコルを使用して行うことができます。 Zabbixサーバーへのデータ送信は、history.push APIメソッドを使用して行うこともできます。

Zabbix sender

Zabbix senderユーティリティを使用してZabbixサーバーまたはプロキシにデータを送信するには、次のコマンドを実行して「test value」を送信できます。

zabbix_sender -z <server IP address> -p 10051 -s "New host" -k trap -o "test value"

「test value」を送信するには、次のコマンドオプションを使用します。

  • -z はZabbixサーバーのIPアドレスを指定します
  • -p はZabbixサーバーのポート番号を指定します(デフォルトは10051)
  • -s はホストを指定します(表示名ではなく、技術名のホスト名を使用してください)
  • -k はトラッパーアイテムで設定されたアイテムのキーを指定します
  • -o は送信する値を指定します

Zabbixトラッパープロセスは、対象ホストに対応するアイテムキーの存在を確認するために、アイテムキー内で使用されているマクロを展開しません。

Zabbix senderとZabbixサーバーまたはプロキシ間の通信の詳細については、Zabbix sender protocolを参照してください。

history.push

history.push API メソッドを使用して Zabbix サーバーにデータを送信するには、テスト値を含む次の HTTP POST リクエストを実行します。

curl --request POST \
  --url 'https://example.com/zabbix/api_jsonrpc.php' \
  --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
  --header 'Content-Type: application/json-rpc' \
  --data '{"jsonrpc":"2.0","method":"history.push","params":[{"itemid":10600,"value":"test value 1"},{"itemid":10601,"value":"test value 2"},{"itemid":99999,"value":"test value 3"}],"id":1}'

リクエストが正しければ、API から返されるレスポンスは以下のようになります。

{
    "jsonrpc": "2.0",
    "result": {
    "response": "success",
    "data": [
    {
    "itemid": "10600"
    },
   {
    "itemid": "10601",
    "error": "Item is disabled."
    },
    {
    "error": "No permissions to referred object or it does not exist."
    }
    ]
    },
    "id": 1
}

レスポンスデータにエラーがある場合は、特定のアイテムの送信データが Zabbix サーバーによる検証に失敗したことを示します。 これは以下の理由で発生する可能性があります。

  • データを送信したユーザーに、アイテムのホストに対する 読み取り 権限がない。
  • ホストが無効化されているか、データ収集なしでメンテナンス中である。
  • アイテムが存在しないか、サーバー設定キャッシュにまだ含まれていない。
  • アイテムが無効化されているか、ZabbixトラッパーまたはHTTPエージェント(トラップが有効)以外のタイプである。
  • ユーザーのIPアドレスまたはDNSがアイテムの許可ホストリストに設定されていない。
  • 別のアイテムに、ナノ秒レベルで重複したタイムスタンプを持つ値がある。

エラーがない場合、送信された値は処理のために受け入れられたことを示します。処理には、前処理(存在する場合)、トリガー処理、データベースへの保存が含まれます。

受け入れられた値の処理は失敗する可能性があり(例えば、前処理中)、その結果、値が破棄されることに注意してください。

Zabbix APIの使用方法の詳細については、APIを参照してください。

データの表示

データが送信されると、Monitoring → 最新データ に移動して結果を確認できます。

単一の数値が送信された場合、データのグラフには、その値の時点を中心として左右に水平線が表示されます。