一.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——>预览,可以看到图形(当然也可以选择其他的图形进行查看)