Zabbix(六):項目實戰之--自動發現nginx調度器及後端web服務集群、自定義參數監控
1.自動發現nginx調度器及後端apache構建的web服務集群;
2.使用自定義參數監控調度器上nginx服務的相關統計數據及速率數據;
3.使用自定義參數監控後端apache服務的相關統計數據及速率數據;(選做)
4.制定出nginx調度器及後端apache服務的監控模板,在模板中定義出:items, trigger, graph;(選做)
-------------------------------------------------------------------------------------------------------
項目規劃:
zabbix-server端:172.16.1.2
zabbix-agent端/nginx調度器:172.16.1.99
zabbix-agent端/後端RS1:172.16.1.3
zabbix-agent端/後端RS2:172.16.1.10
把nginx調度器的ip地址設置的大一些,是為了設置zabbix Discovery的時候,自動區分發現nginx調度器及後端apache構建的web服務集群,所以下面可以設置兩個zabbix Discovery,分別發現不同作用的主機。
1.
zabbix-server端:
安裝以下應用
yum install zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent zabbix-get -y
詳細的server端配置請參照:http://blog.51cto.com/12667170/2044254
三個zabbix-agent端:
安裝以下應用
yum install -y zabbix-agent zabbix-sender
詳細的agent端配置請參照:http://blog.51cto.com/12667170/2044254
2.創建nginx調度器
在nginx.conf配置文件中的http段內添加upstream內容,將後端兩臺RS加入到該upstream中
upstream zrs {
server 172.16.1.3;
server 172.16.1.10;
}
server {
listen 80;
location / {
proxy_pass http://zrs;
proxy_set_header X-Real-IP $remote_addr;
}
}
兩個後端rs各配置一個index.html方便測試,並開啟httpd服務
測試可以看到使用了RoundRobin模式對後端rs訪問。
[root@zrs2 ~]# for i in {1..10}; do curl http://172.16.1.99; done
<h1>172.16.1.3</h1>
<h1>172.16.1.10</h1>
<h1>172.16.1.3</h1>
<h1>172.16.1.10</h1>
<h1>172.16.1.3</h1>
<h1>172.16.1.10</h1>
<h1>172.16.1.3</h1>
<h1>172.16.1.10</h1>
<h1>172.16.1.3</h1>
<h1>172.16.1.10</h1>
3.自動發現nginx調度器及後端apache構建的web服務集群
創建nginx discovery
創建web discovery
分別打開nginx調度器端和後端rs主機上的zabbix-agent服務
查看Hosts,已經添加進了這三臺主機
4.使用自定義參數監控調度器上nginx服務的相關統計數據及速率數據
為了監控nginx狀態,在nginx的主配置文件的server中添加location監控nginx的狀態值。
[root@zrs2 ~]# vim /etc/nginx/nginx.conf
location /status {
stub_status on;
}
[root@zrs2 ~]# systemctl restart nginx.service
[root@zrs2 ~]# curl 172.16.1.99/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
監控nginx的狀態,需要item的key,默認的沒有,需要自定義參數UserParameters
5.自定義參數(UserParameters)
nginx自定義參數
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://172.16.1.99/status | awk '/^Active/{print $NF}'
UserParameter=nginx.accepts,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+[0-9]/{print $1}'
UserParameter=nginx.handled,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+[0-9]/{print $2}'
UserParameter=nginx.requests,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+[0-9]/{print $3}'
保存退出,重啟服務
[root@zrs2 zabbix_agentd.d]# systemctl restart zabbix-agent.service
在server端查看,可以不用eno查看狀態,直接用第二種方法就能獲取值,都成功了
[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k net.if.in[eno16777736,bytes]
285905110
[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.active
1
[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.accepts
9
[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.handled
10
[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.requests
11
接下來可以根據上面自定義的參數UserParameters,創建新的item項,可以輸入剛才自定義的key。
在Hosts的172.16.1.99主機後面點擊Items,然後Create item
如下創建4個監控項,也就是剛才設置的,註意的是preprocessing中改為Change per second
可以給這些監控創建一個graph
經過一段時間後,查看這個graph有了數值,表示自定義參數監控設置成功。
6.nginx調度器創建監控模板,在模板中定義出:items, trigger, graph。
創建nginx template
在這個模版上創建item,監控入站流量,註意的是preprocessing中改為Change per second
創建trigger
為了觸發器被觸發需要定義動作actions
這時需要定義Administration中users下面的media
再定義media types中的email中的media type
創建graph
7.後端apache服務配置監控模板,在模板中定義出:items, trigger, graph。
創建web template
在這個模版上創建item,監控出站流量,註意的是preprocessing中改為Change per second
創建trigger為了跟上面的trigger區分,這裏Severity改為High
創建graph
8.鏈接應用模版
如下圖,在172.16.1.99的host旁邊,選擇templates
鏈接nginx template
同樣的步驟為兩個後端rs鏈接模版
9.查看Hosts,剛才自定義配置監控都成功了。
Zabbix(六):項目實戰之--自動發現nginx調度器及後端web服務集群、自定義參數監控