運用 Zabbix 構建企業大型監控系統——服務監控項的添加(httpd、nginx、mysql)

主機環境:rhel7.3 selinux and firewalld disabled

主機名 ip 服務
server1 172.25.254.1 zabbix
server2 172.25.254.2 agent、nginx

server1:server端
server2:agent(被監控端)

準備:
在server2上安裝httpd,並啓動

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# systemctl start httpd
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html 
www.westos.org
[root@server2 html]# curl localhost
www.westos.org

一、添加httpd的監控項

剛開始server2的監控項爲34個
在這裏插入圖片描述

添加httpd監控項
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

將server2的httpd關閉
[root@server2 html]# systemctl stop httpd

二、添加nginx的監控項

nginx監控項zabbix沒有,需要在agent端部署nginx服務

1.獲得資源包、安裝nginx
在這裏插入圖片描述
編譯、安裝

[root@server2 nginx-1.15.9]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
[root@server2 nginx-1.15.9]# make && make install

2.修改nginx的配置文件

[root@server2 conf]# pwd
/usr/local/nginx/conf
[root@server2 conf]# vim nginx.conf
 47         location /status {
 48                 stub_status on;
 49                 access_log off;
 50                 allow 127.0.0.1;
 51                 deny all;
 52         }
 [root@server2 conf]# ln -s /usr/local/nginx/sbin/nginx /sbin/
[root@server2 conf]# nginx -t
[root@server2 conf]# nginx
測試:

[root@server2 conf]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0

[root@server2 conf]# curl http://127.0.0.1/status | grep Active
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 97 100 97 0 0 163k 0 --:–:-- --:–:-- --:–:-- 97000
Active connections: 1

[root@server2 conf]# curl -s http://127.0.0.1/status | grep Active | awk ‘{print $3}’
1
在這裏插入圖片描述
3.創建nginx監控項(nginx.active和nginx.accept)

[root@server2 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server2 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf 
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf  userparameter_nginx.conf
[root@server2 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent

4.在監控端server1安裝zabbix-get,測試

[root@server1 ~]# yum install zabbix-get -y
[root@server1 ~]# zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.active"
1
[root@server1 ~]# zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.accept"
24

在這裏插入圖片描述

在web界面進行添加:
創建監控項
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

給監控項添加圖形
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

再繼續添加:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

壓側agent

解決圖中亂碼字體

1.下載字體到/usr/share/zabbix/fonts目錄下,替換字體
在這裏插入圖片描述

[root@server1 include]# pwd
/usr/share/zabbix/include
[root@server1 include]# vim defines.inc.php

在這裏插入圖片描述
再次刷新頁面,顯示的字體就不是亂碼了,等待一會,就會有監控數據
在這裏插入圖片描述

三、添加mysql的監控項

1.添加自帶的 mysql 的監控項(因爲server1裝有數據庫所以監控server1)

在server的監控界面下此時監控項是88個:
在這裏插入圖片描述

添加自帶的mysql監控項
在這裏插入圖片描述

添加成功後監控項會增加到102個
在這裏插入圖片描述

1.配置mysql

[root@server1 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server1 zabbix_agentd.d]# cat userparameter_mysql.conf	#會發現數據庫兩個選項的key-value

在這裏插入圖片描述
2.編寫獲取key-value時可以讀取的規則

[root@server1 zabbix_agentd.d]# ll -d /var/lib/zabbix
ls: cannot access /var/lib/zabbix: No such file or directory
[root@server1 zabbix_agentd.d]# mkdir /var/lib/zabbix
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix/
[root@server1 zabbix]# vim .my.cnf
[mysql]
user = root
password = redhat

[mysqladmin]
user = root
password = redhat
[root@server1 zabbix]# systemctl restart zabbix-agent	#讓agent可以重新讀取配置文件

測試:
此時,沒有返回值,但是是正常的,在瀏覽器下,可以看到出圖了

[root@server1 zabbix]# zabbix_get -s 172.25.254.1 -p 10050 -k mysql.ping
zabbix_get [4798]: Check access restrictions in Zabbix agent configuration
[root@server1 zabbix]# zabbix_get -s 172.25.254.1 -p 10050 -k mysql.version
zabbix_get [4847]: Check access restrictions in Zabbix agent configuration

在這裏插入圖片描述
在這裏插入圖片描述

如何給被監控主機添加自己需要的帶有多數監控項的mysql模板

1.安裝percona-zabbix模版(將自帶的mariadb的監控項刪除)

獲得資源,查看環境(由於percona的監控腳本是使用php寫的,所以需要準備好php運行環境,)
在這裏插入圖片描述

[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

在這裏插入圖片描述
查看生成的對應文件
在這裏插入圖片描述
2.將配置文件發送到agent的目錄下(mysql服務器對應的主機上)

[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server1 templates]# cat /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf
#會發現也是基於key-value的取值方式
[root@server1 templates]# systemctl restart zabbix-agent

3.修改腳本php腳本內容(或者創建新的覆蓋內容)

[root@server1 scripts]# pwd
/var/lib/zabbix/percona/scripts
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php
[root@server1 scripts]# vim ss_get_mysql_stats.php
30 $mysql_user = 'root';
31 $mysql_pass = 'redhat';

測試:
執行腳本,會獲得返回值(此處爲0)
[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
0

對應會生成緩存文件(注意此時的執行身份)
在這裏插入圖片描述

[root@server1 tmp]# ll localhost-mysql_cacti_stats.txt 
-rw-r--r-- 1 root root 1350 May  3 22:39 localhost-mysql_cacti_stats.txt
##要刪除這個文件,因爲zabbix是以zabbix的用戶身份運行的,這個文件是root執行腳本產生的,有衝突
[root@server1 tmp]# rm -rf localhost-mysql_cacti_stats.txt

在瀏覽器web監控界面裏進行添加模板:(此時是外界資源模板,需要導入)
添加前是88個監控項

在這裏插入圖片描述
導入模板
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
添加模板
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

此時監控項變成279個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章