Zabbixのデータベース解説(#2アイテム&トリガー編)【非公式】

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

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

はじめに

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

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

注意事項

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

テーブル定義(MySQL)

items

アイテム情報が格納されるのテーブルです。

Field 日本語名称 Type Null Key Default Extra
itemid アイテムID bigint unsigned NO PRI NULL  
type タイプ int NO   0 0 – Zabbix エージェント
2 – Zabbix トラッパー
3 – シンプル チェック
5 – Zabbix インターナル
7 – Zabbix エージェント (アクティブ)
9 – Web アイテム
10 – 外部チェック
11 – データベース監視
12 – IPMI エージェント
13 – SSH エージェント
14 – Telnet エージェント
15 – 計算済み
16 – JMX エージェント
17 – SNMP トラップ
18 – 依存アイテム
19 – HTTP エージェント
20 – SNMP エージェント
21 – スクリプト
snmp_oid SNMP OID varchar(512) NO      
hostid ホストID bigint unsigned NO MUL NULL  
name 名前 varchar(255) NO      
key_ アイテムキー varchar(2048) NO MUL    
delay 監視間隔 varchar(1024) NO   0  
history ヒストリ保存期間 varchar(255) NO   90d  
trends トレンド保存期間 varchar(255) NO   365d  
status ステータス int NO MUL 0 0 – 有効なアイテム
1 – 無効なアイテム
value_type 値のタイプ int NO   0 0 – 数値(浮動小数)
1 – 文字列
2 – ログ
3 -数値(整数)
4 – テキスト
trapper_hosts トラッパーホスト varchar(255) NO      
units 単位 varchar(255) NO      
formula 計算式 varchar(255) NO      
logtimefmt ログ時間形式 varchar(64) NO      
templateid テンプレートID bigint unsigned YES MUL NULL  
valuemapid 値のマップID bigint unsigned YES MUL NULL  
params パラメータ text NO   NULL  
ipmi_sensor IPMIセンサー varchar(128) NO      
authtype 認証タイプ int NO   0  
username ユーザー名 varchar(64) NO      
password パスワード varchar(64) NO      
publickey 公開鍵 varchar(64) NO      
privatekey 秘密鍵 varchar(64) NO      
flags フラグ int NO   0  
interfaceid インターフェースID bigint unsigned YES MUL NULL  
description 説明 text NO   NULL  
inventory_link 在庫リンク int NO   0  
lifetime 有効期間 varchar(255) NO   30d  
evaltype 評価タイプ int NO   0  
jmx_endpoint JMXエンドポイント varchar(255) NO      
master_itemid マスターアイテムID bigint unsigned YES MUL NULL  
timeout タイムアウト varchar(255) NO   3s  
url URL varchar(2048) NO      
query_fields クエリフィールド varchar(2048) NO      
posts 投稿 text NO   NULL  
status_codes ステータスコード varchar(255) NO   200  
follow_redirects リダイレクト追跡 int NO   1  
post_type 投稿タイプ int NO   0  
http_proxy HTTPプロキシ varchar(255) NO      
headers ヘッダ text NO   NULL  
retrieve_mode 取得モード int NO   0  
request_method リクエストメソッド int NO   0  
output_format 出力形式 int NO   0  
ssl_cert_file SSL証明書ファイル varchar(255) NO      
ssl_key_file SSL鍵ファイル varchar(255) NO      
ssl_key_password SSL鍵パスワード varchar(64) NO      
verify_peer ピア検証 int NO   0  
verify_host ホスト検証 int NO   0  
allow_traps トラップ許可 int NO   0  
discover ディスカバー int NO   0  
uuid UUID varchar(32) NO      

※参考:APIマニュアルhttps://www.zabbix.com/documentation/6.0/jp/manual/api/reference/item/object

triggers

トリガー情報が格納されるのテーブルです。

Field 日本語名称 Type Null Key Default Extra
triggerid トリガーID bigint unsigned NO PRI NULL  
expression varchar(2048) NO      
description 説明 text NO   NULL  
url URL varchar(255) NO      
status ステータス int NO MUL 0 0 – 有効
1 – 無効
value int NO MUL 0  
priority 優先度 int NO   0 0 – 未分類
1 – 情報
2 – 警告
3 – 軽度の障害
4 – 重度の障害
5 – 致命的な障害
lastchange 最終変更 int NO   0  
comments コメント text NO   NULL  
error エラー varchar(2048) NO      
templateid テンプレートID bigint unsigned YES MUL NULL  
type タイプ int NO   0  
state 状態 int NO   0  
flags フラグ int NO   0  
recovery_mode リカバリーモード int NO   0  
recovery_expression リカバリー式 varchar(2048) NO      
correlation_mode 相関モード int NO   0  
correlation_tag 相関タグ varchar(255) NO      
manual_close 手動クローズ int NO   0  
opdata 操作データ varchar(255) NO      
discover ディスカバー int NO   0  
event_name イベント名 varchar(2048) NO      
uuid UUID varchar(32) NO      

※参考:APIマニュアル
https://www.zabbix.com/documentation/6.0/jp/manual/api/reference/trigger/object

functions

アイテムとトリガーの関連付け情報が格納されるのテーブルです。

Field 日本語名称 Type Null Key Default Extra
functionid 関数ID bigint unsigned NO PRI NULL  
itemid アイテムID bigint unsigned NO MUL NULL  
triggerid トリガーID bigint unsigned NO MUL NULL  
name 名前 varchar(12) NO      
parameter パラメータ varchar(255) NO   0  

サンプルSQL

アイテム取得

SELECT
   h.hostid AS ホストID
  ,i.itemid AS アイテムID
  ,h.name AS ホスト名
  ,i.name AS アイテム明
  ,i.key_ AS アイテムキー
  ,i.delay AS 監視間隔
  ,i.history AS ヒストリ保存期間
  ,i.trends AS トレンド保存期間
FROM
  hosts h
LEFT JOIN items i ON
  h.hostid = i.hostid
WHERE
      h.hostid = 10084
  AND i.flags IN (0,4)

トリガー取得

SELECT DISTINCT
   h.hostid AS ホストID
  ,h.name AS ホスト名
  ,t.triggerid AS トリガーID
  ,t.description AS トリガー名
  ,t.expression AS 条件式
  ,CASE t.priority WHEN 0 THEN '未分類' WHEN 1 THEN '情報' WHEN 2 THEN '警告' WHEN 3 THEN '軽度' WHEN 4 THEN '重度' WHEN 5 THEN '致命的' END AS 重要度
FROM
  hosts h
LEFT JOIN items i ON
  h.hostid = i.hostid
LEFT JOIN functions f ON
  i.itemid = f.itemid
LEFT JOIN triggers t ON
  f.triggerid = t.triggerid
WHERE
      h.hostid = 10084
  AND i.flags IN (0,4)

ホスト+アイテム+トリガー取得

SELECT
   h.hostid AS ホストID
  ,i.itemid AS アイテムID
  ,t.triggerid AS トリガーID
  ,h.name AS ホスト名
  ,i.name AS アイテム明
  ,i.key_ AS アイテムキー
  ,i.delay AS 監視間隔
  ,i.history AS ヒストリ保存期間
  ,i.trends AS トレンド保存期間
  ,t.description AS トリガー名
  ,t.expression AS 条件式
  ,CASE h.status  WHEN 0 THEN '有効' WHEN 1 THEN '無効' END AS ホストステータス
  ,CASE i.status  WHEN 0 THEN '有効' WHEN 1 THEN '無効' END AS アイテムステータス
  ,CASE t.status  WHEN 0 THEN '有効' WHEN 1 THEN '無効' END AS トリガーステータス
FROM
  hosts h
LEFT JOIN items i ON
  h.hostid = i.hostid
LEFT JOIN functions f ON
  i.itemid = f.itemid
LEFT JOIN triggers t ON
  f.triggerid = t.triggerid
WHERE
      h.hostid = 10084
  AND h.status in (0,1)
  AND i.flags IN (0,4)
著者について

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をコピーしました