Zabbixのデータベース解説(#1ホスト編)【非公式】

こんにちは、SCSK株式会社の小寺崇仁です。

このブログではZabbixのデータベース内部構成について紹介をしたいと思ってます。
第1弾としてホスト設定を取得するSQLを作成してみます。

はじめに

私はZabbixの構築を主に担当しています。最近はZabbixと外部システムを連携しているお客様が増加傾向にあると感じています。外部システムと連携をしたいお客様にはサポート範囲内である、ZabbixAPIを使用した方法を案内しています。

しかし、Zabbixはオープンソースであり、RDBMSを使用しているため、DBを直接参照することが可能です。DBの知識がある方であれば、容易にデータ抽出ができますので、表の構造とサンプルSQLを記事にしたいと思います。

注意事項

  • Zabbixのデータベース内部に関するは情報が少ないです。そのため私が個人的にDBを解析して情報発信を行う非公式情報になります。
  • 当社ではZabbixの有償サポートを実施しております。Zabbixのデータベース内部に関する問い合わせはサポート範囲に含まれておらず、本ブログの内容をサポート宛に問い合わせをいただいても回答ができません。
  • 個人的に作成したSQLです。自己責任でご利用ください。間違っていた場合イベント等でこっそり教えてください。

テーブル定義(MySQL)

hosts

ホスト情報が格納されるメインのテーブルです。

Field 日本語名称 Type Null Key Default Extra
hostid ホストID bigint unsigned NO PRI NULL  
host ホスト名 varchar(128) NO MUL    
name 名前 varchar(128) NO MUL    
description 説明 text NO   NULL  
templateid テンプレートID bigint unsigned YES MUL NULL  
flags フラグ int NO   0  
status ステータス int NO MUL 0 0:有効
1:無効
3:テンプレート
maintenance_status メンテナンスステータス int NO   0  
ipmi_authtype IPMI認証タイプ int NO   -1  
ipmi_privilege IPMI権限 int NO   2  
ipmi_username IPMIユーザー名 varchar(16) NO      
ipmi_password IPMIパスワード varchar(20) NO      
maintenanceid メンテナンスID bigint unsigned YES MUL NULL  
maintenance_type メンテナンスタイプ int NO   0  
maintenance_from メンテナンス開始 int NO   0  
tls_connect TLS接続 int NO   1  
tls_accept TLS受け入れ int NO   1  
tls_issuer TLS発行者 varchar(1024) NO      
tls_subject TLSサブジェクト varchar(1024) NO      
tls_psk_identity TLS PSKアイデンティティ varchar(128) NO      
tls_psk TLS PSK varchar(512) NO      
proxy_hostid プロキシホストID bigint unsigned YES MUL NULL
proxy_address プロキシアドレス varchar(255) NO      
auto_compress 自動圧縮 int NO   1  
discover ディスカバー int NO   0  
lastaccess 最終アクセス int NO   0  
custom_interfaces カスタムインターフェース int NO   0  
uuid UUID varchar(32) NO      
name_upper 名前(大文字) varchar(128) NO MUL    

hosts_gropus

ホストとグループの関連付けが保存されるテーブルです。

Field 日本語名称 Type Null Key Default Extra
hostgroupid ホストグループID bigint unsigned NO PRI NULL  
hostid ホストID bigint unsigned NO MUL NULL  
groupid グループID bigint unsigned NO MUL NULL  

hstgrp

ホストグループが保存されるテーブルです。

Field 日本語名称 Type Null Key Default Extra
groupid グループID bigint unsigned NO PRI NULL  
name ホストグループ名 varchar(255) NO MUL    
internal インターナル int NO   0  
flags フラグ int NO   0  
uuid UUID varchar(32) NO      

interface

インターフェースに関するテーブルです。

Field 日本語名称 Type Null Key Default Extra
interfaceid インターフェースID bigint unsigned NO PRI NULL  
hostid ホストID bigint unsigned NO MUL NULL  
main メイン int NO   0  
type タイプ int NO   1  
useip IP使用 int NO   1  
ip IPアドレス varchar(64) NO MUL 127.0.0.1  
dns DNS varchar(255) NO      
port ポート varchar(64) NO   10050  
available 利用可能 int NO MUL 0  
error エラー varchar(2048) NO      
errors_from エラー発生元 int NO   0  
disable_until 無効期限 int NO   0  

サンプルSQL

ホスト取得

SELECT
   h.hostid
  ,h.host 
  ,h.name as 表示名
  ,CASE h.status WHEN 1 THEN '無効' ELSE '有効' END AS ステータス
FROM
  hosts h
WHERE
  h.status in (0,1);

ホスト+ホストグループ

SELECT
   h.hostid
  ,h.host 
  ,h.name as 表示名
  ,CASE h.status WHEN 1 THEN '無効' ELSE '有効' END AS ステータス
  ,hg.name 
FROM
  hosts h 
LEFT JOIN hosts_groups hgs ON
  h.hostid = hgs.hostid
LEFT JOIN hstgrp hg ON
  hgs.groupid = hg.groupid
WHERE
  h.status in (0,1)

ホスト+インターフェース

SELECT
   h.hostid AS ホストID
  ,h.host as ホスト
  ,h.name as 表示名
  ,CASE h.status WHEN 1 THEN '無効' ELSE '有効' END AS ステータス
  ,CASE i.type WHEN 1 THEN 'Zabbixエージェント' WHEN 2 THEN 'SNMP' WHEN '3' THEN 'IPMI' WHEN '4' THEN 'JAVA' END AS タイプ
  ,CASE i.main WHEN 1 THEN 'メイン' END AS メイン
  ,CASE i.useip WHEN 0 THEN 'DNS' ELSE 'IP' END AS 接続方法
  ,i.ip AS IPアドレス
  ,i.dns AS DNS名
  ,i.port AS ポート
  ,s.version AS SNMPバージョン
  ,s.community AS SNMPコミュニティ
  ,CASE s.bulk WHEN 1 THEN '有効' END AS SNMPバルク
FROM
  hosts h
LEFT JOIN interface i ON
  h.hostid = i.hostid
LEFT JOIN interface_snmp s ON
  i.interfaceid = s.interfaceid
WHERE
  h.status in (0,1)

最後に

弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。

SCSK Plus サポート for Zabbix

★YouTubeに、SCSK Zabbixチャンネルを開設しました!★

★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★

著者について

Zabbixの構築をメインに担当しています。
■資格
 Zabbix認定プロフェッショナル
 AWS Certified Solutions Architect - Professional
 Google Certified Professional - Cloud Architect
 LPIC 303,304 ORACLE MASTER Gold DBA 11g
 CCNA Oracle Certified Java Programmer, Silver SE 7

小寺崇仁をフォローする
クラウドに強いによるエンジニアブログです。
SCSKは専門性と豊富な実績を活かしたクラウドサービス USiZE(ユーサイズ)を提供しています。
USiZEサービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。
Zabbixソリューションプロダクト運用・監視
シェアする
タイトルとURLをコピーしました