Linux 网络监控与日志分析实战
一、网络监控的重要性与指标体系
核心监控维度:
黄金指标(USE 方法): Utilization(利用率)、Saturation(饱和度)、Errors(错误)。
关键命令快速巡检:
ip -s link show # 接口统计
ss -s # socket 摘要
ss -tanp | wc -l # 连接总数
cat /proc/net/dev # 流量统计
netstat -s | egrep 'retrans|error'
二、基础命令行监控工具
实时流量:
iftop -i eth0 # 按连接排序
nload
vnstat -l # 历史
连接查看:
ss -tan state established # 活跃 TCP
ss -ltnp # 监听端口
ss -m # 内存占用
抓包利器 tcpdump:
tcpdump -i eth0 -nn -c 100 port 80
tcpdump -i any host 192.168.1.100 and port 443 -w capture.pcap
tcpdump -nn 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0'# SYN 包
# 常见过滤
tcpdump -nn 'tcp port 22' -A # 打印 ASCII
Wireshark:图形化分析 pcap 文件,过滤器 http、tcp.analysis.retransmission 等。
路由追踪:
mtr -r -c 100 8.8.8.8
traceroute -T -p 443 example.com
带宽测试:
iperf3 -s
iperf3 -c server_ip -P 4
三、系统级监控与 sar
sysstat 套件:
apt install sysstat
sar -n DEV 1 10 # 网络接口
sar -n TCP,ETCP 1 5 # TCP 统计
sar -n SOCK 1 # socket
/proc 文件系统:
cat /proc/net/snmp
cat /proc/net/netstat
cat /proc/net/sockstat
四、现代化监控栈(Prometheus + Grafana)
推荐 exporter:
- blackbox_exporter(HTTP/TCP/ICMP 探测)
- dnsmasq_exporter、bind_exporter 等
关键 PromQL 查询示例:
- 接口接收字节:
rate(node_network_receive_bytes_total[5m]) - TCP 重传率:
rate(node_netstat_Tcp_RetransSegs[5m]) / rate(node_netstat_Tcp_OutSegs[5m]) - 连接数:
node_sockstat_TCP_inuse
Grafana 仪表盘:网络流量拓扑、Top 连接、错误趋势。
Alertmanager 告警规则:
ELK / Loki + Promtail:集中日志。
五、日志分析实战
系统网络日志:
/var/log/syslog 或 journalctl -u systemd-networkd- iptables 日志:
--log-prefix "DROP: "
采集配置(rsyslog):
# /etc/rsyslog.d/network.conf
if$msg contains 'IPTABLES' or $programname == 'named'then /var/log/network.log
日志分析工具:
journalctl --since "1 hour ago" -u nginx | grep error
高级:ELK Stack 或 Loki + Grafana 查询:
- 搜索
tcp reset 或 connection refused
安全日志:
六、生产案例与故障排查流程
案例1:间歇性超时:
- tcpdump 发现大量重传 → 检查 MTU 不一致或链路拥塞。
- 解决:调整 MSS
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
案例2:突发流量导致丢包:
- iftop 定位 Top IP → iptables 限速或云安全组封禁。
案例3:DNS 查询延迟:
dig +stats + tcpdump port 53 → 缓存命中率低 → 扩大 dnsmasq cache。
标准化排查流程:
七、最佳实践与自动化
- 分层监控:主机 → 网络设备 → 应用 → 业务。
- 保留策略:原始 pcap 短期保存,指标长期存储。
- 自动化巡检:Ansible + cron 或 Prometheus rules。
- 可视化:Grafana 统一大盘,支持 drill-down。
容器/K8s 扩展:
- Cilium Hubble(eBPF 网络可视化)
- cAdvisor + kube-state-metrics