成熟企业级开源监控解决方案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一站式性能 ...
随机推荐
- 新年趣事之红包--"四边形"不等式优化DP
目录 题目描述 输入 输出 思路 新年趣事之红包 时间限制: 1 Sec 内存限制: 64 MB 题目描述 xiaomengxian一进门,发现外公.外婆.叔叔.阿姨--都坐在客厅里等着他呢.经过仔 ...
- C#/.NET/.NET Core优秀项目框架推荐
前言: 为.NET开源者提供的一个推荐自己优秀框架的地址,大家可以把自己的一些优秀的框架,或者项目链接地址存到在这里,提供给广大.NET开发者们学习(排名不分先后). Github项目仓库收集地址:h ...
- 【必知必会】手把手教你配置MySQL环境变量——图文详解
一.先决条件 假设我们已经成功安装MySQL数据库.如果还有小伙伴不知道如何安装MySQL数据库,可以在本文下留言,留言数超20,则出一期"手把手教你安装MySQL数据库--图文详解&quo ...
- 创建x11vnc系统进程
〇.前言 为方便使用vnc,所以寻找到一个比较好用的vnc服务端那就是x11vnc,索性就创建了一个系统进程 一.环境 系统:银河麒麟v4-sp2-server 软件:x11vnc[linux下].V ...
- Pytest fixture及conftest详解
前言 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...
- 从 Yum 更新中排除特定/某些包的三种方法
方法 1:手动或临时用 yum 命令排除包 要排除单个包: # yum update --exclude=kernel 或者 # yum update -x 'kernel' 要排除多个包.以下命令将 ...
- CentOS7.x安装VNC
VNC需要系统安装的有桌面,如果是生产环境服务器,安装时使用的最小化安装,那么进行下面操作安装GNOME 桌面. # 列出的组列表里有GNOME Desktop. yum grouplist #安装 ...
- Elasticsearch:管理 Elasticsearch 内存并进行故障排除
文章转载自:https://elasticstack.blog.csdn.net/article/details/116974695
- 使用cnpm创建vue项目(含离线安装)
# 全局安装淘宝cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org #升级 npm cnpm install npm ...
- 在 CentOS 8/RHEL 8 上安装和使用 Cockpit
Cockpit 是一个基于 Web 的服务器管理工具,可用于 CentOS 和 RHEL 系统.最近发布的 CentOS 8 和 RHEL 8,其中 cockpit 是默认的服务器管理工具.它的软件包 ...