2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ZabbixAdvent Calendar 2020

Day 9

Zabbix4.2でBacklogの課題数を種別ごとに取得する

Posted at

Zabbixのアイテムタイプを片っ端から調べていたところ、HTTPエージェントというものが目にとまりました。
Zabbix4.0から追加された新しいアイテムタイプで、APIのレスポンスを監視データとして扱えるようになっています。
今まではスクリプトを作成して、外部チェックのアイテムで取得していたようなデータを
スクリプトなしで取得できるようになったということのようです。

さらにZabbix4.2からは、ディスカバリルールでLLDマクロを指定することができるようになっています。
HTTPエージェントと組み合わせることで、APIのレスポンスを元にディスカバリアイテムを作成することができます。

これらの機能を利用して、Backlogの種別をディスカバリし、種別毎に課題数を取得してみたいと思います。

#テンプレートを作成

##ディスカバリルール
ここでは種別一覧を取得し、LLDマクロを設定します。

テンプレなので、URLやapiKeyなどの可変部分はマクロにしておきます。

image.png

上記のURLでbacklogAPIをリクエストすると、以下のような形で種別一覧を取得することができます。

backlog種別一覧の取得
[
    {
        "id": 1931,
        "projectId": 470,
        "name": "タスク",
        "color": "#ff3265",
        "displayOrder": 0,
        "templateSummary": null,
        "templateDescription": null
    },
以下略
]

この中でアイテムのプロトタイプを作るのに必要そうな情報はid,nameですので、LLDマクロで以下のように設定します。

image.png

##アイテムのプロトタイプ

アイテムのプロトタイプは次のようにします。
キーがかぶるとディスカバリできてもアイテムが作成されなくなってしまうので、必ずキーにLLDマクロを入れるようにします。

image.png

素の状態でどんな値が取得されているのか確認するため、いったんデータ型をテキストにして値取得してみます。

image.png

レスポンス本文はbodyの中に入るんですね。
今回は課題数である14の部分だけ取得したいので、データ型を整数にして、保存前処理は次のようにします。
image.png

##マクロ
最後にマクロを設定します。
値はホスト側で設定するので、テンプレート側は空にしておきます。
image.png

#データを確認してみる
仮想ホストにテンプレートを適用し、マクロを設定します。

ちゃんと種別ごとにアイテム作成されています。
image.png

種別毎の課題数も取得できています。
image.png

#最後に

スクリプトを書く必要がなくなった上に、現在の状況に合わせてアイテムが自動生成できるのはかなり便利だと思いました。
今回例にしたもの以外にも、ユーザー一覧をLLDで取得して、ユーザー毎の担当課題数を取得するとか
目的次第でいろいろな使い方がありそうですね。

#参考

https://blog.atgw.jp/archives/3831
https://blog.apar.jp/zabbix/10769/

4.2の環境が手元になかったので、こちらを参考に構築しました。
https://qiita.com/qryuu/items/c3fb49b33068d6cbabf1

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?