zabbix如何選擇適合的監控類型
zabbix提供十幾種監控類型,包括:Zabbix agent, Simple checks, SNMP, Zabbix internal, IPMI, JMX monitoring等等,那我們應該如何選擇呢?涼白開在此給大家一一作一個說明
zabbix agent
zabbix 自帶的客戶端程序(被動模式),zabbix server主動向它收集監控數據。agent提供豐富的key,包括不限於cpu、內存、網絡、磁盤、web等等。如果你不介意或者系統支持安裝此程 序,那么他是首選的。需要注意的是,server檢索數據有超時限制,最大超時時間30秒,如果檢索數據經常超過30秒,那么,不建議你使用主動模式的 agent,可以使用如下類型agent active
zabbix agent(active)
也需要安裝agent(主動模式),和上一個相同。但是數據由zabbix agent主動提交至zabbix server
simple check
基本的檢測,可以檢測網絡、端口、fping這些,功能很少並且無需安裝客戶端。
snmp check
snmp v1 check、snmp v2 check、snmp v3 check的功能都是一樣的。推薦如下場景:
- 客戶基於安全考慮,不同意安裝agent
- 路由器、打印機等等設備無法安裝,但是支持snmp協議
- 不喜歡頻繁對agent升級
zabbix internal
zabbix系統內部用,比如趨勢數據記錄數了、歷史記錄數量等等,日常業務監控用不上他。
zabbix trapper
也需要安裝agent(主動模式),你需要借助bin/zabbix_sender將數據提交至zabbix server。如下情況適合使用:
- 檢索數據時間較長
- 同一時間有大量的數據要提交,例如redis info信息,里面包含五六十項數據,通過zabbix_sender來一次性提交,顯然比agent來取幾十次要方便。
zabbix aggretage
aggregate checks是一個聚合的檢測,例如我想知道某個組的host負載平均值,硬盤剩余總量,或者某幾台機器的這些數據,簡單的說,這個方法就是用來了解一個整體水平,而不需要我們一台台看過去。這個方法的數據全部來之數據庫,所以它不需要agent。
external check
zabbix server運行腳本或者二進制文件來執行外部檢測,外部檢測不需要在被監控端運行任何agentd。
備注:請不要過度使用外部檢測,這會嚴重降低zabbix系統性能
database monitor
zabbix通過調用ODBC來獲取數據庫的數據以及數據庫狀態等等信息
IPMI agent
用於監控硬件設備,例如Dell或者hp服務器的主板溫度、cpu電壓、蓋子是不是被打開等等
SSH agent
zabbix使用提供的ssh信息(服務器用戶密碼或者證書)登錄服務器,執行指定的腳本來檢索數據。如下人適合用
- 不會安裝agent、不想相撞agent
- 不擔心賬號密碼/證書放在zabbix里
Telnet agent
同上,Windows不支持ssh,可以使用Telnet agent。
jmx agent
通過jmx監控java jvm,比如tomcat。目前有一個很大的不足,如果tomcat多實例,jmx agent只能監控一個。如果是多實例,建議使用agent + cmdline-jmxclient-0.10.3.jar
zabbix Calculated
計算類型,在幾個key值之間做計算,例如redis自帶的info命令可以監控keyspace_hits和keyspace_misses這兩個值,但是redis的命中率不能直接獲取,可以通過zabbix的calculated實現監控redis的命中率
zabbix telnet監控類型
概述
zabbix監 控的方式很多,例如前面講到的agent、snmp以及后續后續要講到ssh和今天要講到的telnet。流程很簡單,創建item-->配置 ip、用戶、密碼、端口、腳本->zabbix server telnet目標ip->執行制定腳本,腳本最后返回數據給server。
目標:獲取linux系統15分鍾負載
telnet key
語法:telnet.run[<unique short description>,<ip>,<port>,<encoding>]
<unique short description>:描述
<ip>:服務器ip
<port>:服務器端口
<encoding>:編碼,可為空
telnet配置
請看《linux下telnet安裝與使用》
創建腳本
獲取系統負載腳本loadavg.sh
# cat /home/zabbix/loadavg.sh #!/bin/bash /bin/awk '{ print $3 }' /proc/loadavg
創建item
configuration>>host>>你的主機>>item>>create item,如下:
屬性說明:
user name:telnet賬號
Password:telnet密碼
獲取到的結果如下
優缺點都很明顯,只需要通過telnet就可以監控服務器,但是賬號密碼是明文配置在item中的,而且一旦網絡不好,item狀態很容變為unspport。一直相類似的還有ssh監控類型
來源:http://www.ttlsa.com/zabbix/