zabbix_sender用法實例

環境centos6.8

zabbix版本3.2.4web

需求:express

要遠程監控一臺服務器A,但只能經過遠程服務器鏈接本地服務器B,但B不能主動連A(由於A沒有固定公網ip)centos

使用了zabbix_agent的active模式,但這種模式不能使用ping方式肯定agent是否存活,使用觸發規則nodata測試服務器

A服務器網絡不穩定,很容易誤觸發規則(如有大神評論區教教我,是否是我哪裏設置錯了)網絡

最後 app

究其緣由,主要是使用觸發器失敗,改用了這種方法,當作心跳線使用dom

zabbix官方文檔:https://www.zabbix.com/documentation/3.2/manual/config/triggers/expression函數

實施例8

最近3分鐘內沒有心跳工具

使用函數nodata():性能

{zabbix.zabbix.com:tick.nodata(3m)}=1

'tick'必須有「Zabbix trapper」類型。爲了使此觸發器工做,必須定義項目'tick'。主機應使用zabbix_sender按期發送此參數的數據。若是在180秒內沒有收到數據,則觸發值成爲問題。


1、zabbix-sender介紹

zabbix_sender是一個命令行工具,能夠用來發送Zabbix服務器處理性能數據。該工具一般用於長時間運行的用戶腳本,用於按期發送可用性和性能數據。

zabbix獲取key值有超時時間,若是自定義的key腳本通常須要執行很長時間,這根本無法去作監控,那怎麼辦呢?

使用zabbix監控類型zabbix trapper,須要配合zabbix_sender給它傳遞數據。關於trapper的用法,咱們來弄個實例。

執行超長時間腳本,如:腳本去幾十臺服務器拉去數據,每一個日誌都上G,而後日誌整合在一塊兒,統計出返回值。這種腳本好比超時,因此咱們必須改爲讓客戶端提交數據的方式。

這裏是zabbix-sender設計的初衷,被我這樣用也是無奈!!

2、zabbix_sender命令詳解

[root@localhost]# ./zabbix_sender 
usage: zabbix_sender [-Vhv] {[-zpsI] -ko | [-zpI] -T -i <file> -r} [-c <file>]
參數說明:
  -c --config <file>           配置文件絕對路徑    
  -z --zabbix-server <server>     zabbix server的IP地址    
  -p --port <server port>       zabbix server端口.默認10051    
  -s --host <hostname>         主機名,zabbix裏面配置的主機名(不是服務器的hostname),不能使用ip地址    
  -I --source-address <IP address> 源IP    
  -k --key <key>             監控項的key    
  -o --value <key value>        key值    
  -i --input-file <input file>   從文件裏面讀取hostname、key、value 一行爲一條數據,使用空格做爲分隔符,若是主機名帶空格,那麼請使用雙引號包起來    
  -T --with-timestamps         一行一條數據,空格做爲分隔符: <hostname> <key> <timestamp> <value>,配合 --input-file option,timestamp爲unix時間戳    
  -r --real-time            將數據實時提交給服務器    
  -v --verbose              詳細模式, -vv 更詳細

 

 3、zabbix_sender應用實例

 

zabbix獲取數據有超時時間,若是一些數據須要執行比較長的時間才能獲取的話,那麼zabbix會出現異常,考慮到這種狀況,zabbix增長了Trapper功能,客戶端本身提交數據給zabbix,這個通道即是trapper.

使用trapper的步驟以下:

  • 在zabbix中配置trapper監控項
  • 傳遞數據到zabbix中

一、進入zabbix web界面選擇一臺主機(或模板)--items--Create item 定義一個key用來接受客戶端的sender,以下圖:

 

 (1)我採用的是模板添加,方便之後統一添加

 (2)也能夠採用hosts添加items

這裏的幾幅圖看不清楚,博客園貌似圖片有限制加上小圖

###############################

以前百度了許多關於sender的內容,但都是2.2或2.4版本,比較老,3.2.4仍是有些不同的

到這裏建立items成功

(這裏的key是自定義的,在使用sender時須要用到,大概是祕鑰配對的感受,不知道對不對)

二、回到客戶端使用如下命令sender數據

zabbix_sender -s "126" -z 192.168.1.104 -p 10050 -k "trap" -o 1

 

 這裏

 

  • -s後面跟的參數是agent端的hostname
  • -z後面跟的參數是server端的ip
  • -p後面跟的參數是server端的端口(不寫默認爲10051)
  • -k就是剛剛建items時自定義的key值-o是你想發送的數據(要是選擇的txt接收模式,也能夠爲字符)

 

[root@localhost.localdomain 五 4月 28 14:52:32 ~]# zabbix_sender -s "126" -z 192.168.1.104 -k "trap" -o 1
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000050"
sent: 1; skipped: 0; total: 1

 

 

 

這裏會提示是否正確發送,若failed是1,表示有一個失敗,即發送消息失敗,這裏s跟k參數最好都加上引號,以前就是這個緣由一直失敗

 

三、再回到zabbix web端選擇前面的主機--點擊Latest data 以下圖:

 

這時看見在這裏是沒有數據的,這裏就跟2.4版本不同了

 

我只用數字1表示有信號

這裏就告一段落了

 

四、添加觸發器

 

這裏的觸發規則,具體的我也不會,我只是套用了模板,使用trap這個key鍵,語句是nodata,而後再設置對應的參數,這裏具體的要看官方文檔了

 

 

 

 

 

 

到這裏就設置好了server端

 

五、客戶端添加腳本

再到agent端

zabbix_sender -s "126" -z 192.168.1.104 -k "trap" -o 1

添加執行權限

chmod +x zabbix_sender.sh

 

添加定時計劃

* * * * * /usr/local/src/zabbix_sender.sh

 

而後就能運行了

這樣就算一個完整的報警了,雖然很爛

相關文章
相關標籤/搜索