此實驗基於上一篇,已經監控了server2和server3.
一、zabbix監控httpd服務
httpd是zabbix自帶的監控模塊
1、 在server2上安裝apache,開啓服務
[root@server2 zabbix]# yum install httpd -y
[root@server2 zabbix]# systemctl start httpd
[root@server2 zabbix]# systemctl enable httpd
2、然後在web界面上進行設置:
配置
—>主機
—> server2
—> 模板
—>選擇
—> Template App HTTP Service
—> 添加
—>更新
點擊server2的監控項可以看到http服務正在運行
可以看到server2主機的觸發器多了一個httpd服務的觸發器,是端口的觸發器,zabbix是通過端口來檢測httpd服務的
二、zabbix監控nginx
1、在監控主機server3上部署nginx服務,下載安裝包並解壓,安裝依賴性軟件並編譯安裝,註釋掉debug日誌。
root@server3 ~]# yum install gcc pcre-devel zlib-devel -y
[root@server3 ~]# tar zxf nginx-1.17.4.tar.gz
[root@server3 ~]# cd nginx-1.17.4
[root@server3 nginx-1.17.4]# ./configure --help | grep stub
--with-http_stub_status_module enable ngx_http_stub_status_module
[root@server3 nginx-1.17.4]# vim auto/cc/gcc
[root@server3 nginx-1.17.4]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
[root@server3 nginx-1.17.4]# make && make install
2、修改nginx配置文件,向nginx配置文件中添加用於網頁狀態的查看檢測的模塊,以及開啓nginx服務
[root@server3 nginx]# vim /usr/local/nginx/conf/nginx.conf
48 location /status {
49 stub_status on; #開啓該模塊
50 access_log off; #關閉日誌記錄
51 allow 127.0.0.1; #白名單 只允許本機訪問
52 deny all;
53 }
[root@server3 nginx-1.17.4]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
[root@server3 nginx-1.17.4]# nginx -t
[root@server3 nginx-1.17.4]# nginx
3、在server3本機curl 127.0.0.1/status
來測試nginx服務是否部署成功
Active connections | 活躍的連接數 |
---|---|
accepts | 接收到的請求數(不一定回覆) |
handled | 確定建立三次握手的請求數 |
requests | 處理的請求數 |
curl -s http://localhost/status | grep Active | awk '{print $3}'
4、修改server3的配置文件/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
,創建nginx的監控項
[root@server3 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@server3 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server3 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf #將mysql服務的監控模版給nginx服務複製一份
[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf #編輯配置文件
UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk '{print $3}' #獲取活躍連接數,nginx.active爲健值,獲得的連接數爲value值
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent #修改完成重啓服務。
5、在web界面,server3添加nginx的監控
【選擇server3主機】——>【創建監控項】
監控項名稱可自定義,健值必須和server3配置文件中的一致
此時,在監控項可以看到所添加的。
創建圖形,將已經添加的監控項導入
此時,我們查看監控圖形
此時,我們會發現亂碼情況。
web界面字體的調整
[root@server1 ~]# cd /usr/share/zabbix/fonts/
[root@server1 fonts]# ls
graphfont.ttf simkai.ttf
[root@server1 fonts]# cd ..
[root@server1 zabbix]# cd include/
[root@server1 include]# vim defines.inc.php
:%s/graphfont/simkai/g #將graphfont替換爲simkai
此時,刷新web頁面,就發現沒有亂碼了。
zabbix_get 是 zabbix 服務端的一個命令,用於檢測 agent 端的配置是否正確,可以很方便地知道 key 是否能正常獲取到數據,在測試自定義監控的時候特別有用
在server1下載軟件zabbix-get,來獲取server3的活躍連接數
[root@server1 include]# yum install zabbix-get -y
[root@server1 include]# zabbix_get -s 172.25.2.3 -p 10050 -k "nginx.active"
添加新的監控項nginx.accept
編輯nginx的監控文件userparameter_nginx.conf
,將要獲取的健值對加入
[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept, curl -s http://localhost/status | awk NR==3 |awk '{print $1}'
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent
創建監控項
將新建的監控項添加到原來的nginx_active的圖形中,將三個監控項放在同一個座標圖形裏面可以對比
添加成功,點擊更新之後查看圖形
爲了圖形界面的效果顯示的更加明顯,我們通過server3自己進行壓力測試,自己訪問自己
我們同樣過程,再添加一項: