itB!HatenaPocketLINELINEこんにちは!プラットフォーム技術部の齊藤(沙)です。前回はZabbixが監視設定や履歴データを保管するデータベースの中でもホストに関連するテーブルについて確認しました。今回はアイテムに関連するテーブルについて確認していきます。私たちアークシステムでは、パフォーマンスの観点からZabbixにおけるデータベースはMariaDB(Mysql)の使用を推奨しています。本記事では、Zabbix3.0、mariadb5.5の環境を用いて確認していきます。監視項目であるアイテムに関する情報は主に以下のテーブルに格納されています。#アイテムとアプリケーションの紐付けに関する情報を格納するテーブルitemsテーブル詳細まずはアイテムに関する主要な情報が格納されている「items」テーブルについて詳しく確認していきます。items;」コマンドの出力結果です。|+-----------------------+---------------------+------+-----+---------+-------+アイテムはZabbixの仕様上、ホストまたはテンプレートに紐付く形で存在します。Zabbixのデータベースの中では、ホストもテンプレートも共に「hosts」テーブル内に情報が格納されます。「items」テーブルに「hostid」が存在して簡単に取得できそうなので、まずはホストに紐付くアイテムの一覧を取得して見たいと思います。‘items’)以下は実行するSQL文です。「hosts」テーブルにおける「status」カラム内の値が「3」となっているデータはテンプレートを表すため、where句の1つめの条件で検索対象から除外しています。‘items’)以下が実行結果です。|+---------+--------------------------------+------------+ホストに紐付くアイテムを取得することができました!でもこれでは、ホストに紐付いているアイテムがどのテンプレートに存在するものなのかがわかりません。つぎはテンプレート名も一緒に取得して見たいと思います。‘hosts(テンプレート)’)以下は実行するSQL文です。h1.host='ArkTest';「items」テーブル内の「templateid」カラムの情報を使って、どのテンプレートのアイテムなのかを追っていきます。テンプレートとホストに関する情報が同じテーブルに格納されているため、少し分かり辛いですね。‘hosts(テンプレート)’)以下が実行結果です。|+---------+---------------------+--------------------------------+------------+最初は少し混乱しましたが、テンプレート名も無事取得することができました!ホスト+アイテムについてここまでで、ホストとそのホストに紐付く”テンプレートに作成されたアイテム”についての参照方法について確認しました。つぎはホストとそのホストに個別作成されたアイテム(以下ホスト個別アイテム)の参照方法について確認していきたいと思います。item」という名前のホスト個別アイテムを作成しました。‘items(ホスト個別)’)以下は実行するSQL文です。h.host='ArkTest';「templateid」にはNULLを、ホストの「status」には3以外の値を条件として実行します。‘items(ホスト個別)’)以下が実行結果です。|+---------+-----------+-------------+確認用の作成した、ホスト個別アイテムが取得できました!(ディスカバリルールで作成されるアイテムもこのSQL文では出力されます。)これで以下についてSQL文で簡単に確認できるようになりました。ホストに紐付くテンプレートアイテムホストに紐付くホスト個別アイテムアイテム+アプリケーションについて丁度実施している作業で、特定のアプリケーション名が設定されているアイテムを確認する必要があるので、最後にアプリケーション名の取得についても確認して見たいと思います。applications;」コマンドの出力結果です。|+---------------+---------------------+------+-----+---------+-------+むむむ。「itemid」が存在しません。items_applications;」コマンドの出力結果です。|+---------------+---------------------+------+-----+---------+-------+「itemid」を発見しました。「items_applications」テーブルの「itemid」を使えばアイテムに紐付くアプリケーション名を取得できそうです。‘applications’)以下は実行するSQL文です。‘applications’)以下が実行結果です。|+---------+-----------+-------------+------+アイテムに紐付くアプリケーション名についても取得することができました!まとめ今回はアイテムに関する情報が格納されているテーブルと、そのリレーションについて確認しました。WebUIのフィルタ機能の強化により、SQL文で設定内容を確認する機会は減っていますが、欲しい情報だけを一覧表示させることが出来る点ではSQL文は非常に便利!データベースからアイテムを参照する際には「hosts」テーブルに、ホストとテンプレート情報が保存されていることを留意することが大切ですね!もっとZabbixのデータベースのことを知るために、次回はデータベースの中のトリガーに関する情報について確認していきたいと思います。...https://devlog.arksystems.co.jp/2018/04/25/4842/アークシステムでは、Zabbixの環境構築や保守サポートを低価格・短納期で実現する「まるごとおまかせZabbix」を提供しています。お気軽にお問合わせ下さい。sachi-saitoこのサイトの掲載内容は投稿者自身の見解であり、必ずしも当社の立場、戦略ならびに意見を代表するものではありません。本サイトに掲載されている商品またはサービス等の名称は、各社の商標または登録商標です。アークシステムのSNSをいいね!&フォローしよう。@arksystemsJp最新情報をお届けします。この記事が気に入ったらいいね!&シェアお願いします。