欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

zabbix监控系统下——zabbix实现数据库监控、对JMX的支持、server和agent的关系、zabbix监控报警平台

时间:2023-05-20

目录

五、zabbix实现数据库监控

1、在agent端设置

2、在浏览器前端设置 

六、zabbix对JMX(Java)应用的支持

七、server和agent的关系

1、agent端的信息采集变被动为主动

2、zabbix的server端的分布式架构——zabbix代理

第一步:参考官网文档

 第二步:引入代理机制的概念

 第三步:实验环境

第四步:安装软件包

第五步:安装并配置proxy

第六步:在agent端配置(server8上)

 八、zabbix的监控报警

1、实验环境:先注册一个可以实现微信报警功能的帐号

2、zabbix报警平台的使用

3、配置zabbix_server

4、在浏览器中查看

5、在云报警平台上的配置

6、模拟问题


 一般提供的模板都中都有自带的插件,没有的话可以导入第三方插件,再没有就自己编译插件。

五、zabbix实现数据库监控

1、在agent端设置

第一步:实验环境

在zabbix服务端(server6)中安装监控mysql的zabbix插件。其实测试时应该是在agent端安装,但是server6上已经有了mysql了,所以直接在本机上安装监控插件。换言之,server6既是mysql客户端,也是zabbix的agent端;同时也是zabbix的server端。自己监控自己!!!

第二步:复制模板到目录下,因为此目录中的配置文件模板可以用来直接作为监控项。复制完成后重启zabbix-agent服务使其生效。

systemctl restart zabbix-agent.service #重启zabbix-agent服务

以下图为例:

 第三步:执行脚本和php文件

 具体操作步骤为:(1)zabbix的监控配置文件中的监控命令,调用的是(2)目录中的shell脚本,(3)脚本中调用的是同一目录下的 文件。php文件中获取到数据库的基本信息后,返回给shell脚本,zabbix监控配置目录中调用脚本得到要监控的参数。

修改 php文件中访问数据库的帐号和密码。

vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php 30 $mysql_user = 'root'; 31 $mysql_pass = 'Westos+007';

第四步:执行脚本测试

直接执行的话,报错,因为找不到执行路径下的php环境变量。

 通过以下方式解决:

rpm -qa| grep phprpm -ql rh-php72-php-cli-7.2.24-1.el7.x86_64 ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php #在所需路径中创建软链接which php

脚本执行结果如下图,执行成功后,会将获取到的参数存放在文件中。

/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg #执行脚本

注意:以root用户身份执行脚本后,生成的“.log”文件的所有人也是root。在浏览器端应该使用zabbix用户身份运行,之前产生的文件将导致zabbix身份运行的结果无法操作。因此在正式执行前应先将该文件删除,以防对后续操作产生影响。 

2、在浏览器前端设置 

操作步骤如下:

这里导入一个模板文件

 

添加完成后查看server6主机,监控mysql的模板已添加。

模板添加完成后,令其在图形中显示:

这里所有关于“MySQL”的参数,都是刚才的模板创建的。

选择几个参数,查看图形统计效果:

 

 所有采集信息的模板文件都是在中的“***.conf”文件。

六、zabbix对JMX(Java)应用的支持

实验环境:在server8中测试zabbix对java插件的支持。

1、下载安装tomcat

第一步:下载并移动到指定目录下

tar zxf apache-tomcat-8.5.24.tar.gz #解压tomcatyum install -y java-1.8.0-openjdk #安装支持java的软件openjdk

移动tomcat目录到下,方便编译。

更改配置文件参考tomcat官网:

Apache Tomcat® - Apache Tomcat 8 Software Downloadshttps://tomcat.apache.org/download-80.cgi

第二步:更改配置文件:

vim /usr/local/tomcat/bin/catalina.sh #编辑文件内容如下 109 CATALINA_OPTS=-'Dcom.sun.management.jmxremote.port=8888 110 -Dcom.sun.management.jmxremote.ssl=false 111 -Dcom.sun.management.jmxremote.authenticate=false'

第三步:启动tomcat

启动完以后,查看端口出现上一步设置的8888。这个端口是上一步手动设置的监控端口,其他端口为tomcat调用的端口。

第四步:在zabbix的server服务器(server6)中安装zabbix-java插件

这个插件是zabbix监控java应用的组件,所有的java应用必须通过这个java网关

yum install -y zabbix-java-gateway #安装插件来监控java网关systemctl enable --now zabbix-java-gateway.service #设置zabbix-java开机自启动netstat -antlp |grep 10052 #检查端口10052,证明启动成功

第五步:编辑zabbix-java的server端

编辑zabbix-server端的配置文件,告诉zabbix怎么去调用java-gateway

vim /etc/zabbix/zabbix_server.conf #编辑zabbix-server的配置文件 297 JavaGateway=172.25.254.6 305 JavaGatewayPort=10052 313 StartJavaPollers=5systemctl restart zabbix-server.service #重启zabbix-server服务

其中配置文件更改内容如下:分别表示java网关为<172.25.254.6>;监听端口为10052端口;线程数为5个(和上图所示一致)。

第六步:在浏览器前端设置

 以下两个模板都可以,一般来说选择“通用模板”,监控的参数更多

添加完成后,刷新。“server8”的“JMX”已经亮了,证明JMX可以正常使用。

具体的执行流程是:zabbix-server——>java-gateway:10052——>jmx:8888——>tomcat 

第六步:通过图形可视化

通过浏览器访问,增加8080端口的访问量 

 在统计界面可以监视到,已经有访问量进来。

 七、server和agent的关系

对agent来说,它的主动模式和被动模式都是支持的。agent的模式由server端决定,主动被动主要取决于server端给agent端加的什么模板。

1、agent端的信息采集变被动为主动

下图所示,agent端通过这些端口被server端监听。那么是否可以让agent端主动将数据传到server端?随着agent端的增多,每个agent端又有许多监控项,那么如果让server端主动去监控agent端的话,agent端的压力会很大;所以需要让agent主动将自己的数据发送给server端。

以agent端(server7)为例:

取消server上的模板:

 

选择完成后,看到主机页面已经切换到“agent active”模板,表示agent主动将数据回传给server端。

随便选一个监控项,这里显示此监控项已经成为了“主动式”的。

 查看图形统计,也可以统计出来。

2、zabbix的server端的分布式架构——zabbix代理

因为即使agent端主动向server端发送采集的信息,在agent节点过多时,对server端的压力还是会很大。因此就需要对serber端进行水平扩容,以提高其处理数据峰值的能力。

第一步:参考官网文档

1 代理https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring/proxies

 第二步:引入代理机制的概念

Zabbix proxy 使用场景:

监控远程区域设备;
监控本地网络不稳定区域;
监控上千设备时,减轻 zabbix server 的负荷;
简化分布式监控的维护。

proxy的功能只有数据采集,无法用来做事件处理。

 第三步:实验环境

从zabbix监控界面将server7移除,将server7设置为zabbix_proxy。

第四步:安装软件包

yum install -y zabbix-proxy #安装软件包systemctl disable --now zabbix-agent.service #关闭zabbix-agent并禁止自启动

第五步:安装并配置proxy

1 Red Hat Enterprise Linux/CentOShttps://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_packages/rhel_centos在server6中为zabbix-proxy配置数据库:

由于zabbix是分布式的,所以数据库可以在其他主机配置。这里选用server6中的数据库。

mysql> create database zabbix_proxy character set utf8 collate utf8_bin; #创建数据库mysql> grant all on zabbix_proxy.* to zabbix@'%' identified by 'Westos+007'; #授权用户访问mysql> flush privileges; #刷新授权表

更改server7中的zabbix_proxy配置:

vim /etc/zabbix/zabbix_proxy.conf 30 Server=172.25.254.6 49 Hostname=server7 162 DBHost=172.25.254.6 173 DBName=zabbix_proxy 196 DBPassword=Westos+007

 向server6数据库中导入proxy的数据(proxy主机只需要安装mysql的客户端即可):

proxy主机上的文件为,将其导入到server6中的数据库中。

cd /usr/share/doc/zabbix-proxy-mysql-5.0.19 #进入目录zcat schema.sql.gz | mysql -h 172.25.254.6 -uzabbix -pWestos+007 zabbix_proxy #导入该目录下的数据库到172.25.254.6

在server6的数据库中查看,proxy的数据已导入到数据库中。

 在server7中启动zabbix-proxy:

systemctl start zabbix-proxy.service #启动zabbix-proxy

启动完成后查看进程,可以看到进程都已启用。注意:如果这一步启动失败,很可能是数据库问题

查看zabbix_proxy的日志,发现proxy服务找不到“server7”对应的主机。

cat /var/log/zabbix/zabbix_proxy.log #查看zabbix_proxy的日志

为了解决上述问题,因此需要在浏览器中做以下更改:

zabbix_server -R config_cache_reload #刷新zabbix_server端的配置缓存

 再次查看日志,可以看到proxy端的服务已经成功启动

 查看server6(zabbix_server)端的日志,显示代理已成功发送数据 

第六步:在agent端配置(server8上)

更改server8中的配置文件,令其指向的master成为proxy服务器 。 更改完成后重启zabbix-agent服务。

vim /etc/zabbix/zabbix_agentd.conf #更改agent端的配置文件 117 Server=172.25.254.7 #改成proxy的地址 158 ServerActive=172.25.254.7systemctl restart zabbix-agent.service #重启zabbix-agent服务

在proxy端中查看端口:

测试:在浏览器中查看

可以看到agent端可以正常使用,但是其中的JMX服务失效了。 这是因为agent端的java应用需要通过“java-geteway”访问,原本的zabbix_server中安装了JMX服务,可以访问agent的java;但是proxy端并没有设置”java-gateway“的端口,因此proxy要采集angent端的java信息的话,必须设置“java-gateway”端口。

修正方法:在proxy中添加“java-gateway”

vim /etc/zabbix/zabbix_proxy.conf #编辑zabbix-proxy的配置文件 338 JavaGateway=172.25.254.6 346 JavaGatewayPort=10052 354 StartJavaPollers=5grep -v ^# /etc/zabbix/zabbix_proxy.conf | uniqsystemctl restart zabbix-proxy.service #重启zabbix-proxy服务

 

 配置更改完成后,重启“zabbix-proxy.service”服务,在浏览器中已看到JMX已经连接上。

 八、zabbix的监控报警

1、实验环境:先注册一个可以实现微信报警功能的帐号

睿象云-AIOps智能运维平台 | 用人工智能点亮传统IT运维睿象云AIOps智能运维平台方案提供商,为传统IT运维插上人工智能的翅膀,云监控平台、云压测平台、业务可用性监测平台、云告警平台,为IT运维人员提供一站式AIOps 可视化智能运维解决方案,用人工智能点亮传统运维。https://www.aiops.com/

2、zabbix报警平台的使用

 

 

3、配置zabbix_server

wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-4.0.0.tar.gz #获取Cloud alert Agent包:tar zxf ca_zabbix_release-4.0.0.tar.gz -C /usr/lib/zabbix/alertscripts #解压到zabbix脚本目录

进入到刚解压的目录下,执行脚本。并输入上一步中获得到的“Appkey",接着输入要报警的zabbix地址,以及登录zabbix时设置的用户名和密码。

cd /usr/lib/zabbix/alertscripts/cloudalert/bin/ #进入zabbix脚本目录./install.sh 933177f39ca247c59fe2f76d8db18848 #执行启动脚本,并注册认证用户 请输入Zabbix管理地址:http://172.25.254.6/zabbix Check connection success! 请输入Zabbix管理员账号:Admin 请输入Zabbix管理员密码: zabbix

 更改zabbix脚本的权限:

chown zabbix.zabbix cloudalert/ -R

4、在浏览器中查看

列表中出现了许多类型的报警信息。为了方便测试,我们仅测试一项报警信息。

其他项目中也出现了“云平台”的信息。

这里是具体的执行动作: ​​

5、在云报警平台上的配置

新增通知策略: 

 

6、模拟问题

关掉server8上的agent。

systemctl stop zabbix-agent.service

 在浏览器中查看,server8已经“失联”了。

 查看“监测栏“的“问题”选项,故障信息已经出现,并且报警信息也发送到报警平台上。

查看云平台的服务日志:

cat /usr/lib/zabbix/alertscripts/cloudalert/logs/cloudalert.log #显示云平台报警信息日志

在平台和微信上都能看到相应的通知: 

 

 server8中重新启动zabbix-agent服务,监测窗口显示”已解决“ ,云平台上也显示问题已解决。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。