以下是为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连接数
      键值

      • ESTABLISHEDnet.tcp.port[,established]

      • TIME_WAITnet.tcp.port[,time_wait]

      • CLOSE_WAITnet.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.<端口索引>
        配置步骤

      1. 在Zabbix中创建SNMP主机,配置SNMPv2/v3参数。

      2. 使用自动发现规则批量添加交换机端口监控项。


    • 配置注意事项

    • 网卡名称适配

      • 网卡名称适配

        • Linux:通过ip aifconfig获取网卡名(如eth0ens192)。

        • 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)}>800000000 1Gbps带宽使用率超过80%
      关键端口未监听 {HOST:net.tcp.listen[3306].last()}=0 MySQL端口宕机
      网络丢包率过高 {HOST:icmppingloss[192.168.1.1].min(5m)}>10 内网网关丢包率>10%

      如果需要配置网络拓扑图或流量聚合报表,可结合Zabbix的 “聚合图形” 或 “Grafana集成” 实现更直观的可视化!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐