1. 程式人生 > >zabbix--從入門到精通之zabbix歷史資料

zabbix--從入門到精通之zabbix歷史資料

1.1 通過zabbix前臺獲取歷史資料。
            通過zabbix的前臺也就是登陸web頁面的方式來檢視監控項item的歷史資料是件非常簡單的事情,我們可以通過Monitoring—>Lastest data的方式直接進行檢視。

          通過Monitoring—>Lastest data選擇相關主機的item,然後選擇右邊的grahp按鈕後入下圖所示。會得到相關item的資料圖。

           雙擊右上角的Values按鈕。就可以看到相關的時間點對著的歷史資料了。同時我們可以通過時間滾動條來選擇具體的時間範圍的歷史資料。

       通過右上角的As Plain text按鈕可以轉成成方便的text的方式顯示方便我們copy資料。

          右上角還有一個選項是500 latest values則是獲取預設的500個歷史資料進行檢視。  然後通過zabbix的前臺獲取歷史資料固然很方便但是有時候對資料的處理查詢和二次開發往往有很多限制,如果可以通過資料庫的方式對歷史資料進行查詢修改過濾是件很好的事情。
1.1 通過mysql獲取歷史資料
  Zabbix中儲存歷史資料的表是以history開頭的,目前zabbix 2.03 中主要有一下幾張表。 >>>>>history              Numeric(float)  >>>>>history_log           -log  >>>>>history_str           -Character  >>>>>history_text          -text  >>>>>history_uint          -Numeric(unsigned) Use zabbix; Select * from history; mysql> select * from history limit 3; +--------+------------+--------+-----------+ | itemid | clock      | value | +--------+------------+--------+-----------+ | 23378 | 1349976338 | 1.0000 | 23378 | 1349976368 | 1.0000 | 23378 | 1349976428 | 1.0000 +--------+------------+--------+-----------+ 3 rows in set (0.00 sec)
Itemid Item所對應的id號
Clock Item的值所對應的時間
value Item對應的值
       問題:大家發現2個問題沒有,1是時間的問題,其中clock為uninx time,我們讀起來不太方便,第二個是item只有itemid,而不是具體的item的名字,我們查詢起來不太方便。 Zabbix server.solutionware.com.cn: Processor load (5 min average per core) 2012-11-02 16:39:17    1351845557     0.05 2012-11-02 16:38:17    1351845497     0.07 2012-11-02 16:37:17    1351845437     0.05 2012-11-02 16:36:17    1351845377     0.06 2012-11-02 16:35:17    1351845317     0.08 2012-11-02 16:34:17    1351845257     0.07 2012-11-02 16:33:18    1351845198     0.08 2012-11-02 16:32:17    1351845137     0.03 2012-11-02 16:31:17    1351845077     0.04 2012-11-02 16:30:17    1351845017     0.03 2012-11-02 16:29:17    1351844957     0.04          首先看一段安裝上節As Plain text方式獲取的一段主機Zabbix server.solutionware.com.cn,每5分鐘cpu的負的值。其中左邊第一行為item對應的時間, 中間位為進過出來的時間,也就是mysql資料庫對應的clock,最後一列則為對應的cpu負載的值。 我想獲得主機Zabbix server.solutionware.com.cn cpu的負載怎麼獲得呢通過mysql的方式。因為mysql裡的history只儲存itemid的值,而沒有具體某個主機的item的名字的值,所以我們必須通過itemid的方式獲取。 獲取itemid:其實方法很簡單。我們只要在As Plain tex頁面雙擊頁面屬性

找到itemid後面=號的值就是我們想要的itemid的值。這裡為23297。 有了itemid獲取其對應的值就很簡單了。 mysql> select * from history where itemid=23297 limit 5; +--------+------------+--------+-----------+ | itemid | clock      | value | ns        | +--------+------------+--------+-----------+ | 23297 | 1351263137 | 1.0300 |  92325659 | | 23297 | 1351263197 | 1.1700 | 239910161 | | 23297 | 1351263257 | 0.9600 | 87896295 | | 23297 | 1351263317 | 0.7800 | 215842701 | | 23297 | 1351263377 | 0.6400 | 69620999 | +--------+------------+--------+-----------+ 5 rows in set (0.00 sec) 下面進行下驗證。這個值為上面例子取出的一部分的值。 2012-11-02 16:29:17    1351844957     0.04 獲取主機Zabbix server.solutionware.com.cn 2012-11-02 16:29:17這一時間對應的值。 www.it165.net mysql> select * from history where itemid=23297 and clock=1351844957; +--------+------------+--------+-----------+ | itemid | clock      | value |         | +--------+------------+--------+-----------+ | 23297 | 1351844957 | 0.0400 | +--------+------------+--------+-----------+ 1 row in set (0.00 sec)       看到嗎其中value為0.0400和我們zabbix前臺顯示的值是一樣的。 獲取某一時間段的值。 2012-11-02 16:39:17    1351845557     0.05 2012-11-02 16:38:17    1351845497     0.07 2012-11-02 16:37:17    1351845437     0.05 2012-11-02 16:36:17    1351845377     0.06 2012-11-02 16:35:17    1351845317     0.08 2012-11-02 16:34:17    1351845257     0.07 2012-11-02 16:33:18    1351845198     0.08 2012-11-02 16:32:17    1351845137     0.03 2012-11-02 16:31:17    1351845077     0.04 2012-11-02 16:30:17    1351845017     0.03 2012-11-02 16:29:17    1351844957     0.04 比如獲取2012-11-02 16:29:17到2012-11-02 16:39:17這一時間段的值。其實也很簡單 mysql> select * from history where itemid=23297 and clock>=1351844957 and clock<=1351845557; +--------+------------+--------+-----------+ | itemid | clock      | value | ns        | +--------+------------+--------+-----------+ | 23297 | 1351844957 | 0.0400 | | 23297 | 1351845017 | 0.0300 | | 23297 | 1351845077 | 0.0400 | | 23297 | 1351845137 | 0.0300 | | 23297 | 1351845198 | 0.0800 |    | 23297 | 1351845257 | 0.0700 |  | 23297 | 1351845317 | 0.0800 | | 23297 | 1351845377 | 0.0600 | | 23297 | 1351845437 | 0.0500 | | 23297 | 1351845497 | 0.0700 | | 23297 | 1351845557 | 0.0500 | +--------+------------+--------+-----------+ 11 rows in set (0.00 sec)