主機環境: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個