一.添加http服务监控项
http是zabbix自带的监控模板
依次进行选择:配置->主机->server2->模板->链接指示器->Template App HTTP Service->添加->更新
最后再次点击主机时,会发现此时的server2中显示监控项模板中有Template App HTTP Service
二.监控nginx服务
因为server中有http,所以这里要在server3中重新搭建一个nginx
原理:user->webui->zabbix-agent->shell->zabbix-server->mysql->web
(一)配置nginx
1.在server3上配置nginx
[root@server3 ~]# ls
[root@server3 ~]# tar zxf nginx-1.16.0.tar.gz
[root@server3 ~]# cd nginx-1.16.0
[root@server3 nginx-1.16.0]# vim auto/cc/gcc
[root@server3 nginx-1.16.0]# yum install pcre-devel gcc zlib-devel -y
[root@server3 nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
[root@server3 nginx-1.16.0]# make && make install
2.编辑nginx配置文件,检测是否有错,如果没有报错,开启nginx服务
[root@server3 nginx-1.16.0]# cd /usr/local/nginx/conf/
[root@server3 conf]# vim nginx.conf
[root@server3 conf]# ../sbin/nginx -t
[root@server3 conf]# ../sbin/nginx
47 location /status {
48 stub_status on; #此模块主要用于查看nginx的一些状态信息
49 access_log off; #关闭日志记录
50 allow 127.0.0.1; #只允许本机访问
51 deny all;
52 }
[root@server3 conf]# curl 172.25.66.3
(二)监控连接数
1.访问http://127.0.0.1/status,会发现此时连接数等较小,此时需要再次访问本机即可增加连接数等(可以通过查看连接数,也可以通过直接访问ip)
[root@server3 conf]# curl http://127.0.0.1/status
#增加1
[root@server3 conf]# curl 127.0.0.1
#增加1
[root@server3 conf]# curl http://127.0.0.1/status
注意:
(1)此处查看连接数时不可以输入127.25.66.3,即本机的ip
(2)访问时显示活跃连接数1个,server接收请求数,保持的主机数(获取建立三次握手的次数),请求次数
2.为了可以大幅度增加访问请求数等,我们需要利用ab命令增加
#下载httpd的主要原因是要时用命令ab
[root@server3 conf]# yum install httpd -y
[root@server3 conf]# curl http://127.0.0.1/status
3.利用查看连接数并将其放至userparameter_nginx.conf文件下
[root@server3 conf]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
[root@server3 conf]# cd /etc/zabbix/zabbix_agentd.d/
[root@server3 zabbix_agentd.d]# vim userparameter_mysql.conf
[root@server3 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# cat userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent
文件userparameter_nginx.conf下的内容如下:
#获取连接数(nginx.active为key值,获得的连接数为value值)
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
注意:
此时的键值一定要注意,因为后面会用
4.在server1中安装安装包(此安装包用于server端到agent端获取数据)
[root@server1 ~]# ls
[root@server1 ~]# cd 4.0/
[root@server1 4.0]# yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm
#查看server1是否可以成功获取server3的连接数
[root@server1 4.0]# zabbix_get -s 172.25.66.3 -p 10050 -k "nginx.active"
5.在浏览器中选择访问http://172.25.66.3/,发现可以成功显示页面(无论刷新多少次,连接数都不会再次增加)
6.再次在server1中查看server3的连接数,发现变为2了,说明连接成功
[root@server1 4.0]# zabbix_get -s 172.25.66.3 -p 10050 -k "nginx.active"
注意:
此处忘了使用ab命令,但是不影响实验结果,所以在这里补充添加并查看(但是后期查看请求数需要,还是得做,不然效果不明显)
[root@server3 zabbix_agentd.d]# ab -c 1 -n 1000 http://127.0.0.1/status
[root@server3 zabbix_agentd.d]# curl http://127.0.0.1/status
[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent
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}'
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'
UserParameter=nginx.requests,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'
[root@server1 fonts]# zabbix_get -s 172.25.27.3 -p 10050 -k "nginx.accept"
[root@server1 fonts]# zabbix_get -s 172.25.27.3 -p 10050 -k "nginx.handled"
[root@server1 fonts]# zabbix_get -s 172.25.27.3 -p 10050 -k "nginx.requests"
注意:
如果出现以下报错,说明在server3没有重新启动zabbix-agent服务,ZBX_NOTSUPPORTED: Unsupported item key.
3.在浏览器中进行以下操作,实现可以通过监控查看请求数
注意:
如果要监控别的数据,按照以上步骤做即可
(四)改变字体
我们会发现此时在图中查看字体是乱码的,所以需要进行修改(字体没有是因为字符集的问题,在windows中下载wps,拷出来一份文件,放到其下)
1.下载我们喜欢的字体到/usr/share/zabbix/fonts目录下
[root@server1 ~]# cd /usr/share/zabbix/fonts
[root@server1 fonts]# ls
[root@server1 fonts]# cd ../include/
[root@server1 include]# vim defines.inc.php
配置文件的内容如下(将之前的默认字体graphfont更改层simkai):
65 define('ZBX_GRAPH_FONT_NAME', 'simkai'); // fo nt file name
110 define('ZBX_FONT_NAME', 'simkai');
3.测试:在浏览器中刷新页面,会看到显示的数字不是乱码了,而是你下载的字体的格式
(一)在浏览器中添加mysql自带的监控模块,并尝试查看,此时发现没有数据(主机查看监控数)
点击模板->链接指示器中的选择->群组(选择Templates/Databases)->Template DB MYSQL
主机更新后,会看到zabbix server中的监控项变为102个,而且模板中也有Template DB MYSQL,然后点击server3
访问数据库,使在页面中有数据显示
[root@server1 tmp]# mysql -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
MariaDB [zabbix]> select * from users;
(二)但是自带的模块监控项太少了,所以我们将通过添加模块增加监控项
向zabbix监控中导入模块监控mysql的模板percona(开源的mysql分析工具)
1.配置mysql
[root@server1 ~]# mkdir /var/lib/zabbix
[root@server1 ~]# cd /var/lib/zabbix
[root@server1 zabbix]# vim .my.cnf
[root@server1 zabbix]# ls -a
[root@server1 zabbix]# systemctl restart zabbix-agent
[mysql]
host=localhost
user=root
password=redhat
socket=/var/lib/mysql/mysql.sock
[mysqladmin]
host=localhost
user=root
password=redhat
socket=/var/lib/mysql/mysql.sock
2.安装percona-zabbix模板并编辑配置文件
[root@server1 ~]# ls
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@server1 ~]# cd /var/lib/zabbix/
[root@server1 zabbix]# cd percona/
[root@server1 percona]# cd templates/
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d
[root@server1 templates]# cd ..
[root@server1 percona]# cd scripts/
[root@server1 scripts]# ls
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
#检测mysql是否存活,1则表示存活,0则表示没有存活
[root@server1 ~]# mysqladmin -uzabbix -predhat -h 127.0.0.1 ping | grep -c active
配置文件ss_get_mysql_stats.php.cnf 中的内容如下:
[root@server1 scripts]# systemctl restart zabbix-agent
[root@server1 scripts]# cd /etc/zabbix/zabbix_agentd.d
#测试脚本是否可以正确执行
[root@server1 zabbix_agentd.d]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
[root@server1 zabbix_agentd.d]# cd /tmp
#查看监控项
[root@server1 tmp]# cat localhost-mysql_cacti_stats.txt
[root@server1 tmp]# rm -rf localhost-mysql_cacti_stats.txt