本連載では「まるごとおまかせZabbix」をより便利で有用なサービスとするために日々奮闘中の齊藤(沙)がアークシステム ザビ家の一員として、Zabbix に関する日々の取り組みやナレッジをご紹介していきます!

本サービスの詳細や、Zabbixを活用したソリューションにご興味をお持ちの方がいらっしゃいましたら サービス紹介ページ からお気軽にお問合わせ下さい。


こんにちは!プラットフォーム技術部の齊藤(沙)です。

前回はZabbixが監視設定や履歴データを保管するデータベースの中でもホストに関連するテーブルについて確認しました。今回はアイテムに関連するテーブルについて確認していきます。

Zabbixを知ろう -Zabbixのデータベースについて – アイテム編

私たちアークシステムでは、パフォーマンスの観点からZabbixにおけるデータベースはMariaDB(Mysql)の使用を推奨しています。本記事では、Zabbix3.0、mariadb5.5の環境を用いて確認していきます。

アイテムに関する情報について

主要テーブル一覧

監視項目であるアイテムに関する情報は主に以下のテーブルに格納されています。

itemsテーブル詳細

まずはアイテムに関する主要な情報が格納されている「items」テーブルについて詳しく確認していきます。
以下は「desc items;」コマンドの出力結果です。

アイテムはZabbixの仕様上、ホストまたはテンプレートに紐付く形で存在します。そしてZabbixのデータベースの中では、ホストもテンプレートも共に「hosts」テーブル内に情報が格納されます。

「items」テーブルに「hostid」が存在して簡単に取得できそうなので、まずはホストに紐付くアイテムの一覧を取得して見たいと思います。

ホスト+テンプレートのアイテムについて

SQL文 (‘hosts’ – ‘items’)

以下は実行するSQL文です。

「hosts」テーブルにおける「status」カラム内の値が「3」となっているデータはテンプレートを表すため、where句の1つめの条件で検索対象から除外しています。

実行結果 (‘hosts’ – ‘items’)

以下が実行結果です。

ホストに紐付くアイテムを取得することができました!

でもこれでは、ホストに紐付いているアイテムがどのテンプレートに存在するものなのかがわかりません。
つぎはテンプレート名も一緒に取得して見たいと思います。

SQL文 (‘hosts’ – ‘items’ – ‘hosts(テンプレート)’)

以下は実行するSQL文です。

「items」テーブル内の「templateid」カラムの情報を使って、どのテンプレートのアイテムなのかを追っていきます。テンプレートとホストに関する情報が同じテーブルに格納されているため、少し分かり辛いですね。。。

実行結果 (‘hosts’ – ‘items’ – ‘hosts(テンプレート)’)

以下が実行結果です。

最初は少し混乱しましたが、テンプレート名も無事取得することができました!

ホスト+アイテムについて

ここまでで、ホストとそのホストに紐付く”テンプレートに作成されたアイテム”についての参照方法について確認しました。

つぎはホストとそのホストに個別作成されたアイテム(以下ホスト個別アイテム)の参照方法について確認していきたいと思います。設定方法の誤りで意図せず発生するホスト個別アイテムですが、SQLでリスト化できれば設定後の確認で便利ですよね!

確認のため、「ArkTest」ホストに「host item」という名前のホスト個別アイテムを作成しました。

SQL文 (‘hosts’ – ‘items(ホスト個別)’)

以下は実行するSQL文です。

「templateid」にはNULLを、ホストの「status」には3以外の値を条件として実行します。

実行結果 (‘hosts’ – ‘items(ホスト個別)’)

以下が実行結果です。

確認用の作成した、ホスト個別アイテムが取得できました!
(ディスカバリルールで作成されるアイテムもこのSQL文では出力されます。)

これで以下についてSQL文で簡単に確認できるようになりました。

  • ホストに紐付くテンプレートアイテム
  • ホストに紐付くホスト個別アイテム

アイテム+アプリケーションについて

丁度実施している作業で、特定のアプリケーション名が設定されているアイテムを確認する必要があるので、最後にアプリケーション名の取得についても確認して見たいと思います。

applicationsテーブル詳細

以下は「desc applications;」コマンドの出力結果です。

むむむ。「itemid」が存在しません。

items_applicationsテーブル詳細

以下は「desc items_applications;」コマンドの出力結果です。

「itemid」を発見しました。
「items_applications」テーブルの「itemid」を使えばアイテムに紐付くアプリケーション名を取得できそうです。

SQL文 (‘items(ホスト個別)’ – ‘items_applications’ – ‘applications’)

以下は実行するSQL文です。

実行結果 (‘items(ホスト個別)’ – ‘items_applications’ – ‘applications’)

以下が実行結果です。

アイテムに紐付くアプリケーション名についても取得することができました!

まとめ

今回はアイテムに関する情報が格納されているテーブルと、そのリレーションについて確認しました。
WebUIのフィルタ機能の強化により、SQL文で設定内容を確認する機会は減っていますが、欲しい情報だけを一覧表示させることが出来る点ではSQL文は非常に便利!

データベースからアイテムを参照する際には

  • 「hosts」テーブルに、ホストとテンプレート情報が保存されている。

ことを留意することが大切ですね!

もっとZabbixのデータベースのことを知るために、次回はデータベースの中のトリガーに関する情報について確認していきたいと思います。


アークシステムでは、Zabbixの環境構築や保守サポートを低価格・短納期で実現する「まるごとおまかせZabbix」を提供しています。 本サービスの詳細や、Zabbixを活用したソリューションにご興味をお持ちの方がいらっしゃいましたら サービス紹介ページ からお気軽にお問合わせ下さい。


わたしに♥おまかせ Zabbix 連載一覧


 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter で「株式会社アークシステム」をフォローしよう!

【わたしに♥おまかせ Zabbix⑤】Zabbixのデータベースについて - アイテム編https://devlog.arksystems.co.jp/wp-content/uploads/2018/02/moz-09_ec-1200x630.jpghttps://devlog.arksystems.co.jp/wp-content/uploads/2018/02/moz-09_ec-150x150.jpgsachi-saitoまるごとおまかせZabbixプラットフォーム技術部製品紹介システム運用・保守保守,Zabbix,システム監視本連載では「まるごとおまかせZabbix」をより便利で有用なサービスとするために日々奮闘中の齊藤(沙)がアークシステム ザビ家の一員として、Zabbix に関する日々の取り組みやナレッジをご紹介していきます!【わたしに♥おまかせ Zabbix①】Zabbixの構成要素とパラメーターについて 【わたしに♥おまかせ Zabbix②】Zabbixサーバーと内部プロセスについて 【わたしに♥おまかせ Zabbix 号外】Interop Tokyo 2017 Zabbixブースに出展! 【わたしに♥おまかせ Zabbix③】Zabbixの内部プロセスについて-続き 【わたしに♥おまかせ Zabbix④】Zabbixのデータベースについて 【わたしに♥おまかせ Zabbix⑤】Zabbixのデータベースについて - アイテム編(本記事) 【わたしに♥おまかせ Zabbix⑥】Zabbixのデータベースについて – トリガー編 【わたしに♥おまかせ Zabbix 号外】Interop Tokyo 2018 Zabbixブースに連続出展!本サービスの詳細や、Zabbixを活用したソリューションにご興味をお持ちの方がいらっしゃいましたら サービス紹介ページ からお気軽にお問合わせ下さい。こんにちは!プラットフォーム技術部の齊藤(沙)です。 前回はZabbixが監視設定や履歴データを保管するデータベースの中でもホストに関連するテーブルについて確認しました。今回はアイテムに関連するテーブルについて確認していきます。 Zabbixを知ろう -Zabbixのデータベースについて - アイテム編 私たちアークシステムでは、パフォーマンスの観点からZabbixにおけるデータベースはMariaDB(Mysql)の使用を推奨しています。本記事では、Zabbix3.0、mariadb5.5の環境を用いて確認していきます。 アイテムに関する情報について 主要テーブル一覧 監視項目であるアイテムに関する情報は主に以下のテーブルに格納されています。itemsテーブル詳細 まずはアイテムに関する主要な情報が格納されている「items」テーブルについて詳しく確認していきます。 以下は「desc items;」コマンドの出力結果です。アイテムはZabbixの仕様上、ホストまたはテンプレートに紐付く形で存在します。そしてZabbixのデータベースの中では、ホストもテンプレートも共に「hosts」テーブル内に情報が格納されます。 「items」テーブルに「hostid」が存在して簡単に取得できそうなので、まずはホストに紐付くアイテムの一覧を取得して見たいと思います。 ホスト+テンプレートのアイテムについて SQL文 ('hosts' - 'items') 以下は実行するSQL文です。 「hosts」テーブルにおける「status」カラム内の値が「3」となっているデータはテンプレートを表すため、where句の1つめの条件で検索対象から除外しています。実行結果 ('hosts' - 'items') 以下が実行結果です。ホストに紐付くアイテムを取得することができました! でもこれでは、ホストに紐付いているアイテムがどのテンプレートに存在するものなのかがわかりません。 つぎはテンプレート名も一緒に取得して見たいと思います。 SQL文 ('hosts' - 'items' - 'hosts(テンプレート)') 以下は実行するSQL文です。「items」テーブル内の「templateid」カラムの情報を使って、どのテンプレートのアイテムなのかを追っていきます。テンプレートとホストに関する情報が同じテーブルに格納されているため、少し分かり辛いですね。。。 実行結果 ('hosts' - 'items' - 'hosts(テンプレート)') 以下が実行結果です。最初は少し混乱しましたが、テンプレート名も無事取得することができました! ホスト+アイテムについて ここまでで、ホストとそのホストに紐付く'テンプレートに作成されたアイテム”についての参照方法について確認しました。 つぎはホストとそのホストに個別作成されたアイテム(以下ホスト個別アイテム)の参照方法について確認していきたいと思います。設定方法の誤りで意図せず発生するホスト個別アイテムですが、SQLでリスト化できれば設定後の確認で便利ですよね! 確認のため、「ArkTest」ホストに「host item」という名前のホスト個別アイテムを作成しました。 SQL文 ('hosts' - 'items(ホスト個別)') 以下は実行するSQL文です。「templateid」にはNULLを、ホストの「status」には3以外の値を条件として実行します。 実行結果...ARK Solution Development Division Developers Blog.