1.1自定義添加item
Items可以存在于模闆(Template)中,也可以存在于主機(Host)中,模闆的作用是可以複用,對需要重複配置的監控項歸類。
下面示範如何在bjstack模闆中添加一個Items,Key為memory.uasge[MemTotal]以及memory.uasge[MemFree]
1.配置zabbix-agent配置檔案,添加自定義key,修改配置檔案必須重新開機agent
在/etc/zabbix/zabbix_agentd.conf中配置參數,寫法如下:
UserParameter=memory.uasge[*],/bin/cat /proc/meminfo |grep "$1"|awk '{print $$2}'
2.測試key是否能擷取值
[[email protected] ~]# yum install zabbix-get -y
[[email protected] ~]# zabbix_get -s 192.168.90.12 -k memory.uasge[MemTotal]
494328
[[email protected] ~]# zabbix_get -s 192.168.90.12 -k memory.uasge[MemFree]
76584
確定能擷取到的值,就說明Key配置是正确的。提示:zabbix_get僅能測試擷取Agent監控方式的Key值,不能擷取其他類型的資料。
3.bjstack模闆中預設不存在統計總記憶體的大小的Items,故我們需要自己添加item,添加方法:單擊Configuration→Templates→bjstack→items→Create item,如圖1-10所示
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuczMzczNwgTM00yNycDOwAzMzEjMwQDM3EDMy0yM0UDO5ATMvwFNwcTMwIzLcNDN1gTOwEzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
圖1-10
4.自己定義的Key,手動添加即可
圖1-11
5.完整的key如圖1-12 (自定義key基本上都是如下模式,更多請看Zabbix監控實踐)
圖1-12
1.2Items key小結
使用者自定義參數(UserParameter)僅支援Agent方式,對于其他方式,它是不支援的。
1.Key自定義的文法格式
在/etc/zabbix/zabbix_agentd.conf中配置參數,寫法如下。
UserParameter=key,command
除了上面這種寫法,還支援參數傳遞的寫法,具體如下。
UserParameter=key[*],command $1 $2 $3 ….
2.自定義Key中的特殊字元處理
如果Userparameter包含\’”`*?[]{}~$!&;()<>|#@這些字元,預設情況下,Zabbix對這些參數是無法正常處理的,需要在Zabbix_agentd.conf中開啟參數UnsafeUserParameters,并将其值設定為1,語句如下。
[[email protected] ~]#vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
3.自定義Key的例子
UserParameter=login-user,uptime|awk -F ' ' '{print $4}'
然後重新開機zabbix_agent 服務(注意:修改配置檔案必須重新開機。)
[[email protected] ~]# zabbix_get -s 192.168.90.12 -k login-user #運作測試指令,檢視下Key
2
4.子配置檔案的配置
為了便于維護和分類管理,UserParameter的内容可以單獨寫一個配置檔案。
[[email protected] ~]#vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/
Include是zabbix_agentd.conf中部分内容的子配置檔案,注意:zabbix_agentd.conf.d/檔案下所有的配置檔案都會被當做子配置檔案,如果有重複,會導緻用戶端Agent啟動失敗。
5.使用者自定義參數總結
自定義Key的文法。
特殊字元的處理。
子配置檔案的注意事項。
注意:
1.使用者自定義參數一定要包含一個key和一個指令,也可以是一個腳本
2.key在整個系統是唯一的,一個key可以定義多個items
3.使用者自定義參數傳回值,最大傳回512兆
4.自定義完後,重新開機服務測試Key
1.3Zabbix常用Key
1.3.1CPU的Key
system.cpu.intr #裝置中斷整數
system.cpu.load[<cpu>,<mode>] #CPU負載
system.cpu.num[<type>] #CPU數量處理器個數type
system.cpu.switches #上下文交換交換次數
system.cpu.util[<cpu>,<type>,<mode>] #CPU使用率百分比
建議:
CPU負載、上下文、使用率等在Template OS Linux這個模闆中存在,需要調整觸發器,因為預設觸發器較低(通過百分比來觸發報警。)
1.3.2記憶體的key
vm.memory.size[<mode>] #記憶體大小位元組或百分比
system.swap.in[<device>,<type>] #磁盤交換到交換分期
system.swap.out[<device>,<type>] #交換分期到磁盤
system.swap.size[<device>,<type>] #交換分區大小或者百分比
建議:
記憶體在Template OS Linux這個模闆中存在,調整下觸發器即可(通過百分比來觸發報警。)
1.3.3磁盤的key
vfs.dev.read[<device>,<type>,<mode>] #磁盤讀取狀态整數
vfs.dev.write[<device>,<type>,<mode>] #磁盤寫入狀态整數
vfs.fs.inode[fs,<mode>] #磁盤inode數量pfree (空閑百分比), pused (使用百分比)
建議:
預設Template OS Linux模闆有自動發現磁盤,以及外接資料盤,隻需要修改自動觸發器即可。(如果需要監控inode,則可以通過自帶key,也可以通過自定義方式)
1.3.4網卡流量Key
net.if.in[if,<mode>] #網卡入口流量
net.if.out[if,<mode>] #網卡出口流量
net.if.total[if,<mode>] #網卡進/出流量的總和
建議:
預設Template OS Linux模闆都有自動發現網卡功能,是以基本我們隻需要根據業務的流量來調整不同的觸發器。
1.3.5監控端口的Key
net.tcp.listen[port] #檢測TCP端口是否開啟
net.udp.listen[port] ##檢測UDP端口是否開啟
net.tcp.port[<ip>,port] #連接配接到指定的TCP端口
net.tcp.service[service,<ip>,<port>] #檢測服務是否開啟,并且端口可用
建議:
預設Template OS Linux沒有端口檢測,可以根據實際情況監控端口以及服務(也可以通過自定義腳本來實作)。
1.3.6監控檔案的key
vfs.file.cksum[file] #計算檔案校驗
vfs.file.contents[file,<encoding>] #擷取文本内容若為空,隻傳回 LF/CR characters.
vfs.file.exists[file] #檢測檔案是否存在1:存在 0:不存在
vfs.file.md5sum[file] #檔案MD5校驗碼檔案MD5哈希值
vfs.file.size[file] #檔案大小位元組fzabbix必須有可讀此檔案的權限
vfs.file.time[file,<mode>] #檔案時間資訊Unix 時間戳. mode:modify (預設, 修改時間), access 最後通路時間, change 最後改變時間
建議:
預設Template OS Linux隻有一個檔案校驗/etc/passwd,可根據不同的檔案來做不同校驗或者大小的控制。
1.3.7監控程序的key
kernel.maxfiles #系統支援最大的open files整數
kernel.maxproc #系統支援最大的程序數量整數
建議:
程序在Template OS Linux這個模闆中存在,調整下觸發器即可(低于多少即觸發)。
轉載于:https://www.cnblogs.com/xuliangwei/p/6658835.html