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

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


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

前回はZabbixサーバーの内部プロセスについて確認しましたね。
今回はZabbixが監視設定や履歴データを保管するデータベースについて確認していきます。

Zabbixを知ろう -Zabbixのデータベースについて

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

ホストに関する情報について

主要テーブル一覧

監視対象であるホストに関する情報は、主に以下のテーブルに格納されています。

hostsテーブル詳細

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

Interfaceテーブル詳細

そして、以下は「desc interface;」コマンドの出力結果です。

どちらのテーブルにも「hostid」というカラムが存在しますね。このカラムを利用してホストに関する情報が格納されているそれぞれのテーブルに対してリレーションを張っているようです。

実際に「hosts」テーブルの「hostid」を利用して「Zabbix server」ホストに紐付くインターフェースのIPアドレスを取得してみたいと思います。

SQL文 (‘hosts’ – ‘interface’)

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

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

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

以下が実行結果です。

「Zabbix server」ホストに紐付くインターフェースのIpアドレスを取得することが出来ました!

想像よりも簡単に取得できたので、次はホストとホストグループの紐付けについてもSQLで確認してみたいと思います。

ホストとホストグループの紐付け

hosts_groupsテーブル詳細

まずは「hosts_groups」テーブルの詳細を確認します。
以下は「desc hosts_groups;」コマンドの出力結果です。

あれ?ホストグループ名が無い。。。
どうやらホストグループの詳細な情報は別のテーブルで保持しているようです。

「groupid」カラムを持つテーブルを捜索した結果、「groups」というテーブルの中でホストグループに関する情報が保持されているのを発見しました。

groupsテーブル詳細

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

「hostid」カラムと「groupid」カラムを利用すれば、ホストに紐付くホストグループ名を取得できそうです。

SQL文 (‘hosts’ – ‘hosts_groups’ – ‘groups’)

早速、「Zabbix server」ホストに紐付くホストグループ名を取得してみたいと思います。
以下は実行するSQL文です。

実行結果 (‘hosts’ – ‘hosts_groups’ – ‘groups’)

以下が実行結果です。

「Zabbix server」ホストに紐付くホストグループ名を取得することが出来ました!嬉しい。

まとめ

今回はホストに関する情報が格納されているテーブルと、そのリレーションについて確認しました。
難しそうと敬遠していましたが、実際に確認してみると非常に簡単に情報を取得することが出来ました。
Zabbixのデータベースの構造を理解するためには

  • idカラムでテーブル間のリレーションを追う。

ことが大切ですね!

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


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


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


 

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

最新情報をお届けします

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

【わたしに♥おまかせ Zabbix④】Zabbixのデータベースについてhttps://devlog.arksystems.co.jp/wp-content/uploads/2018/02/moz-08_ec-1200x630.jpghttps://devlog.arksystems.co.jp/wp-content/uploads/2018/02/moz-08_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が監視設定や履歴データを保管するデータベースについて確認していきます。 Zabbixを知ろう -Zabbixのデータベースについて 私たちアークシステムでは、パフォーマンスの観点からZabbixにおけるデータベースはMariaDB(Mysql)の使用を推奨しています。本記事では、Zabbix3.0、mariadb5.5の環境を用いて確認していきます。 ホストに関する情報について 主要テーブル一覧 監視対象であるホストに関する情報は、主に以下のテーブルに格納されています。hostsテーブル詳細 まずはホストに関する主要な情報が格納されている「hosts」テーブルについて詳しく確認していきます。 以下は「desc hosts;」コマンドの出力結果です。Interfaceテーブル詳細 そして、以下は「desc interface;」コマンドの出力結果です。どちらのテーブルにも「hostid」というカラムが存在しますね。このカラムを利用してホストに関する情報が格納されているそれぞれのテーブルに対してリレーションを張っているようです。 実際に「hosts」テーブルの「hostid」を利用して「Zabbix server」ホストに紐付くインターフェースのIPアドレスを取得してみたいと思います。 SQL文 ('hosts' - 'interface') 以下は実行するSQL文です。 「hosts」テーブルにおける「status」カラム内の値が「3」となっているデータはテンプレートを表すため、where句の1つめの条件で検索対象から除外しています。実行結果 ('hosts' - 'interface') 以下が実行結果です。「Zabbix server」ホストに紐付くインターフェースのIpアドレスを取得することが出来ました! 想像よりも簡単に取得できたので、次はホストとホストグループの紐付けについてもSQLで確認してみたいと思います。 ホストとホストグループの紐付け hosts_groupsテーブル詳細 まずは「hosts_groups」テーブルの詳細を確認します。 以下は「desc hosts_groups;」コマンドの出力結果です。あれ?ホストグループ名が無い。。。 どうやらホストグループの詳細な情報は別のテーブルで保持しているようです。 「groupid」カラムを持つテーブルを捜索した結果、「groups」というテーブルの中でホストグループに関する情報が保持されているのを発見しました。 groupsテーブル詳細 以下は「desc groups;」コマンドの出力結果です。「hostid」カラムと「groupid」カラムを利用すれば、ホストに紐付くホストグループ名を取得できそうです。 SQL文 ('hosts' - 'hosts_groups' - 'groups') 早速、「Zabbix server」ホストに紐付くホストグループ名を取得してみたいと思います。 以下は実行するSQL文です。実行結果 ('hosts' - 'hosts_groups' - 'groups') 以下が実行結果です。「Zabbix server」ホストに紐付くホストグループ名を取得することが出来ました!嬉しい。 まとめ 今回はホストに関する情報が格納されているテーブルと、そのリレーションについて確認しました。 難しそうと敬遠していましたが、実際に確認してみると非常に簡単に情報を取得することが出来ました。 Zabbixのデータベースの構造を理解するためにはidカラムでテーブル間のリレーションを追う。ことが大切ですね! もっとZabbixのデータベースのことを知るために、次回はデータベースの中のアイテムに関する情報について確認していきたいと思います。アークシステムでは、Zabbixの環境構築や保守サポートを低価格・短納期で実現する「まるごとおまかせZabbix」を提供しています。 本サービスの詳細や、Zabbixを活用したソリューションにご興味をお持ちの方がいらっしゃいましたら サービス紹介ページ からお気軽にお問合わせ下さい。わたしに♥おまかせ Zabbix...ARK Solution Development Division Developers Blog.