Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

一.zabbix实现对http的监控(这里针对的是server2)

 

1.在server2端安装并打开httpd服务

 

[[email protected] ~]# yum install httpd -y
[[email protected] ~]# systemctl start httpd

 

2.在server2端添加http模块

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击选择,选择http模块

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击添加

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击更新,得到最后的效果图

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

二.zabbix实现对nginx的监控(这里针对的是server2)

 

前期准备:

在server2端,停掉httpd服务,以供80端口给nginx服务用

[[email protected] ~]# systemctl stop httpd

 

配置server2:

 

1.在server2端编译安装nginx,配置nginx并打开nginx服务

 

<1>编译安装nginx

[[email protected] nginx-1.15.8]# yum install gcc -y
[[email protected] nginx-1.15.8]# yum install pcre-devel -y
[[email protected] nginx-1.15.8]# yum install zlib-devel -y

[[email protected] ~]# tar zxf nginx-1.15.8.tar.gz 
[[email protected] ~]# cd nginx-1.15.8
[[email protected] nginx-1.15.8]# vim auto/cc/gcc 
171 # debug
172 #CFLAGS="$CFLAGS -g"          #对172行加注释

[[email protected] nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module   #预编译,这里添加了http的监控模块
[[email protected] nginx-1.15.8]# make && make install   #编译并安装

 

<2>配置nginx

[[email protected] nginx-1.15.8]# vim /usr/local/nginx/conf/nginx.conf    #在文件的48-53行添加如下的内容
 48         location /status {
 49             stub_status on;
 50             access_log off;
 51             allow 127.0.0.1;     #添加访问控制,只允许本机访问
 52             deny all;
 53         }

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

<3>打开nginx服务

[[email protected] ~]# /usr/local/nginx/sbin/nginx -t    #监测nginx服务
[[email protected] ~]# /usr/local/nginx/sbin/nginx       #打开nginx服务

 

2.在server2端,编辑zabbix-agent对应的配置文件,并重启zabbix-agent服务

 

[[email protected] ~]# cd /etc/zabbix/zabbix_agentd.d/
[[email protected] zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'    #提取链接数。其中active这个名字,可以随便起
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'    #提取接收数。其中accept这个名字,可以随便起
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'    #提取处理数。其中accept这个名字,可以随便起
UserParameter=nginx.request,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'    #提取请求数。其中accept这个名字,可以随便起
[[email protected] zabbix_agentd.d]# systemctl restart zabbix-agent

 

配置server1:

 

1.在server1端安装软件zabbix-get-4.0.5-1.el7.x86_64.rpm,用来测试

 

[[email protected] ~]# rpm -ivh zabbix-get-4.0.5-1.el7.x86_64.rpm

 

2.测试:

[[email protected] ~]# zabbix_get -s 172.25.83.2 -p 10050 -k "nginx.active"   #测试是否可以获取到数据;如果有报错,请仔细检查文件内容;这里的nginx.active是文件对应的UserParameter的内容
1
[[email protected] ~]# zabbix_get -s 172.25.83.2 -p 10050 -k "nginx.accept"
37

 

如果测试没有问题,进行zabbix浏览器监控界面完成自定义添加监控项:

 

1.删除server2的http模块;

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击Template  App  HTTP Service后面的,取消链接并清理

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

2.创建监控;

 

点击配置——>主机——>server2——>监控项

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击创建监控项

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

填入,名称:nginx_active(这个名字是随意起的名字);键值:nginx.active(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

再次点击创建监控项

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

填入,名称:nginx_accpet(这个名字是随意起的名字);键值:nginx.accpet(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

再次点击创建监控项

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

填入,名称:nginx_handled(这个名字是随意起的名字);键值:nginx.handled(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

再次点击创建监控项

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

填入,名称:nginx_request(这个名字是随意起的名字);键值:nginx.request(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击图形

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击创建图形

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

填入,名称:nginx_status(这个名字是随意起的名字);添加两个监控项(nginx_active,nginx_accpet,nginx_handled和nginx_request)点击,最下方的添加,进入下一个界面。

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

3.在图形预览查看效果:

 

点击nginx_status,进入图形预览界面

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

我们发现汉字出现了乱码的现象。所以下面针对解决汉字乱码的问题

 

[[email protected] ~]# cd /usr/share/zabbix/fonts/
[[email protected] fonts]# ls
graphfont.ttf  simkai.ttf  #在网上下载字体对应的tty文件(比如simkai.tty),并将其拷贝的/usr/share/zabbix/fonts目录中


编辑字体对应的配置文件/usr/share/zabbix/include/defines.inc.php文件
[[email protected] fonts]# cd /usr/share/zabbix/include/
[[email protected] include]# vim defines.inc.php     
:%s/graphfont/simkai/g    #在末行模式下,输入该命令,将启动的字体graphfont替换为字体simkai

此时再次预览图形,可以看到汉字乱码的现象,已经得到解决

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

为了使实验效果更加明显,我们进行下面的操作

 

[[email protected] Desktop]# ab -c 100 -n 1000 http://172.25.83.2/index.html   #在物理机访问nginx服务(172.25.83.2主机上的index.html文件)
[[email protected] zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'1291     #此时在server2上可以通过命令查看到接收数剧增
[[email protected] zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'1310    #此时在server2上可以通过命令查看到处理数剧增
[[email protected] zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'1231     #此时在server2上可以通过命令查看到请求数剧增

 

此时,再次预览图片

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

三.zabbix实现对mysql数据库的监控(这里针对的是server1)

 

1.在server1端打开mariadb服务

 

[[email protected] ~]# systemctl start mariadb

 

2.在server1端添加DB  MySQL模块

 

[[email protected] ~]# mkdir /var/lib/zabbix/
[[email protected] ~]# cd /var/lib/zabbix/
[[email protected] zabbix]# vim .my.cnf 
[mysql]
host=localhost
user=root
password=root
socket=/var/lib/mysql/mysql.sock

[mysqladmin]
host=localhost
user=root
password=root
socket=/var/lib/mysql/mysql.sock
[[email protected] zabbix]# systemctl restart zabbix-agent

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击配置——>主机——>zabbix  server——>模板

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

在链接指示器,这一栏,点击选择,选择Template DB MySQL,点击,添加

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击更新,得到最后的效果图

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

测试:查看DB  MySQL模块对应的图形有没有数据,来确保该实验配置是否成功

 

点击配置——>主机——>zabbix  server——>图形——>MySQL bandwidth——>预览

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击配置——>主机——>zabbix  server——>图形——>MySQL operations——>预览

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

我们可以看到DB MySQL模板中的内容过于少,所以接下来,我们通过percona模板实现对mysql数据库的监控

 

四.zabbix通过pernoca模板,实现对mysql数据库的监控(这里针对的是server1)

 

逻辑:php脚本存储为文本文件,通过shell脚本进行相应的分析

 

1.首先,下载软件percona-zabbix-templates-1.1.8-1.noarch.rpm ;

1.##安装软件
[[email protected] ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm 
#安装完成之后,会在/var/lib/zabbix目录中生成percona目录

2.##拷贝配置文件到/etc/zabbix/zabbix_agentd.d目录下
[[email protected] ~]# cd /var/lib/zabbix/percona/templates/
[[email protected] templates]# ls
userparameter_percona_mysql.conf
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[[email protected] templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

3.##脚本的改动
[[email protected] ~]# cd /var/lib/zabbix/percona/scripts/
[[email protected] scripts]# ls
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php 
[[email protected] scripts]# vim ss_get_mysql_stats.php.cnf
[[email protected] ~]# systemctl restart zabbix-agent

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

4.##测试:看脚本文件是否有错
[[email protected] ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
0            #没有报错,就表示正确
[[email protected] ~]# cd /tmp/
[[email protected] tmp]# cat localhost-mysql_cacti_stats.txt    #可以看到内容
[[email protected] tmp]# ll localhost-mysql_cacti_stats.txt
-rw-r--r-- 1 root root 1336 Mar 14 11:01 localhost-mysql_cacti_stats.txt   #可以看到该文件的所属组和所属用户都是root,而不是zabbix。这样,对后续的写入是有影响的,所以要将该文件删除
[[email protected] tmp]# rm -rf localhost-mysql_cacti_stats.txt  #执行脚本之后,会生成这个.txt文件,记得将其删除

 

2.浏览器导入模版:

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击右上角的导入,进入下一个界面

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击Browse,选择要导入的模板(zbx_percona_mysql_template.xml)——该模板是之前在网上下载好的。

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点亮聚合图形的两个钩,点击导入。

如果看到导入成功,即成功;

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

在配置——>模板——>群组(Percona Templates)中,可以看到刚刚导入的percona模板

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

配置——>主机——>Zabbix server——>模板,清除原来的mysql的模版,添加 percona MYSQL 模版;

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击更新,可以看到Zabbix  server的监控项增多;

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

测试:看是否能看到数据

 

点击配置——>主机——>Zabbix  server——>监控项——>Binary Log Space,可以看到,其更新间隔为300s(5分钟)

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

 

点击配置——>主机——>Zabbix  server——>图形——>MySQL Processlist——>预览,可以看到图形(当然也可以选择其他的图形进行查看)

 

Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)