自定義監控項
什么是監控項?
監控項:就是我們想要監控的指標,例如剩余記憶體,磁盤空間,服務的狀態等等
每一個監控項,都有一個唯一的key,簡潔明了(相當于shell腳本的變數名)
只需要安裝zabbix-agent,默認就支持大量的監控項,但是linux模板并沒有使用所有監控項
Template OS Linux by Zabbix agent主要監控了cpu,記憶體,磁盤,網卡,安全,它們都屬于通用監控
應用集是監控項的分組
使用內置key監控nginx的狀態


![proc.num[nginx]這個鍵值主要是針對nginx的行程數量](https://img.uj5u.com/2021/02/03/221196031012005.png)

(注意:添加監控項之前最好使用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


使用自定義的監控項來監控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’的報警) 那恭喜帖子你順利完成了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255871.html
標籤:其他
下一篇:如何使用電腦云盤?
