目录
一.故事剧情
在通过elk完成对各种应用日志的收集后,开始接触监控模块的学习,首先接触的是zabbix监控,接下来进行详细介绍
二.Zabbix概述
1、zabbix简介
-
zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
-
zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
-
zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
-
zabbix server 可以通过 zabbix agent,SNMP协议,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在 Linux 等平台上。
-
zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。
2、核心定位与价值
Zabbix 是一款开源的企业级分布式监控系统,专为大规模IT基础设施设计。它通过实时监控、告警和可视化,帮助企业实现:
-
主动故障预警:提前发现潜在问题
-
性能瓶颈分析:识别系统性能瓶颈
-
容量规划支持:基于历史数据预测资源需求
-
统一监控平台:整合服务器/网络/应用/云服务监控
3、核心架构
架构拓扑(分布式部署模型)
架构组件对比
组件 | Zabbix 6 | Zabbix 7 增强点 |
---|---|---|
Server | C++单进程 | 支持Go扩展插件 |
Proxy | 单点部署 | 原生支持HA集群 |
数据库 | 仅支持关系型 | 新增ClickHouse时序存储引擎 |
数据采集 | 主动/被动模式 | 新增eBPF无埋点采集 |
UI框架 | PHP+JS | Vue3重构90%界面 |
技术优势对比
能力 | Zabbix | Nagios | Prometheus |
---|---|---|---|
分布式架构 | ✅ 原生支持 | ❌ 需插件 | ✅ 有限支持 |
自动发现 | ✅ 强大 | ⚠️ 基础 | ⚠️ 基础 |
历史数据分析 | ✅ 深度分析 | ❌ 仅当前状态 | ⚠️ 短期数据 |
可视化能力 | ✅ 丰富 | ❌ 简陋 | ⚠️ 依赖Grafana |
容器监控 | ✅ 7.0+增强 | ❌ 不支持 | ✅ 原生支持 |
学习曲线 | ⚠️ 中等 | ✅ 简单 | ⚠️ 中等 |
3.核心功能模块
1. 数据采集矩阵
采集方式 | 协议/技术 | 典型场景 |
---|---|---|
Agentless | HTTP API/SSH/WMI | 云主机监控 |
eBPF | Linux内核探针 | 容器网络性能分析 |
OTel | OpenTelemetry SDK | 应用性能追踪 |
SNMP Traps | Trap接收器 | 网络设备告警 |
2. 自动发现机制
三.zabbix 监控原理
zabbix agent 安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后, 将数据存储到数据库中,用户基于 Zabbix Web 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值, 当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、钉钉、短信)、发送命令(shell 命令、reboot、restart、 install 等)。
四.Zabbix监控对象
zabbix支持监控各种系统平台,包括linux和windows等主流操作系统,也可以借助SNMP或者SSH协议监控路由交换设备。
zabbix如果部署在服务器上,可以监控其CPU、内存、网络等硬件参数,也可以监控具体服务(中间件:web中间件、数据库中间件、语言环境)或者应用程序(论坛、OA、ERP),服务运行情况及性能。
硬件监控(zabbix IPMI interface)
-
通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控备监控的对象的物理特征,比如电压、温度、风扇状态、电源状态等。
系统监控(zabbix agent interface)
-
通过专用的代理程序进行监控,与常见的master/agent模型类型,如果监控对象支持对应的agent,推荐选这种方式。
java监控(zabbix JMX interface)
-
通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JMX虚拟机时,使用这种方法非常不错的选择。
网络设备监控(Zabbix SNMP Interface )
-
通过SNMP协议与被监控对象进行通信,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。
五.Zabbix架构:
5.1 server-client架构:
-
也就是zabbix的最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-agent之间进行数据交换。
-
适用于网络比较简单,尽量在局域网内,设备比较少的监控环境。
5.2 server-proxy-client架构:
-
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且本身并不存放数据,只是将agentd发来的数据暂时存放,然后再交给server。
-
该架构经常是和master-node-client架构做比较。一般适用于跨机房、跨网络的中型网络架构的监控。
5.3 master-node-client架构:
-
该架构是zabbix最大负载的监控架构,使用于跨机房、跨网络设备较多的大型环境。每一个node都会同步server端。相当于也是一个server端
-
node下面可以接proxy,也可以直接接clinet。
-
node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损不会对影响node节点的正常工作,但是会影响zabbix-server整体的完整性。
六.Rocky9.4部署Zabbix7
环境准备
进入/etc/ssh/sshd_config,将第四十行内容改为yes
重启sshd
一、配置安装源
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
二、安装Zabbix server,Web前端,agent
yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
三、配置mysql数据库
在mysql中使用
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
四、为Zabbix server配置数据库
vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
进入/etc/zabbix/zabbix_server.conf将密码加进去(131行)
五、为Zabbix前端配置PHP
编辑配置文件 /etc/nginx/conf.d/zabbix.conf(开头)
再进入 /etc/nginx/nginx.conf,将80口注释
六、启动对应服务
systemctl enable --now zabbix-server zabbix-agent nginx php-fpm
七、登录配置zabbix
只填写密码
选择时区
下一步,完成安装
登录
成功登录
七.配置监控主机
1.配置被监控主机
再加一台被监控机,也使用Rocky9 ,前期操作一致,下载zabbix-agent
在/etc/zabbix/zabbix_agentd.conf 中将server的ip指向监控机,并修改一个不同的主机名
启动服务(记得关闭防火墙)
2.添加监控主机
加入信息后点击添加
点击名称添加接口,选择Agent后,填写本机ip地址,点击更新
再添加模板,同样点击名称进去,选择模板并更新,发现有了监控内容
然后ctrl + F5刷新 就变得可用了
3.查看监控内容
此时发现,有一些小格子没显示,这是因为字型不匹配导致的
4.解决中文乱码问题
从windows系统中:C:\Windows\Fonts路径下拷贝
到zabbix server中,放到/usr/share/zabbix/assets/fonts
此时返回网址查看,发现小格子变回中文了
八.添加监控windows主机
下载zabbix_agent(windows),放在D盘或其他,然后解压后进入conf文件夹,修改server为监控机ip
打开powershell以管理员身份打开
回到zabbix添加群组
然后添加windows主机
输入信息(按自己的网段输入)
等待后查看变得可用
八.创建模板
创建模板组
然后开始创建模板
然后将新模板添加到新建的模板组中
此时点击模板选择刚新建的模板,再点击应用
增加监控项
先检查被监控机配置文件/etc/zabbix/zabbix_agent.conf有以下的配置后
进入被监控机的/etc/zabbix/zabbix_agentd.d中
先创建一个对磁盘使用的监控
UserParameter=disk_use[*],df -Th | grep "$1$" | awk '{print $(NF-1)}' | cut -d% -f1
重启服务,验证是否可以从监控机看到监控数据
方法1,再监控机下载zabbix_get服务
方法2,使用zabbix网页
找到刚才的模板,进入监控项
点击创建监控项再进行填写
可以点击测试查看内容,成功后点击添加
再选择图形,来创建图形
填写完成点击添加
再添加触发器
添加完成后,在工作环境需要加入触发器动作(发邮件,打电话,发信息等方式)测试环境就不添加了
九.监控新模板
监控磁盘使用
在完成创建模板之后,就可以进行监控了,将之前的模板删除,添上新模板
选择新模板组后点击更新
然后去监控界面点击主机
此时将写入,占用一些空间,再次检查监控
监控登录次数
添加新监控项
添加图形
就可以监控到root登录次数了
十.总结
本节初步接触了zabbix的内容,以及创建新模板,监控项等内容,之后还要增加更多新的使用方法,拭目以待。