12 トラッパーアイテム

概要

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

設定

トラッパーアイテムを設定するには、次のようにします。

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

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

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

タイプ 「Zabbixトラッパー」を選択します。
キー Zabbixサーバーにデータを送信する際にアイテムを識別するために使用されるキーを入力します。
データ型 送信されるデータの形式に対応する情報の種類を選択します。
許可するホスト カンマ区切りの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サーバーが変更を反映するまで最大60秒待つ必要がある場合があります。

データの送信

Zabbix sender ユーティリティまたは Zabbix sender protocol を使用して、Zabbix サーバーまたはプロキシにデータを送信できます。 history.push API メソッドを使用して、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 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サーバーによる検証に失敗したことを示します。 これは、次の理由で発生する可能性があります。

  • データを送信するユーザーに、そのアイテムのホストに対するread権限がない。
  • ホストが無効になっている、またはデータ収集を伴わないメンテナンス中である。
  • アイテムが存在しない、またはまだサーバー設定キャッシュに含まれていない。
  • アイテムが無効になっている、またはそのタイプがZabbixトラッパーもしくはHTTP agent(トラップ有効)以外である。
  • ユーザーのIPまたはDNSが、そのアイテムのAllowed hostsリストに設定されていない。
  • 別のアイテムに、ナノ秒レベルでタイムスタンプが重複する値がある。

エラーがない場合は、送信された値が処理対象として受け入れられたことを示します。これには、前処理(存在する場合)、トリガー処理、およびデータベースへの保存が含まれます。 なお、受け入れられた値の処理も失敗する可能性があります(たとえば、preprocessing中)。その場合、その値は破棄されます。

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

データの表示

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

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