zabbix數據庫表結構解析


 

 

 下面開始介紹:

1.添加監控表結構詳解

(1)hosts,存儲被監控的機器的信息,表結構如下:

 

(2)items

(3)hosts_templates,存儲機器和模版或者模版和模版之間的關系

由於模版和機器都存儲在hosts表中,所以hosts_templates和hosts 之間可以hostid關聯也可以通過templateid關聯。

 (4)interface,存儲了所有設備的ip和端口的數據。(由於hosts表中不僅保存了設備信息還保存了模版信息,所以統計實際監控的設備,此表更加准確)

 

 2.數據存儲表結構詳解

 

將clock 轉化為人性化時間:

3.報警相關表結構詳解

 

(1)triggers

 

 

 

附 functions 表結構:

 (2)events

 

 

例子:

1. 找出某台主機的所有items ,含有某個key_的item , 統計items 總個數
SELECT * FROM HOSTS WHERE hostid=10157;
SELECT * FROM items WHERE hostid=10157 AND key_ LIKE '%agent%';
SELECT COUNT(*) FROM items;

2. 找出觸發trigger次數最多的事件,並按trigger 降序排列。
SELECT a.description, COUNT(*) cnt FROM TRIGGERS a , EVENTS b
WHERE a.triggerid=b.objectid ORDER BY cnt DESC ;
3. 從item記錄各找出一個value類型為整形,浮點型的key_。
統計這兩個key_ 存儲在history或者history_uint 某一個時間段(比如2017/06/12)
的最大值,最小值,平均值,然后與 trends 或者 trends_unint 中相應時間段做對比

整型
SELECT * FROM items WHERE value_type=3 AND hostid=10157 LIMIT 1;
SELECT * FROM history_uint a,trends_uint b WHERE a.clock=b.clock AND a.itemid=b.itemid LIMIT 1;

浮點型
SELECT * FROM items WHERE value_type=0 AND hostid=10157 LIMIT 1;
SELECT * FROM history a,trends b WHERE a.clock=b.clock AND a.itemid=b.itemid LIMIT 1;

 

4.統計Zabbix Dashboard中triggers總數的來源。

SELECT  count(*)
  FROM TRIGGERS
WHERE triggerid IN
       (SELECT triggerid
          FROM functions
         WHERE itemid IN (SELECT itemid
                            FROM items
                           WHERE hostid IN (SELECT hostid FROM interface)
                             AND key_ NOT LIKE '%#%'
                             AND key_ NOT LIKE '%discovery%'
                             AND STATUS != 1));
 
說明:
通過之前對zabbix 表結構的學習,我們知道,表 triggers functions 相關聯,而 functions items 相關聯,那么,要對 triggers 做統計,就需要從這三張表下手。
關鍵就是對items 表中的數據做出篩選, key_ 中帶“ # ”和“ discovery ”的和 status=1 (不可用狀態)都要排除,這樣就統計出來了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM