文章目錄
- 前言
- 一、準備作業
- 二、使用步驟
- 1.在nginx服務器上安裝zabbix-agent
- 2.在zabbix-server的前端頁面上添加監控主機
- 3.在nginx服務器上進行授權,
- 4.獲取nginx狀態的資料
- 5.添加監控項,在zabbix-server的前端頁面進行操作
- 6.查看效果
- 總結
前言
在使用zabbix的程序中,如果模板沒有滿足我們的需求,那我們可以自定義監控項,下文主要是添加監控nginx狀態的功能,
提示:以下是本篇文章正文內容,下面案例可供參考
一、準備作業
兩臺機器:一臺已經安裝zabbix的linux服務器(具體步驟:超詳細的zabbix5.0安裝!),一臺已經安裝nginx的linux服務器(編譯安裝nginx:文章第一章節寫了如何編譯安裝nginx),下文采用的都是centos7系統,
二、使用步驟
1.在nginx服務器上安裝zabbix-agent
代碼如下(示例):
#找到zabbix的yum源
[root@bnginx ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#安裝zabbix-agent
[root@bnginx ~]# yum install zabbix-agent -y
#啟動zabbix-agent
[root@bnginx ~]# service zabbix-agent start
Redirecting to /bin/systemctl start zabbix-agent.service
#查看行程是否啟動成功,出現下圖即可
[root@bnginx ~]# ps aux|grep zabbix

2.在zabbix-server的前端頁面上添加監控主機
如下圖所示:


填寫完點擊添加即可,

填寫完點擊添加即可,
3.在nginx服務器上進行授權,
#授權過來拉資料
[root@bnginx zabbix]# cd /etc/zabbix/
[root@bnginx zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@bnginx zabbix]# vim zabbix_agentd.conf
#允許以下的ip地址過來拿資料,如下圖


[root@bnginx zabbix]# service zabbix-agent restart
#重啟服務
nginx服務器一定要關閉防火墻和selinux!!!
4.獲取nginx狀態的資料
(1)首先,我們要能獲得到nginx狀態的資料,
在nginx的組態檔中加上這一段,
我的nginx服務器ip地址是:192.168.5.2,訪問192.168.5.2/sc_status(sc_status就是上圖中自定義的名字),出現下圖的效果即可,

(2)寫shell腳本獲取nginx狀態的資料,腳本如下:
#進入下面這個路徑
[root@bnginx zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@bnginx zabbix_agentd.d]# vim nginx_data.sh
#腳本內容如下
#!/bin/bash
HOST="192.168.5.2"
#自己的ip地址
PORT="80"
#nginx埠號
case $1 in
active)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Active/{print $NF}'
;;
reading)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Reading/{print $2}'
;;
writing)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Writing/{print $4}'
;;
waiting)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Waiting/{print $6}'
;;
accepts)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3 {print $1}'
;;
ping)
/sbin/pidof nginx | wc -l
;;
handled)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3{print $2}'
;;
requests)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3{print $3}'
;;
esac
(3)編輯自定義的用戶引數檔案
[root@bnginx zabbix_agentd.d]# vim userparameter_nginx.conf
#再編輯用戶自定義的引數檔案
[root@bnginx zabbix_agentd.d]# cat userparameter_nginx.conf
UserParameter=sc.nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_data.sh $1
#給這個腳本可執行的權限
[root@bnginx zabbix_agentd.d]# chmod +x nginx_data.sh
#重繪服務
[root@centos-LB-1 zabbix_agentd.d]# service zabbix-agent restart
(4)在zabbix-server進行執行,測驗key是否可以使用,
[root@zabbix-server ~]# zabbix_get -k sc.nginx.status["requests"] -s 192.168.5.2
278
#出現資料,可以使用
5.添加監控項,在zabbix-server的前端頁面進行操作
(1)示范添加ping,這個資料,這個資料也就是查看nginx是否正常運行,0代表nginx沒有運行,1代表nginx正在運行,如下圖所示

點擊創建應用集


創建監控項


創建圖形


創建觸發器


點擊插入

最后點擊最下方的添加即可,
6.查看效果

能找到剛剛圖形的命名即可,可以把nginx服務關一下,資料就會有變化,

總結
至此,zabbix自定義監控項完成!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292183.html
標籤:其他
