Linux DHCP服务器监控工具与落地方案
一、监控目标与关键指标
二、命令行快速排查与实时监控
systemctl status dhcpd(或 dnsmasq);实时看日志:journalctl -u dhcpd.service -f、tail -f /var/log/syslog | grep dhcpd。/var/lib/dhcpd/dhcpd.leases(ISC DHCP);结合脚本统计“已分配/剩余”与租约到期分布,用于容量预警。sudo tcpdump -i any port 67 or port 68 -nn -vv;图形化分析用 Wireshark(过滤表达式:udp.port == 67 or udp.port == 68);无图形环境可用 tshark:sudo tshark -i any -Y "udp.port == 67 or udp.port == 68";轻量文本匹配用 ngrep:sudo ngrep -d any -W byline 'port 67 or port 68'。dhclient -v <iface>、dhcptest、dhcping,验证 Offer/Ack 是否正常返回。三、可视化与告警平台集成
四、按场景的落地方案
systemctl status dhcpd 确认进程;2)journalctl -u dhcpd -f 观察错误;3)tcpdump -i any port 67 or 68 看报文交互;4)cat /var/lib/dhcpd/dhcpd.leases | less 检查租约分配与到期。udp.port == 67 or 68,核对 Discover/Offer/Request/Ack 流程是否完整、是否存在异常 NAK 或报文重传。五、实用命令清单
| 目标 | 工具与命令示例 |
|---|---|
| 服务状态 | systemctl status dhcpd;journalctl -u dhcpd.service -f |
| 租约查看 | cat /var/lib/dhcpd/dhcpd.leases |
| 抓包分析 | sudo tcpdump -i any port 67 or port 68 -nn -vv |
| 图形化抓包 | Wireshark 过滤:udp.port == 67 or udp.port == 68 |
| 命令行抓包 | sudo tshark -i any -Y "udp.port == 67 or udp.port == 68" |
| 轻量匹配 | sudo ngrep -d any -W byline 'port 67 or port 68' |
| 连通性测试 | dhclient -v <iface>;dhcptest;dhcping |
| 系统资源 | glances;sar -n DEV 1(来自 sysstat) |
| 日志跟踪 | `tail -f /var/log/syslog |