[zabbix] zabbix從內部檢測web頁面


環境說明:

兩台機器各運行一個tomcat實例,通過阿里雲slb到后端,假設后端服務掛了一個,從外部訪問整個服務還是可用的,所以需要從內部檢測web頁面。

zabbix自帶的web場景都是從外部檢測web頁面,並不符合此次的需求。

zabbix-agent104 172.16.2.104 tomcat 8081
zabbix-agent105 172.16.2.105 tomcat 8081

  1.zabbix-agent機器上添加UserParameter(版本:zabbix-agent-3.4.10-1.el7.x86_64)

[root@zabbix-agent104 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_curl.conf 
UserParameter=curl[*],curl --connect-timeout 3 -sI -o /dev/null -w %{http_code} http://127.0.0.1:$1$2
重啟zabbix-agent
[root@zabbix-agent104 ~]# systemctl restart zabbix-agent
往tomcat ROOT下添加一個空文件online.html
[root@zabbix-agent104 ~]# touch /usr/local/tomcat/webapps/ROOT/online.html

  2.zabbix-server機器上確認可以獲取新值

[root@zabbix-server ~]# zabbix_get -s 172.16.2.104 -k 'curl[8081,/online.html]'
200

  3.登錄zabbix web控制台添加模板、監控項、觸發器

新建一個模板,在“Templates/Modules”群組之中,主機/模板:是哪些主機要引用新的模板。

添加一個監控項,調整查看值,選擇應用集,這兩步可有可無。

克隆以上監控項,監控8082端口,因為我的環境上同台機器上開了多個tomcat實例。默認不啟用,理由是模板需要大規模應用到主機上,但並不是每台主機都安裝有多個tomcat實例,多個tomcat實例需要單獨啟用監控項。

添加觸發器,我的環境中http code有可能出現000(tomcat關閉),200(正常),302(跳轉),404(不存在)等,所以使用max、min、avg都不准確

count(#2,200,eq)意思是統計最后兩次的值等於200的個數,如果兩次都返回非200,即統計個數為0,則觸發。

count函數翻譯成中文為“周期T內成功取到的值V(滿足操作者O)的數量=N”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM