OpenWrt 接入 Zabbix 完整教程(Agent 方式,推荐)

laoluo
laoluo
laoluo
管理员
145
文章
0
粉丝
教程评论15阅读模式

一、两种接入方案对比

  1. Zabbix Agent(首选):监控全面(CPU / 内存 / 网卡 / 磁盘 / 温度 / 进程)、自动发现、延迟低,适合长期稳定监控路由器
  2. SNMP(备选):无需装 Agent,但指标少、无法自定义,仅适合临时简易监控

下文以 Agent 主动模式 为主(路由器内网、防火墙严格时更稳)

二、OpenWrt 端安装 zabbix-agent

1. 更新软件源

SSH 登录 OpenWrt(root)

opkg update

2. 安装依赖与 Agent

# 安装文本编辑器(可选,方便改配置)
opkg install nano
# 安装zabbix-agentd(匹配你Zabbix服务端大版本,6.0/6.4/7.0通用)
opkg install zabbix-agentd

3. 编辑 Agent 配置文件

nano /etc/zabbix_agentd.conf

修改核心参数(替换192.168.1.100为你的 Zabbix Server IP):

# 被动模式:Server主动拉取(服务器能通10050端口再开)
Server=192.168.1.100
# 主动模式:OpenWrt主动上报(推荐,只放行出站即可)
ServerActive=192.168.1.100
# OpenWrt主机名,必须和Zabbix后台添加的主机名完全一致(大小写敏感)
Hostname=OpenWrt-Router
# 监听所有网卡,端口默认10050
ListenIP=0.0.0.0
ListenPort=10050
# 允许执行自定义监控脚本
EnableRemoteCommands=1
# 日志输出
LogFile=/var/log/zabbix_agentd.log

保存退出:Ctrl+O → 回车 → Ctrl+X

4. 放行防火墙端口(关键)

主动模式(仅出站,最简)

无需放行入站,OpenWrt 主动连 Server 10051 端口

被动模式(需要入站 10050)

# 防火墙开放10050入站
uci add firewall rule
uci set firewall.@rule[-1].name='zabbix-agent'
uci set firewall.@rule[-1].src='lan'
uci set firewall.@rule[-1].target='ACCEPT'
uci set firewall.@rule[-1].proto='tcp'
uci set firewall.@rule[-1].dest_port='10050'
uci commit firewall
service firewall reload

5. 启动并开机自启

service zabbix_agentd start
service zabbix_agentd enable
# 查看运行状态
service zabbix_agentd status
# 查看日志排错
tail -f /var/log/zabbix_agentd.log

三、Zabbix Web 后台配置

1. 添加主机

  1. 左侧菜单:数据采集 → 主机 → 添加主机
  2. 主机参数:
  • 主机名称:和zabbix_agentd.confHostname完全一致(例:OpenWrt-Router
  • 可见名称:自定义显示名(如「主路由 OpenWrt」)
  • 群组:新建 / 选择「路由器」分组
  • 接口
    • 类型:Zabbix Agent
    • IP 地址:OpenWrt 的 LAN IP
    • 端口:10050
  1. 模板:链接模板 Template OS Linux by Zabbix agent
  2. 点击添加保存

2. 适配 OpenWrt 文件系统(ubifs/f2fs 识别磁盘)

OpenWrt 默认分区是 ubifs,Linux 模板不会自动识别磁盘使用率,需修改正则:

  1. 数据采集 → 正则表达式 → 搜索 Filesystems for discovery
  2. 编辑表达式,匹配新增ubifs,f2fs
    ^(btrfs|ext2|ext3|ext4|f2fs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|ubifs|zfs)$
  1. 更新模板宏 {$VFS.FS.FSTYPE.MATCHES} 填入相同正则

四、扩展自定义监控(路由器常用指标)

1. 监控 CPU 温度

创建自定义参数文件

nano /etc/zabbix_agentd.d/temp.conf

写入:

UserParameter=cpu.temp,cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000}'

重启 agent 生效:

service zabbix_agentd restart

Zabbix 后台添加监控项:

  • 键值:cpu.temp
  • 单位:

2. 监控在线设备数量(LAN DHCP 客户端)

UserParameter=lan.client.count,cat /tmp/dhcp.leases | wc -l

 3. 监控内存、闪存剩余、WAN 拨号流量

模板自带自动发现网卡、内存、磁盘,无需额外配置,添加主机后 1 分钟自动生成图形。

五、常见排错

  1. 主机显示不可达
    • 核对Hostname大小写完全一致
    • 主动模式:检查 OpenWrt 能否 ping 通 Zabbix Server,出站 10051 放行
    • 被动模式:防火墙放行 10050 入站,Server 能 telnet OpenWrt:10050
  2. 磁盘使用率无数据
    • 按上文修改文件系统正则,包含ubifs
  3. Agent 启动失败
    # 前台运行看报错
    zabbix_agentd -c /etc/zabbix_agentd.conf -f

     

  4. 无网卡流量图形 等待自动发现(默认 30 分钟),或手动执行发现规则。

六、SNMP 简易接入(无 Agent 方案)

不想装 Agent 可使用 SNMP,指标较少:

  1. OpenWrt 安装 snmpd:opkg install snmpd
  2. 配置/etc/snmp/snmpd.conf,设置只读共同体public
  3. Zabbix 主机接口选择 SNMP,链接Template OS Linux by SNMP

 
laoluo
  • 本文由 laoluo 发表于2026年6月27日 23:33:17
  • 转载请务必保留本文链接:https://www.mydata-api.com/tutorials/314.html
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证