1、使用zabbix_agent的UserParameter能夠自定義監控指標,這裏以監控nginx鏈接數爲例node
首先nginx,須要打開statusnginx
[root@node1 ~]# vi /etc/nginx/nginx.conf location /status { stub_status on; access_log off; }
打開瀏覽器訪問http://192.168.30.117/status瀏覽器
狀態頁面各項數據的意義:bash
active connections – 當前 Nginx 正處理的活動鏈接數。curl
serveraccepts handled requests — 總共處理了 233851 個鏈接 , 成功建立 233851 次握手 (證實中間沒有失敗的 ), 總共處理了 687942 個請求 ( 平均每次握手處理了 2.94 個數據請求 )。ide
reading — nginx 讀取到客戶端的 Header 信息數。url
writing — nginx 返回給客戶端的 Header 信息數。spa
waiting — 開啓 keep-alive 的狀況下,這個值等於 active – (reading + writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留鏈接。3d
修改zabbix agent配置文件rest
[root@node1 ~]# vi /etc/zabbix/zabbix_agentd.conf UserParameter=Nginx.active[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}' UserParameter=Nginx.reading[*],/usr/bin/curl -s "http://$1:$2/status" | grep 'Reading' | cut -d" " -f2 UserParameter=Nginx.writing[*],/usr/bin/curl -s "http://$1:$2/status" | grep 'Writing' | cut -d" " -f4 UserParameter=Nginx.waiting[*],/usr/bin/curl -s "http://$1:$2/status" | grep 'Waiting' | cut -d" " -f6 UserParameter=Nginx.accepted[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}' UserParameter=Nginx.handled[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}' UserParameter=Nginx.requests[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$3}' [root@node1 ~]# service zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ]
在server端使用zabbix_get看是否能採集到數據
[root@localhost ~]# zabbix_get -s 192.168.30.117 -k "Nginx.accepted[192.168.30.117,80]" 6
能夠採集到
打開監控頁面,添加item
發現已經採集到數據