概要
Inventory 機能はアイテムで取得した値を Inventory という特別な領域に登録することができます
Inventory に登録した情報を使ってホストを検索したり GROUP BY してカウントしたりできます
今回は docker 上で機能を試してみました
環境
- Zabbix サーバ
- Ubuntu 16.04 LTS
- docker 18.09.6
- Zabbix Server 4.2
- Zabbix エージェント
- macOS 10.14.5
- docker 18.09.2
- Zabbix Agent 4.2
Zabbix サーバ起動
Ubuntu 16.04 上で起動します
前回の記事で紹介しているのでそちらを参考にしてください
Zabbix サーバが起動していればいいので docker でなくても OK です
Zabbix Agent 起動
Agent も docker で起動します
ホストを準備するのが面倒な場合に便利です
docker run -d -e ZBX_HOSTNAME="c1" -e ZBX_SERVER_HOST="192.168.99.200,172.17.0.1" -p 10050:10050 zabbix/zabbix-agent
ZBX_HOSTNAME
はサーバ上に登録するホストの名前と同じにします
マシンのホスト名である必要がありません
ZBX_SERVER_HOST
は Zabbix サーバの IP アドレスを指定します
2 つ指定しているのは Zabbix サーバの Incomming と Outgoing の IP が docker の場合異なっているからです
普通に VM などで Zabbix サーバを起動している場合は Incomming と Outgoing が同じになるので 1 つで OK です
Zabbix Agent コンテナが起動したログを確認してみましょう
docker logs -f 069e4e9ee319
active check configuration update from [172.17.0.1:10051] started to fail (cannot connect to [[172.17.0.1]:10051]: [111] Connection refused)
というログが出ていますが無視で OK です
先程説明した Zabbix サーバコンテナの Outgoing IP にはアクセスしようとしているため出ているだけです
もし Zabbix サーバコンテナの Outgoing IP を指定しない場合は以下のエラーになりうまく監視対象に入りません
failed to accept an incoming connection: connection from "172.17.0.1" rejected, allowed hosts: "192.168.99.200"
Configuration -> Hosts 登録
サーバとエージェントが起動したらサーバ側に監視するホストの情報を登録しましょう (今回はテスト用のコンテナですが)
Zabbix は pull 型の監視がベースのためホスト側に監視対象の情報がないとデータの収集が始まりません
UI にアクセスして Configuration -> Hosts -> Create Host を選択します
そして以下のように登録します
- Host name・・・c1
- Groups・・・Linux servers
- Agent Interfaces -> IP address ・・・192.168.99.1
まだ登録しません
Templates タブを選択し以下の通り入力します
- Link new templates・・・Template OS Linux
- Add を押す
忘れずに Add を押しましょう
これでホストを登録します
Inventory にデータを登録するためのアイテムを登録する
先程登録したホストに新規でアイテムを登録します
テンプレートを紐づけたのでテンプレートにアイテムを追加しましょう
Configuration -> Templates から Template OS Linux を選択します
そして Items タブを選択して Create tem を選択します
入力フィールドが出るので以下のように入力しましょう
- Name・・・system.sw.arch
- Key・・・system.sw.arch
- Type of information・・・Text
- Populates host inventory field・・・HW architecture
Name は何でも OK です
Populates host inventory field も正直何でも OK です
取得できるアイテムにあった項目を選択してください
今回はシステムアーキテクチャが取得できるのでそれっぽいのを選択しました
ホストの Inventory を有効にする
最後にホストの Inventory を有効にします
デフォルトではアイテムで取得できたとしても Inventory には登録してくれません
まずは Configuration -> Hosts で c1 ホストを選択しましょう
そして Inventory タブを選択して Automatic を選択します
すると Name や OS で使われるアイテムが右に表示されます
更に下に行くと HW architecture の欄があるので登録したアイテム名が割り当てられていることを確認しましょう
動作確認
しばらく (30秒) するとデータが入ってきます
まずは Monitoring -> Latest data で確認してみましょう
アイテム登録時にアプリケーションを指定していないので other にあります
あとは Inventory を確認してみましょう
Inventory -> Overview で右上のプルダウンから HW architecture を選択します
すると x86 ホストを GROUP BY してカウントしてくれるのが確認できると思います
今回は 1 台しかいないので 1 になれば OK です
Hosts タブでは Inventory 情報から検索して対象の Inventory を持つホストを探すことができます
最後に
Zabbix4.2 で Inventory 機能を試してみました
Inventory 機能自体は 2 系から登場しているので今更感しかないですがよくわからに機能だったので試してみました
うまく使えばおもしろそうなデータが見えるようにはなりそうですが、正直監視に必須な機能ではないかなと思います
今回はすべて docker 上で行いましたがバイナリでも同じようにできると思います
0 件のコメント:
コメントを投稿