成熟企业级开源监控解决方案Zabbix6.2关键功能实战-下
@
实战
Zabbix server源码安装使用示例
部署
# 下载zabbix的源码包
wget https://github.com/zabbix/zabbix/archive/refs/tags/6.2.4.tar.gz
# 解压下载好的zabbix源安装包
mkdir /usr/local/zabbix
tar -zxvf zabbix-6.2.4.tar.gz -C /usr/local/zabbix/
# 为编译安装依赖
yum -y install net-snmp-devel libevent-devel mysql-devel libxml2-devel curl-devel gcc gcc-c++ pcre-devel OpenIPMI-devel
cd /usr/local/zabbix/zabbix-6.2.4
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
make install
配置
mysql就使用前面部署好的容器zabbix-docker-624_mysql-server_1,通过docker inspect zabbix-docker-624_mysql-server_1找到"IPAddress": "172.16.239.2"
vi /usr/local/zabbix/etc/zabbix_server.conf
DBHost=172.16.239.2 ---数据库本机
DBName=zabbix ---数据库库名
DBUser=zabbix ---数据库账号
DBPassword=zabbix ---数据库密码
DBSocket=/var/lib/mysql/mysql.sock ---指定sock路径
ListenPort=10051 ---服务端监听端口
ListenIP=0.0.0.0 ---监听IP范围
# 停掉基于容器的zabbix-agent和zabbix-server
docker stop zabbix-agent1
docker stop zabbix-docker-624_zabbix-server_1
# 复制启动配置
cp /usr/local/zabbix/zabbix-6.2.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/
# 修改BASEDIR
vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix
# 启动zabbix-server
service zabbix_server start
由于前面是容器启动修改主机Zabbix server,这里修改为本机127.0.0.1地址,
vi /usr/local/zabbix/etc/zabbix_agentd.conf ,下面这三项保持默认设置即可
Server=127.0.0.1 ---填写server端IP,server链接agent获取数据
ServerActive=127.0.0.1 ---填写server端IP,agent主动提交数据
Hostname=Zabbix server ---给agent设定一个名字,默认为Zabbix server
# 复制服务配置
cp /usr/local/zabbix/zabbix-6.2.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
# 启动服务
service zabbix_agentd start
查看zabbix-server和zabbix-agent的进程信息和监听端口
等待一小段时间后查看web的主机信息Zabbix server已为可用状态
Zabbix agent2使用示例
部署
部署Agent和Agent2使用rpm安装是比较方便的
# 安装Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
yum clean all
# 安装Zabbix agent2
yum install zabbix-agent2 zabbix-agent2-plugin-*
编辑zabbix-agent2的配置文件 vi /etc/zabbix/zabbix_agent2.conf
# 被动检查相关配置,允许zabbix-server的IP到当前服务器上获取数据,可以写多个IP
Server=192.168.50.95
# Option: Hostname ,区分大小写且在zabbix server唯一的值
Hostname=agent2-host1
# Server和ServerActive都是zabbix_server端的ip
ServerActive=192.168.50.95
启动zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -ntulp |grep 10050
配置
- 创建名称为agent-group的主机组
- 创建名称为agent2-host1的主机,选择模板群组Templates下的Linux by Zabbix agent模板,添加Agent
等待一小段时间后查看web的主机信息agent2-host1已为可用状态
Zabbix proxy使用示例
部署
# 安装Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
yum clean all
# 安装zabbix-proxy
yum install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
在数据库主机上运行以下代码。
# mysql -uroot -ppassword
mysql> create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy
mysql> set global log_bin_trust_function_creators = 0;
配置
编辑配置文件 vim /etc/zabbix/zabbix_proxy.conf
# 0 - proxy in the active mode主动,1 - proxy in the passive mode被动
ProxyMode=0
#填写zabbix-server所在服务器IP
Server=192.168.5.95
Hostname=Zabbix proxy
DBHost=192.168.5.52
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
#更新配置文件频率
ConfigFrequency=300
# 启动zabbix-proxy
systemctl start zabbix-proxy
通过Zabbix的web的管理-Proxy中创建Proxy,名称为hostname一致也即是Zabbix proxy,默认主动模式
也可以选择被动模式
部署、配置和启动另外一台Agent,主机名称为agent2-host2
# 配置为zabbix proxy的地址
Server=192.168.5.52
# Option: Hostname ,区分大小写且在zabbix server唯一的值
Hostname=agent2-host2
# 配置为zabbix proxy的地址
ServerActive=192.168.5.52
yum install -y zabbix-get后通过zabbix_get -s 192.168.5.53 -p 10050 -k vm.memory.size[available]验证获取监控项可用
通过Zabbix的web的配置-主机,创建新的主机,并选择由agent程序监测中上面新创建的Zabbix proxy,点击添加按钮
过一会查看配置-主机可以看到agent2-host2主机通过Zabbix proxy上报到Zabbix server,实现分布式监控(主动模式)
自定义监控使用示例
如果模板没有我们需要的监控项,可以使用自定义监控来实现。自定义监控流程如下:
客户端
- 通过命令、脚本取出对应的值。
# 本机81端口是否存在,>0则存在
ss -lntup | grep -w 81 | wc -l
- 根据Zabbix的要求格式书写配置文件,创建键值。
# 在zabbix_agent的配置文件中/etc/zabbix/zabbix_agent2.conf可以看到Include的配置项
Include=/etc/zabbix/zabbix_agent2.d/*.conf
# 在/etc/zabbix/zabbix_agent2.d/目录下创建web.conf的文件,UserParameter=key,cmd,key为键值,建议采用x.y.z格式,cmd可以为命令或者脚本,脚本如sh /home/a.sh
vim /etc/zabbix/zabbix_agent2.d/web.conf
UserParameter=nginx.port_count,ss -lntup | grep -w 81 | wc -l
- 重启客户端测试键值是否可用。
# 重启zabbix-agent2
systemctl restart zabbix-agent2
# 通过客户端查配置,nginx.port_count值为1
zabbix_agent2 -t nginx.port_count
# 杀死nginx
pkill nginx
# 再次客户端查配置,nginx.port_count值为0
zabbix_agent2 -t nginx.port_count
服务端
- 测试键值是否
# 重新启动nginx
systemctl start nginx
# 在zabbix server端执行,成功取得客户端的监控项值
zabbix_get -s 192.168.5.98 -p 10050 -k nginx.port_count
- web页面键值与监控项关联并测试,在配置-主机中,找到刚才的部署自定义监控的客户端的主机,点击监控项进入后创建监控项,输入键值,可以
在监测-最新数据,找到主机后查看监控项最新值为当前正确的值
触发器使用示例
点击配置-主机,找到上面创建主机名称为agent2-host1,点击触发器,然后通过右上方的创建触发器,输入名称、添加问题表现形和恢复表达式
点击添加按钮,回到触发器列表,通过名称点击"应用"按钮查询到刚才添加的触发器信息
通过杀死主机agent2-host1上的nginx进程(pkill nginx),过一会查看监测-仪表盘中的当前问题可以看到触发了问题结果。
重启启动nginx过一小会后,在仪表盘的当前问题就消失了,而在监测-问题中的最近的问题和历史记录可以看到问题已经触发恢复表达式状态自动变为为“已解决”,且刚恢复几分钟内zabbix还是非常比较人性化将“已解决”状态字眼呈现一闪一闪更为生动。
图形使用示例
配置-主机,找到上面创建主机名称为agent2-host1,点击图形,右上角点击添加图形按钮,输入图形名称和监控项图形设置
可以点击预览查看图形
模板使用示例
- 创建模板,在配置-模板中添加模板,点击添加
- 添加自定义监控项
从对应主机找到所需的监控项,勾选监控项后点击复制按钮,
选择目标类型为模板,模板名称为刚创建的web template,点击复制
- 添加触发器
触发器和上面的监控项一样通过复制的方式操作
- 添加图形
图形和上面的监控项一样通过复制的方式操作
通过上面的添加监控项、触发器、图形后后查看模板已有对应的信息
- 模板关联主机
在主机列表中勾选需要绑定模板的主机,查看当前监控项、触发器、图形的数量
点击“批量更新”按钮,勾选模板连接,选择上面创建模板web template,点击更新按钮
在主机列表中可以看到监控项、触发器、图形的数量都增加了一个
将自定义监控使用示例中创建的/etc/zabbix/zabbix_agent2.d/web.conf分发到agent2-host2上,重启agent2-host2的zabbix-agent2
由于agent2-host2上面没有nginx服务,所以查看监测-仪表盘中当前问题可以看到agent2-host2主机触发了,验证模板已绑定到主机的流程
SNMP监控使用示例
# 这里先linux开启SNMP做例子,但后续SNMP更多在交互机、路由器使用
yum install net-snmp net-snmp-utils -y
# 修改配置文件,添加一个采集项.1,意味着可以采集到所有mib tree的信息,
vim /etc/snmp/snmpd.conf
view all included .1
# 被监控端开启snmp服务
systemctl start snmpd
# 监控端开启的服务(如果允许被监控端启动主动监控时启用)
systemctl start snmptrapd
# snmpget测试
snmpget -v 2c -c public 192.168.5.98 sysName.0
# snmpwalk测试
snmpwalk -v 2c -c public 192.168.5.98 sysName.0
snmpwalk -v 2c -c public 192.168.5.98 .1.3.6.1.2.1.1.1
在配置-主机中找到agent2-host1(192.168.5.98),点击修改模板为linux snmp模板和添加snmp接口,点击更新按钮
等待一小段时间后,还可以再主机的宏添加变量{$SNMP_COMMUNITY}为public的值,主机的snmp服务监控已变为“可用状态”
自动发现使用示例
自动发现为服务端主动扫描局域网内所有的机器有则添加,配置简单方便,效率不高。
- 配置自动发现规则
先勾选前面页面创建的主机,点击删除将原来主机信息删除掉
配置-自动发现配置发现规则,先选择没有agent代理程序,IP范围,添加检查类型,最后添加添加按钮
配置-动作中发现动作中,点击右上角的创建动作,输入名称和条件
再添加一个auto discover host with agent的发现规则,选择Zabbix proxy为agent代理程序自动发现,添加IP范围,点击添加
切换到操作页面,添加操作详情,包括添加主机、添加到主机群组、链接到模板、启动主机,最后点击添加按钮
稍等一小会查看主机列表多了两个自动发现的主机信息
自动注册使用示例
自动注册为客户端主动向服务端注册,服务端只需要等待与验证即可,配置有点复杂,效率高。
先关闭上面的自动发现的规则(自动发现规则列表对应的规则右方单击“已启用”之后变为"停用"状态即可)和自动发现的动作(发现动作列表对应的动作右方单击“已启用”之后变为"停用"状态即可)
然后再删除上面的自动发现的2个主机信息
- 修改Zabbix 客户端配置文件,vim /etc/zabbix/zabbix_agentd.conf
# ServerActive按照实际填写为zabbix-server或zabbix-proxy
ServerActive=192.168.50.95
# 主机唯一标识名称
Hostname=agent2-host1
# 主机的元数据属性
HostMetadata=agent2-host1
# 自动获取主机名,与Hostname二选一
HostnameItem=system.hostname
# 自动获取主机的元数据,与HostMetadata二选一
HostMetadataItem=system.hostname
- 配置-动作-自动注册动作,点击创建动作,输入如下名称和条件
切换到操作按钮,配置和上面自动发现操作一样,点击添加按钮
- 重启zabbix-agent2(systemctl restart zabbix-agent2)
过几分钟后查看有2台主机主动注册的信息
JMX监控使用示例
从 Zabbix 2.0 开始,以 Zabbix 守护进程方式原生支持监控 JMX 应用程序就存在了,称之为“Zabbix Java gateway”。JMX可用于监控java的应用程序,例如常见的tomcat服务,提前安装好tomcat。
- 安装zabbix-java-gateway
yum install zabbix-java-gateway
- 修改zabbix_java_gateway配置文件,vim /etc/zabbix/zabbix_java_gateway.conf
START_POLLERS=5
- 启动zabbix-java-gateway
# 启动zabbix-java-gateway
systemctl restart zabbix-java-gateway
# 开启自启动
systemctl enable zabbix-java-gateway
- 修改Zabbix Server配置 关联 Java 网关
JavaGateway=192.168.5.52
JavaGatewayPort=10052
StartJavaPollers=5
重启zabbix-server
修改tomcat启动脚本,vim tomcat/bin/catalina.sh,在OS specific support. $var must be set to either true or false的前面添加下面一行即可
#!/bin/sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
- 创建主机,模板选择Apache Tomcat by JMX,接口为JMX接口,点击添加按钮
过一会查看主机名称为tomcat-host的信息,JMX服务以为可用
**本人博客网站 **IT小神 www.itxiaoshen.com
成熟企业级开源监控解决方案Zabbix6.2关键功能实战-下的更多相关文章
- 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-上
@ 目录 概述 定义 监控作用 使用理解 监控对象和指标 架构组成 常用监控软件分析 版本选型 俗语 安装 部署方式 部署 zabbix-agent 概述 定义 Zabbix 官网地址 https:/ ...
- Zabbix企业级开源监控解决方案
Zabbix企业级开源监控解决方案 目录 Zabbix企业级开源监控解决方案 一.Zabbix 1. 监控系统的必要性 2. 监控软件的作用 3. Zabbix的定义 4. Zabbix的监控原理 5 ...
- zabbix企业级的分布式开源监控解决方案 v5.0 LTS
目录 zabbix简介 服务模块 客户端守护进程 监控流程 功能拆解 安装 zabbix 5.0 LTS 参考官网 zabbix 5.0.12-1.el7 zabbix-server相关优化 1. 字 ...
- zabbix、Cacti、Nagios、open-falcon、Ganglia、Prometheus开源监控比较
Zabbix 一个基与WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案(普遍) 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...
- 初识Opserver,StackExchange的监控解决方案
Opserver是闻名遐迩的网站Stack Overflow的开源监控解决方案,由Stack Exchange发布.它基于.NET框架构建,这在监控工具领域有些与众不同. 旨在为每个受监控系统的健康状 ...
- GIS项目中数据开源、工具开源、开发开源的解决方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 摆脱免费地图开发包的约束,拒绝商业地图软件的费用,高效.精确.完备是我 ...
- 【开源监控】Prometheus+Node Exporter+Grafana监控linux服务器
Prometheus Prometheus介绍 Prometheus新一代开源监控解决方案.github地址 Prometheus主要功能 多维 数据模型(时序由 metric 名字和 k/v 的 l ...
- 强大的开源企业级数据监控利器Lepus安装与配置管理
开篇介绍 官方网站:http://www.lepus.cc 开源企业级数据库监控系统 简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能监控,让数据库 ...
- 强大的开源企业级数据库监控利器Lepus
Lepus监控简单介绍 官方网站:http://www.lepus.cc 开源企业级数据库监控系统 简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能 ...
随机推荐
- C++工厂方法模式讲解和代码示例
在C++中使用模式 使用示例: 工厂方法模式在 C++ 代码中得到了广泛使用. 当你需要在代码中提供高层次的灵活性时, 该模式会非常实用. 识别方法: 工厂方法可通过构建方法来识别, 它会创建具体类的 ...
- HDFS 高可用分布式环境搭建
HDFS 高可用分布式环境搭建 作者:Grey 原文地址: 博客园:HDFS 高可用分布式环境搭建 CSDN:HDFS 高可用分布式环境搭建 首先,一定要先完成分布式环境搭建 并验证成功 然后在 no ...
- Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):5、Maven版本发布与后续版本更新(大结局)
文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...
- 面试突击82:SpringBoot 中如何操作事务?
在 Spring Boot 中操作事务有两种方式:编程式事务或声明式事务,接下来我们一起来看二者的具体实现. 1.编程式事务 在 Spring Boot 中实现编程式事务又有两种实现方法: 使用 Tr ...
- 国产PLM软件在创新实践中强势崛起
近日,"璞华PLM"先后获得微度医疗.埃特斯等多个客户的订单,即使在疫情环境下也展现出了强劲的高速增长.在产品生命周期管理(PLM,Product Lifecycle Manage ...
- 跟羽夏学 Ghidra ——导航
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇文章 ...
- 使用sed在源文件上直接替换某一行的内容,只替换第一次找到的那行
sed -i 's/^mysqld_pid_file_path=.*$/mysqld_pid_file_path=\/data\/mysql\/run\/mysqld.pid/' /etc/init. ...
- Visual Studio 2022 开发 STM32 单片机 - 环境搭建点亮LED灯
安装VS2022社区版软件 选择基础的功能就好 安装VisualGDB软件(CSDN资源) 按照提示一步一步安装就好 VisualGDB激活软件(CSDN资源) 将如下软件放在VisualGDB的安装 ...
- 努力一周,开源一个超好用的接口Mock工具——Msw-Tools
作为一名前端开发,是不是总有这样的体验:基础功能逻辑和页面UI开发很快速,本来可以提前完成,但是接口数据联调很费劲,耗时又耗力,有时为了保证进度还不得不加加班. 为了摆脱这种痛苦,经过一周的努力,从零 ...
- 轻量级Web框架Flask——Web表单
安装 Flask-WTF及其依赖可使用pip安装 pip install flask_wtf 配置 要求应用配置一个密钥.密钥是一个由随机字符构成的唯一字符串,通过加密或签名以不同的方式提升应用的安全 ...