监控目标与总体思路
服务器侧监控 dhcpd
sudo systemctl status dhcpd;sudo journalctl -u dhcpd.service -f(按实际服务名可能为 dhcpd 或 isc-dhcp-server)。cat /etc/dhcp/dhcpd.conf,关注 subnet、range、default-lease-time、max-lease-time 等关键参数,便于判断容量与策略是否合理。sudo ss -lunpt | grep :67 或 sudo netstat -tulpen | grep :67。sudo tail -n 50 /var/lib/dhcpd/dhcpd.leases;结合 wc -l 统计租约条目数,与 range 大小对比估算使用率。sudo tcpdump -i any -n -v port 67 or port 68;如需解析报文内容可用 sudo dhcpdump -i eth0(需安装 dhcpdump)。客户端侧监控 dhclient
sudo systemctl status dhclient(若以服务方式托管);或 ps aux | grep dhclient 检查进程是否存在。sudo journalctl -u dhclient -f(若以 systemd 托管);或 tail -f /var/log/messages | grep DHCP。cat /var/lib/dhcp/dhclient.leases;ip addr show <iface> 确认已获取 inet 地址。sudo tcpdump -i any -n -v port 67 or port 68;如需更直观的报文内容可用 dhcpdump -i <iface>。sudo dhclient -v <iface> 可输出发现与请求过程,便于定位 Offer/ACK 异常。可视化与告警集成
关键指标与阈值示例
| 指标 | 采集方式 | 告警示例 | 说明 |
|---|---|---|---|
| dhcpd 服务状态 | systemctl is-active dhcpd | != active | 服务宕机立即告警 |
| UDP 67 监听 | ss -lunpt | 无监听 | 端口未监听则无法提供服务 |
| 租约使用率 | wc -l /var/lib/dhcpd/dhcpd.leases 与 range 对比 | > 80% 持续 5 分钟 | 接近地址池上限需扩容或回收 |
| Discover→Offer 时延 | tcpdump/dhcpdump 时间戳 | > 1–2 秒 | 网络或服务器处理慢 |
| Offer/ACK 丢失率 | 抓包统计 D/O/R/A 比例 | > 1% | 可能存在网络丢包或服务器过载 |
| 日志错误关键字 | journalctl/grep | 出现 No free leases / timeout | 容量不足或客户端异常 |
| 系统资源 | sar/glances | CPU>80% 持续 5 分钟或丢包 | 资源瓶颈需优化或扩容 |
提示
log-dhcp 并通过 journalctl -u dnsmasq 观察 DHCP 日志,方法与 dhcpd 类似。