一、两种接入方案对比
- Zabbix Agent(首选):监控全面(CPU / 内存 / 网卡 / 磁盘 / 温度 / 进程)、自动发现、延迟低,适合长期稳定监控路由器
- 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. 添加主机
- 左侧菜单:数据采集 → 主机 → 添加主机
- 主机参数:
- 主机名称:和
zabbix_agentd.conf里Hostname完全一致(例:OpenWrt-Router) - 可见名称:自定义显示名(如「主路由 OpenWrt」)
- 群组:新建 / 选择「路由器」分组
- 接口:
- 类型:Zabbix Agent
- IP 地址:OpenWrt 的 LAN IP
- 端口:10050
- 模板:链接模板
Template OS Linux by Zabbix agent - 点击添加保存
2. 适配 OpenWrt 文件系统(ubifs/f2fs 识别磁盘)
OpenWrt 默认分区是 ubifs,Linux 模板不会自动识别磁盘使用率,需修改正则:
- 数据采集 → 正则表达式 → 搜索
Filesystems for discovery - 编辑表达式,匹配新增
ubifs,f2fs:^(btrfs|ext2|ext3|ext4|f2fs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|ubifs|zfs)$
- 更新模板宏
{$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 分钟自动生成图形。
五、常见排错
- 主机显示不可达
- 核对
Hostname大小写完全一致 - 主动模式:检查 OpenWrt 能否 ping 通 Zabbix Server,出站 10051 放行
- 被动模式:防火墙放行 10050 入站,Server 能 telnet OpenWrt:10050
- 核对
- 磁盘使用率无数据
- 按上文修改文件系统正则,包含
ubifs
- 按上文修改文件系统正则,包含
- Agent 启动失败
# 前台运行看报错 zabbix_agentd -c /etc/zabbix_agentd.conf -f
- 无网卡流量图形 等待自动发现(默认 30 分钟),或手动执行发现规则。
六、SNMP 简易接入(无 Agent 方案)
不想装 Agent 可使用 SNMP,指标较少:
- OpenWrt 安装 snmpd:
opkg install snmpd - 配置
/etc/snmp/snmpd.conf,设置只读共同体public - Zabbix 主机接口选择 SNMP,链接
Template OS Linux by SNMP
