6 Zabbix trapper

概要

トラッパーアイテムは、データを取得するために問い合わせるのではなく、受信データを受け付けます。 これは、Zabbix に送信したいあらゆるデータに便利です。

設定

トラッパーアイテムを設定するには:

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

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

トラッパーアイテムで特定の情報を必要とするフィールドは次のとおりです:

Type 「Zabbix trapper」を選択します。
Key Zabbix サーバーにデータを送信する際にアイテムを識別するために使用するキーを入力します。
Type of information 送信されるデータの形式に対応する情報の種類を選択します。
Allowed hosts カンマ区切りの IP アドレス(必要に応じて CIDR 表記)または DNS 名の一覧です。

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

"IPv4-compatible IPv6 addresses"(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}

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

値を送信する前に、アイテムを保存してから Zabbix サーバーが設定キャッシュ更新から変更を取得するまで、最大 60 秒待つ必要がある場合があります。

データの送信

Zabbix senderユーティリティまたはZabbix senderプロトコルを使用して、Zabbixサーバーまたはプロキシにデータを送信することができます。 history.pushAPIメソッドを使用して、Zabbixサーバーにデータを送信することも可能です。

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プロトコルを参照してください。

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を参照してください。

データの表示

データが送信されると、MonitoringLatest data に移動して結果を確認できます:

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