超詳細zabbix 監控項,自定義觸發器,自定義報警

自定義監控項

什麼是監控項?

監控項:就是我們想要監控的指標,例如剩餘內存,磁盤空間,服務的狀態等等

每一個監控項,都有一個唯一的key,簡潔明瞭(相當於shell腳本的變量名)

只需要安裝zabbix-agent,默認就支持大量的監控項,但是linux模板並沒有使用所有監控項

Template OS Linux by Zabbix agent主要監控了cpu,內存,磁盤,網卡,安全,它們都屬於通用監控

應用集是監控項的分組

使用內置key監控nginx的狀態
在這裏插入圖片描述
在這裏插入圖片描述
proc.num[nginx]這個鍵值主要是針對nginx的進程數量
在這裏插入圖片描述



(注意:添加監控項之前最好使用zabbix-get來測試取值)

#只在zabbix-server上安裝
yum install zabbix-get -y
zabbix_get -s 127.0.0.1 -k proc.num[nginx]
#註釋
-s 被監控主機的ip地址
-p 端口
-k 指定監控項的key

在zabbix-agent主機上修改一下agent2系統配置文件,不然在zabbix-server這個主機上使用不了zabbix-get

vim /usr/lib/systemd/system/zabbix-agent2.service
User=root
Group=root

使用自定義的監控項來監控NGINX
在zabbix-agent主機上修改agent配置文件

vim /etc/zabbix/zabbix_agent2.conf
UserParameter=nginx_status,netstat -lntp|grep -c nginx
(nginx_status 是自定義鍵值(監控項、key) netstat -lntp|grep -c nginx 是查看nginx啓動了幾個. 
總結起來來說就是看nginx啓動了幾個端口賦值給 nginx_status 這個自定義的監控項)

在zabbix-agent主機上重啓agent生效

systemctl restart zabbix-agent2.service

使用zabbix-get測試取值

#只能在zabbix-server上執行
zabbix_get -s 10.0.0.8 -k nginx_status

在zabbix-server上
經過zabbix-agent測試後發現跟zabbix-server返回的值是一樣的

使用自定義的監控項來監控NGINX 加強版
建議把agent自定義監控項獨立成一個配置文件

vim /etc/zabbix/zabbix_agent2.d/zbx_nginx.conf
UserParameter=nginx_status,netstat -lntp|grep -c nginx
好處:可以複用,管理更加的方便

對應有規律的監控項

UserParameter=mysql_Uptime,echo 'show status;'|mysql -uroot|grep -w 'Uptime'|awk '{print $2}'
UserParameter=mysql_Com_select,echo 'show status;'|mysql -uroot|grep -w 'Com_select'|awk '{print $2}'
UserParameter=mysql_Com_delete,echo 'show status;'|mysql -uroot|grep -w 'Com_delete'|awk '{print $2}'
1

適合使用帶參考的自定義監控項

UserParameter=mysql_define[*],echo 'show status;'|mysql -uroot|grep -w "$1"|awk '{print $$2}'
這裏的$1是對應mysql_define[*]裏面的那個*   $2依舊是取第二列的值

取值效果

[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Uptime]
827
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Com_select]
1
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Com_insert]
0

自定義觸發器

什麼是觸發器?
觸發器:設置一個報警條件(一個觸發器至少對應一個監控值)

觸發器表達式的格式:
例子one

{
   
   10.0.0.8:vfs.file.cksum[/etc/passwd].diff()}>0
主機:10.0.0.8
key值:vfs.file.cksum[/etc/passwd]
函數方法:diff() 對比兩次監控項的值
如果兩次對應的值大於了0 就報警 (是zabbix報警 不是生活中的報警)

例子two

{
   
   10.0.0.8:proc.num.last()}/{
   
   10.0.0.8:kernel.maxproc.last()}*100>80
10.0.0.8:proc.num:當前運行進程數量
10.0.0.8:kernel.maxproc 系統最大允許進程的數量
函數方法:last() 最新值   (生產中last()用的比較多,比如你的某個業務down掉了,監控項裏用last()就會自己立即報警,不會墨跡)

例子3

{
   
   10.0.0.8:vm.memory.size[available].min(5m)}<{
   
   $MEMORY.AVAILABLE.MIN} and{
   
   10.0.0.8:vm.memory.size[total].last()}>0
函數方法 mim(5m) 五分鐘之內最小的值, max(5m) 五分鐘之內最大的值, avg(5m) 五分鐘之內的平均值
{
   
   $MEMORY.AVAILABLE.MIN}=20m
and 同時
10.0.0.8:vm.memory.size[total] 最新的總內存大小
available和total是free -m 裏的

自定義觸發器表達
在這裏插入圖片描述
在這裏插入圖片描述
i[外鏈圖片轉存中…(img-TScQ2nfv-1612268750390)]


在這裏插入圖片描述

自定義報警

郵件報警
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
我這裏測試的是網易郵箱爲發件人,測試qq郵箱爲收件人 測試成功之後就可以配置收件人了!

配置收件人:
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
我這裏在zabbix-agent上把NGINX給關閉了 用來測試的
在這裏插入圖片描述
如果你的QQ郵箱可以收到報警(不要誤會是zabbix’的報警) 那恭喜帖子你順利完成了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章