0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Zabbix 6.2 以降の API トークン (API token) の使い方

Posted at

1. 日本語情報はユーザーパスワード認証が主流

Zabbix 6.2 から導入された APIトークン (API token) 。Zabbix の Web ページのメニューにもありますよね。

しかし、日本語で Zabbix の API について検索すると、歴史的なものもあってユーザーパスワード認証の方法が多くヒットします。

参考: Zabbix API の認証方法 (Qiita)

2. ユーザーパスワード認証のリクエスト例

Zabbix API での認証リクエストは次のようになります。(公式ドキュメント より)

リクエスト例

{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}

レスポンス例

{
    "jsonrpc": "2.0",
    "result": "0424bd59b807674191e7d77572075f33",
    "id": 1
}

ユーザーパスワード認証の場合、"method": "user.login" でユーザー名とパスワードを送信し、返ってきたトークンを以降のリクエストで "auth" フィールドに埋め込みます。

3. API トークンは "auth" に埋め込むのか?

では、6.2 以降で使える API トークンも同じように "auth" に埋め込めばいいのかと思ったのですが、そうではありませんでした。

私の聞き方が悪かったのか、ChatGPT などの生成 AI に尋ねても、同じような説明が返ってきて、しばらくハマりました。

4. 正解は「ヘッダーに埋め込む」

Zabbix 7.2 の公式ドキュメント によると、API トークンはヘッダーで指定します。

正しい API リクエストの例

curl --request POST \
     --url 'https://example.com/zabbix/api_jsonrpc.php' \
     --header 'Content-Type: application/json-rpc' \
     --header 'Authorization: Bearer YOUR_API_TOKEN' \
     --data '{"jsonrpc":"2.0","method":"apiinfo.version","params":{},"id":1}'

5. 英語のマニュアルもちゃんと読みましょう

Zabbix の API を正しく使うには、英語の公式ドキュメントを確認するのが一番確実です。機械翻訳も活用して、最新バージョンのマニュアルを読みましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?