zabbix,配置文件,资源监控项
默认采集单位为字节,需预处理转换为比特(×8),并在监控项中标注单位(如。:需结合脚本或扩展插件增强准确性(Zabbix原生支持较弱)。:检查物理网卡是否全部在线,需启用Zabbix Agent的。:根据业务基线设置阈值(如连接数突增可能为攻击或故障)。:监控到指定IP的丢包率(需目标IP允许ICMP)。:监控系统负载,建议根据CPU核心数设置阈值(如。:实时监控每秒接收的比特数,用于评估带宽占用
以下是为Zabbix配置常用监控项的示例清单,涵盖系统基础资源、网络、服务、应用等场景,使用中文说明:
一、配置文件参数
- ListenPort=10051#监听端口
- LogFile=/var/log/zabbix/zabbix_server.log#日志存放路径
- LogFileSize=50# 日志轮询大小控制单位是mb
- PidFile=/run/zabbix/zabbix_server.pid#pid文件存放路径
- SocketDir=/run/zabbix #socket 存放目录路径
- DBHost=localhost#数据库连接地址(可以根据修改的主机名进行相应的修改)
- DBName=zabbix#数据库名称
- DBUser=zabbix#数据库连接用户(可根据实际情况进行更改)
- DBPassword=Zabbix123~#数据库密码
- AllowUnsupportedDBVersions=1#允许不支持的数据库版本运行,(0不允许,1允许)
- StartPollers=20#轮询器的pre-forked(预分配)实例进程数量。
- StartIPMIPollers=0#IPMI进程轮询器数量
- StartPollersUnreachable=10#不可达主机轮询器(包括IPMI和Java,snmp等)
如果启动常规轮询,则至少运行一个无法访问主机的轮询器 - StartTrappers=5#历史数据处理进程轮询器
- StartTrappers=5#Trap类型进程轮询器
- StartPingers=1#ICMP PING进行轮询器
- StartHTTPPollers=1#http进程轮询器
- StartTimers=1#定时器的per-forked(预分配)实例数量,定时器处理维护周期
- StartEcsalators=1#扩容程序的pre-forked(预分配)实例数量
- StartAlters=3#告警程序的pre-forked实例数量
- StartVNwareCollectors=0#vm数据收集进程
- SNMPTrapperFile=/var/log/snmptrap/snmptrap.log#snmp trap 文件路径
- CacheSize=128M#配置缓存大小,以字节为单位,存储主机,监控项和触发器的共享内存
二、zabbix常用词示意
主机(host):被监控的设备和服务,可以是服务器,路由器,交换机等网络设备,也可以是运行着各种服务的应用程序
监控项(item):监控主机的特定参数或指标,例如cpu使用率,内存使用量,网络流量等,每个主机的每个监控项都有唯一的键(key)用于标识
触发器(trigger):用于定义监控数据的阈值和条件,当监控数据达到或超过这些条件时,触发器会产生警告。
图形(graph):用于可视化展示监控数据的图表,可以展示单个主机的多个项目,或者多个主机的同一个项目
模板(template):用于定义一组通用的监控项,触发器和图形,可以将模板应用到多个主机上,简化配置管理
动作(action):在触发器发生时执行的操作,例如发送电子邮件,短信或调用脚本
代理(agent):安装在监控主机上的软件,用于收集本地监控数据发送给zabbix server或者proxy
自动发现(discovery):自动识别和添加新主机以及关联的模板减少手动配置的工作量
zabbix server (server):负责接受和处理监控数据,生成报表,出发警告等核心功能的服务器组件
zabbix数据库(database):用于存储监控数据,配置信息和历史数据等的数据库
用户宏(user macro):用于在zabbix中定义可重用的变量,以简化配置管理。用户宏可以在监控项,触发器,图形等配置中使用,使得配置更加灵活和可维护
表达式:用于定义触发器的条件,可以使用监控项的值用户宏,函数等进行计算和比较,从而确定触发器是否应该被触发
主机组(host group):将相似的主机进行分组管理的机制,主机组可以帮助用户更好的管理大量的监控主机,简化配置和权限管理
代理(proxy):zabbix proxy 是一种独立的程序,安装在需要的监控主机上,用于收集本地监控数据并将其发送到zabbix server。代理可以帮助减轻zabbix server的负载,并且可以通过局部网络访问本地资源,提高监控的效率和安全性,proxy还可以在网络不稳定或不可靠的环境中提供缓冲功能,确保监控数据的稳定传输。
三、系统基础资源监控项
1. CPU监控
-
监控项名称:CPU总使用率
键值:system.cpu.util[,all,avg1]
说明:监控所有CPU核心的平均使用率(百分比)。
示例触发告警:{HOST:system.cpu.util[,all,avg1].last()}>90 -
监控项名称:单核CPU使用率(按核心)
键值:system.cpu.util[percpu,all,avg1,<核心编号>]
说明:监控指定CPU核心的使用率(例如0表示第一个核心)。 -
监控项名称:CPU负载(1/5/15分钟)
键值:-
system.cpu.load[all,avg1] -
system.cpu.load[all,avg5] -
system.cpu.load[all,avg15]
说明:监控系统负载,建议根据CPU核心数设置阈值(如负载>核心数×2触发告警)。
-
2. 内存监控
-
监控项名称:可用内存百分比
键值:vm.memory.size[pavailable]
说明:剩余可用内存占比,适用于Linux/Windows。 -
监控项名称:总内存使用量
键值:vm.memory.size[total]
单位:字节(自动转换为GB)。 -
监控项名称:Swap交换分区使用率
键值:system.swap.size[,pused]
告警建议:Swap使用率持续高于20%需排查内存压力。
3. 磁盘监控
-
监控项名称:磁盘空间使用率(按分区)
键值:vfs.fs.size[<挂载点>,pused]
示例:-
vfs.fs.size[/,pused](根分区) -
vfs.fs.size[/data,pused](自定义数据盘)
-
-
监控项名称:磁盘读写速率(按设备)
键值:-
读速率:
vfs.dev.read[<设备名>,ops] -
写速率:
vfs.dev.write[<设备名>,ops]
示例: -
Linux设备名:
vfs.dev.read[sda,ops] -
Windows设备名:`vfs.dev.read
-
4.Zabbix网络监控项详解
-
4.1. 网络接口流量与性能
4.1.1 带宽使用率
-
监控项名称:网卡入站带宽使用率
键值:net.if.in[<网卡名>,bytes]
单位转换:将字节转换为比特(bps),在监控项预处理中添加Custom multiplier=8。
说明:实时监控每秒接收的比特数,用于评估带宽占用。 -
监控项名称:网卡出站带宽使用率
键值:net.if.out[<网卡名>,bytes]
预处理:同上,乘以8转换为bps。示例触发告警:
{HOST:net.if.in[eth0,bytes].avg(5m)} > 100000000 # 100Mbps带宽超过阈值 -
4.1.2 网络错误与丢包
-
监控项名称:网卡错误包数量
键值:-
接收错误包:
net.if.in[<网卡名>,errors] -
发送错误包:
net.if.out[<网卡名>,errors]
告警建议:持续增长的错误包可能表示硬件或驱动问题。
-
-
监控项名称:网络丢包率(ICMP)
键值:icmppingloss[<目标IP>]
说明:监控到指定IP的丢包率(需目标IP允许ICMP)。
触发条件:{HOST:icmppingloss[8.8.8.8].last()}>5(丢包率>5%告警)。 -
4.2. 网络连接与端口状态
4.2.1 TCP/UDP端口监听
-
监控项名称:TCP端口是否开放
键值:net.tcp.listen[<端口号>]
返回值:1表示监听中,0表示未监听。
示例:-
监控SSH端口:
net.tcp.listen[22] -
触发告警:
{HOST:net.tcp.listen[22].last()}=0
-
-
监控项名称:UDP端口是否活跃
键值:net.udp.listen[<端口号>]
说明:需结合脚本或扩展插件增强准确性(Zabbix原生支持较弱)。 -
4.2.2 网络连接数统计
-
监控项名称:TCP总连接数
键值:net.tcp.port[,all]
告警建议:根据业务基线设置阈值(如连接数突增可能为攻击或故障)。 -
监控项名称:按状态统计TCP连接数
键值:-
ESTABLISHED:net.tcp.port[,established] -
TIME_WAIT:net.tcp.port[,time_wait] -
CLOSE_WAIT:net.tcp.port[,close_wait]
说明:分析连接状态分布,定位资源泄漏或异常。
-
-
4.3. 网络服务可用性
4.3.1 HTTP/HTTPS服务
-
监控项名称:HTTP响应状态码
键值:web.page.get[<URL>,<端口>,<超时秒数>,<Headers>]
示例:-
web.page.get[www.example.com,80,10] -
预处理:检查返回内容是否包含关键字(如
"Success")。
-
-
监控项名称:HTTPS证书有效期
键值:web.certificate.get[<URL>,<端口>,<IP>]
预处理:提取证书过期时间字段。
告警建议:证书剩余天数 < 30 天时触发告警。 -
4.3.2 DNS解析监控
-
监控项名称:DNS解析延迟
键值:net.dns[<DNS服务器>,<域名>,<记录类型>]
示例:-
net.dns[8.8.8.8,example.com,A]
说明:监控解析结果是否正确,并记录响应时间。
-
-
4.4. 高级网络监控(需自定义)
4.4.1 网卡聚合接口(Bonding/LACP)
-
监控项名称:Bonding接口状态
键值:cat /proc/net/bonding/bond0 | grep "Slave Interface"(通过system.run执行)
说明:检查物理网卡是否全部在线,需启用Zabbix Agent的EnableRemoteCommands=1。 -
4.4.2 网络设备SNMP监控
-
监控项名称:交换机端口流量
OID示例:-
入流量:
IF-MIB::ifInOctets.<端口索引> -
出流量:
IF-MIB::ifOutOctets.<端口索引>
配置步骤:
-
在Zabbix中创建SNMP主机,配置SNMPv2/v3参数。
-
使用自动发现规则批量添加交换机端口监控项。
-
-
配置注意事项
-
网卡名称适配:
-
网卡名称适配:
-
Linux:通过
ip a或ifconfig获取网卡名(如eth0、ens192)。 -
Windows:使用设备管理器中的名称(如
"Ethernet0",需转义空格:"Ethernet 0"→"Ethernet0")。
-
-
流量单位换算:
-
默认采集单位为字节,需预处理转换为比特(×8),并在监控项中标注单位(如
bps)。
-
-
键值测试:
-
在Zabbix Agent服务器上使用
zabbix_agentd -t "net.if.in[eth0,bytes]"验证数据采集。
-
-
-
示例告警规则
监控场景 触发器表达式 告警说明 网卡带宽超限 {HOST:net.if.in[eth0,bytes].avg(5m)}>8000000001Gbps带宽使用率超过80% 关键端口未监听 {HOST:net.tcp.listen[3306].last()}=0MySQL端口宕机 网络丢包率过高 {HOST:icmppingloss[192.168.1.1].min(5m)}>10内网网关丢包率>10%
如果需要配置网络拓扑图或流量聚合报表,可结合Zabbix的 “聚合图形” 或 “Grafana集成” 实现更直观的可视化!
-
更多推荐


所有评论(0)