运用 Zabbix 构建企业大型监控系统——服务监控项的添加(httpd、nginx、mysql)

主机环境:rhel7.3 selinux and firewalld disabled

主机名 ip 服务
server1 172.25.254.1 zabbix
server2 172.25.254.2 agent、nginx

server1:server端
server2:agent(被监控端)

准备:
在server2上安装httpd,并启动

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# systemctl start httpd
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html 
www.westos.org
[root@server2 html]# curl localhost
www.westos.org

一、添加httpd的监控项

刚开始server2的监控项为34个
在这里插入图片描述

添加httpd监控项
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

将server2的httpd关闭
[root@server2 html]# systemctl stop httpd

二、添加nginx的监控项

nginx监控项zabbix没有,需要在agent端部署nginx服务

1.获得资源包、安装nginx
在这里插入图片描述
编译、安装

[root@server2 nginx-1.15.9]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
[root@server2 nginx-1.15.9]# make && make install

2.修改nginx的配置文件

[root@server2 conf]# pwd
/usr/local/nginx/conf
[root@server2 conf]# vim nginx.conf
 47         location /status {
 48                 stub_status on;
 49                 access_log off;
 50                 allow 127.0.0.1;
 51                 deny all;
 52         }
 [root@server2 conf]# ln -s /usr/local/nginx/sbin/nginx /sbin/
[root@server2 conf]# nginx -t
[root@server2 conf]# nginx
测试:

[root@server2 conf]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0

[root@server2 conf]# curl http://127.0.0.1/status | grep Active
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 97 100 97 0 0 163k 0 --:–:-- --:–:-- --:–:-- 97000
Active connections: 1

[root@server2 conf]# curl -s http://127.0.0.1/status | grep Active | awk ‘{print $3}’
1
在这里插入图片描述
3.创建nginx监控项(nginx.active和nginx.accept)

[root@server2 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server2 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf 
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf  userparameter_nginx.conf
[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}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent

4.在监控端server1安装zabbix-get,测试

[root@server1 ~]# yum install zabbix-get -y
[root@server1 ~]# zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.active"
1
[root@server1 ~]# zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.accept"
24

在这里插入图片描述

在web界面进行添加:
创建监控项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

给监控项添加图形
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

再继续添加:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

压侧agent

解决图中乱码字体

1.下载字体到/usr/share/zabbix/fonts目录下,替换字体
在这里插入图片描述

[root@server1 include]# pwd
/usr/share/zabbix/include
[root@server1 include]# vim defines.inc.php

在这里插入图片描述
再次刷新页面,显示的字体就不是乱码了,等待一会,就会有监控数据
在这里插入图片描述

三、添加mysql的监控项

1.添加自带的 mysql 的监控项(因为server1装有数据库所以监控server1)

在server的监控界面下此时监控项是88个:
在这里插入图片描述

添加自带的mysql监控项
在这里插入图片描述

添加成功后监控项会增加到102个
在这里插入图片描述

1.配置mysql

[root@server1 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server1 zabbix_agentd.d]# cat userparameter_mysql.conf	#会发现数据库两个选项的key-value

在这里插入图片描述
2.编写获取key-value时可以读取的规则

[root@server1 zabbix_agentd.d]# ll -d /var/lib/zabbix
ls: cannot access /var/lib/zabbix: No such file or directory
[root@server1 zabbix_agentd.d]# mkdir /var/lib/zabbix
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix/
[root@server1 zabbix]# vim .my.cnf
[mysql]
user = root
password = redhat

[mysqladmin]
user = root
password = redhat
[root@server1 zabbix]# systemctl restart zabbix-agent	#让agent可以重新读取配置文件

测试:
此时,没有返回值,但是是正常的,在浏览器下,可以看到出图了

[root@server1 zabbix]# zabbix_get -s 172.25.254.1 -p 10050 -k mysql.ping
zabbix_get [4798]: Check access restrictions in Zabbix agent configuration
[root@server1 zabbix]# zabbix_get -s 172.25.254.1 -p 10050 -k mysql.version
zabbix_get [4847]: Check access restrictions in Zabbix agent configuration

在这里插入图片描述
在这里插入图片描述

如何给被监控主机添加自己需要的带有多数监控项的mysql模板

1.安装percona-zabbix模版(将自带的mariadb的监控项删除)

获得资源,查看环境(由于percona的监控脚本是使用php写的,所以需要准备好php运行环境,)
在这里插入图片描述

[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

在这里插入图片描述
查看生成的对应文件
在这里插入图片描述
2.将配置文件发送到agent的目录下(mysql服务器对应的主机上)

[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server1 templates]# cat /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf
#会发现也是基于key-value的取值方式
[root@server1 templates]# systemctl restart zabbix-agent

3.修改脚本php脚本内容(或者创建新的覆盖内容)

[root@server1 scripts]# pwd
/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
30 $mysql_user = 'root';
31 $mysql_pass = 'redhat';

测试:
执行脚本,会获得返回值(此处为0)
[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
0

对应会生成缓存文件(注意此时的执行身份)
在这里插入图片描述

[root@server1 tmp]# ll localhost-mysql_cacti_stats.txt 
-rw-r--r-- 1 root root 1350 May  3 22:39 localhost-mysql_cacti_stats.txt
##要删除这个文件,因为zabbix是以zabbix的用户身份运行的,这个文件是root执行脚本产生的,有冲突
[root@server1 tmp]# rm -rf localhost-mysql_cacti_stats.txt

在浏览器web监控界面里进行添加模板:(此时是外界资源模板,需要导入)
添加前是88个监控项

在这里插入图片描述
导入模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时监控项变成279个

猜你喜欢

转载自blog.csdn.net/weixin_44209804/article/details/89677075