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

续我的上篇博文:https://mp.csdn.net/postedit/88538021

 

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

 

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

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# systemctl start httpd

2.在server2端添加http模块

点击选择,选择http模块

点击添加

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

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

 

前期准备:

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

[root@server2 ~]# systemctl stop httpd

配置server2:

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

<1>编译安装nginx

[root@server2 nginx-1.15.8]# yum install gcc -y
[root@server2 nginx-1.15.8]# yum install pcre-devel -y
[root@server2 nginx-1.15.8]# yum install zlib-devel -y

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

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

<2>配置nginx

[root@server2 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         }

<3>打开nginx服务

[root@server2 ~]# /usr/local/nginx/sbin/nginx -t    #监测nginx服务
[root@server2 ~]# /usr/local/nginx/sbin/nginx       #打开nginx服务

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

[root@server2 ~]# cd /etc/zabbix/zabbix_agentd.d/
[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}'    #提取链接数。其中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这个名字,可以随便起
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent

配置server1:

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

[root@server1 ~]# rpm -ivh zabbix-get-4.0.5-1.el7.x86_64.rpm

2.测试:

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

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

1.删除server2的http模块;

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

2.创建监控;

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

点击创建监控项

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

再次点击创建监控项

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

再次点击创建监控项

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

再次点击创建监控项

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

点击图形

点击创建图形

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

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

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

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

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


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

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

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

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

此时,再次预览图片

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

1.在server1端打开mariadb服务

[root@server1 ~]# systemctl start mariadb

 

2.在server1端添加DB  MySQL模块

[root@server1 ~]# mkdir /var/lib/zabbix/
[root@server1 ~]# cd /var/lib/zabbix/
[root@server1 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
[root@server1 zabbix]# systemctl restart zabbix-agent

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

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

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

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

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

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

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

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

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

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

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

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

3.##脚本的改动
[root@server1 ~]# cd /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.cnf
[root@server1 ~]# systemctl restart zabbix-agent

4.##测试:看脚本文件是否有错
[root@server1 ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
0            #没有报错,就表示正确
[root@server1 ~]# cd /tmp/
[root@server1 tmp]# cat localhost-mysql_cacti_stats.txt    #可以看到内容
[root@server1 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。这样,对后续的写入是有影响的,所以要将该文件删除
[root@server1 tmp]# rm -rf localhost-mysql_cacti_stats.txt  #执行脚本之后,会生成这个.txt文件,记得将其删除

2.浏览器导入模版:

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

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

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

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

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

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

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

测试:看是否能看到数据

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

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

猜你喜欢

转载自blog.csdn.net/qq_42303254/article/details/88541338
今日推荐