通过Zabbix分布式监控平台添加服务监控选项(http,nginx,mysql)
一.添加http服务监控项
#http是zabbix自带的监控模板
我是给server2上添加的(依次进行选择:配置->主机->server2->模板->链接指示器->Template App HTTP Service->添加->更新)
最后再次点击主机时,会发现此时的server2中显示监控项模板中有Template App HTTP Service
二.监控nginx服务
在server3中搭建一个nginx服务
(一)配置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
在auto/cc/gcc里注释掉nginx的debug日志
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 }
3.测试(证明nginx配置成功,会显示默认发布页):
[root@server3 conf]# curl 172.25.15.3
(二)监控连接数
1.访问http://127.0.0.1/status,会发现此时连接数等较小,此时需要再次访问本机即可增加连接数等(可以通过查看连接数,也可以通过直接访问ip)
[root@server3 conf]# curl http://127.0.0.1/status
[root@server3 conf]# curl 127.0.0.1
[root@server3 conf]# curl http://127.0.0.1/status
注意:
(1)此处查看连接数时不可以输入127.25.15.3,即本机的ip
(2)访问时显示活跃连接数1个,server接收请求数,保持的主机数(获取建立三次握手的次数),请求次数
我们如何单独过滤出活跃连接数呢?
这里可以用到我们之前学过的三剑客
[root@server3 conf]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
也可以把它写到userparameter_nginx.conf里,通过zabbix来监控它的活跃连接数
[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}'
注意:
此时的键值很重要(nginx.active),后面会用到
4.通过server1获得server3的连接数
在server3中下载httpd
[root@server3 conf]# yum install httpd -y
我的是已经安装过了
在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"
在浏览器中选择访问http://172.25.15.3/,发现可以成功显示页面
再次在server1中查看server3的连接数,发现变为2了,说明连接成功
[root@server1 4.0]# zabbix_get -s 172.25.15.3 -p 10050 -k "nginx.active"
在浏览器中进行以下操作,实现可以通过监控查看活跃连接数
点击配置->主机->server3
点击监控项->创建监控项
在监控项中填写名称为nginxz-status,并填写正确的键值,之后点击添加
点击添加之后,会显示监控项已成功添加
添加图形
点击配置->主机->server3
点击图形->创建图形
填写部分信息后,选择之前的建立的监控项nginxz_status
添加完成后,显示图形已添加,点击页面中的nginx_access
选择预览,会发现显示以下界面
因为要添加图形,所以我们需要设置字体,不然显示出来的都是乱码
设置字体
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):
通过s/graphfont/simkai/g来更改
此处效果不明显,要使用ab命令,大量访问,这里补充添加并查看
root@server3 zabbix_agentd.d]# curl http://127.0.0.1/status
(三)监控请求数,三次握手数,请求回应数
1.在server3编辑配置文件
[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}'
在sever1中获取server3中的数据
注意:
如果出现以下报错,说明在server3没有重新启动zabbix-agent服务,ZBX_NOTSUPPORTED: Unsupported item key.
在浏览器中进行以下操作,实现通过监控查看请求数
点击配置->主机->server3
点击监控项->创建监控项
在监控项中填写名称为nginx_accept,并填写正确的键值,之后点击添加
点击添加之后,会显示监控项已成功添加
点击配置->主机->server3->图形->创建图形
填写部分信息后,选择之前的建立的监控项nginx_accept
添加完成后,显示图形已添加,点击页面中的nginx_accept
选择预览,会检测到请求情况的绘图
这里陡坡的产生原因是用ab请求,一次增加了很多请求量
当然也可以检测三次握手次数,请求回应次数(配置文件里都写了)
监控zabbix server上的mysql服务
(一)在浏览器中添加mysql自带的监控模块,并尝试查看,此时发现没有数据(主机查看监控数)
点击配置->主机->zabbix server
点击模板->链接指示器中的选择->群组(选择Templates/Databases)->Template DB MYSQL
添加完模板后,点击更新
主机更新后,会看到zabbix server中的监控项变为102个,而且模板中也有Template DB MYSQL,然后点击server3
点击图形->群组(选择Templates/Databases)->名称MySQL bandwidth
点击预览,发现此时是正在监控MYSQL的带宽,但是没有任何数据,这是因为没有访问数据库
访问数据库,使在页面中有数据显示
[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
[root@server1 scripts]# systemctl restart zabbix-agent
配置文件ss_get_mysql_stats.php.cnf 中的内容如下:
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';
查看端口
3.测试percona的脚本并过滤监控项
[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
在浏览器中进行以下操作
- 点击配置->模板->选择链接的模板->导入
将xml文件导入并选择聚合图形(不选聚合图形不会显示在同一个界面中,不方便)
导入成功后会显示以下界面
点击配置->主机->Zabbix server
点击模板,将Templates/Databases取消链接,因为要导入新的mysql模块,所以一定要将旧的取消链接
选择群组为Percona Templates中的Template Percona MySQL Server
将模块添加成功后,会显示以下的结果,在最后点击更新
更新后的页面如下,此时查看监控项发现是293个,且模块中也有新添加的模块
点击Zabbix server后出现以下界面,发现此时有很多mysql模块
点进去看有数据的话说明zabbix对mysql监控成功