当前位置:首页>Linux>Linux 网络监控与日志分析实战

Linux 网络监控与日志分析实战

  • 2026-09-03 19:45:20
Linux 网络监控与日志分析实战

Linux 网络监控与日志分析实战

一、网络监控的重要性与指标体系

核心监控维度:

  • 可用性:连通性、端口监听。
  • 性能:吞吐量、延迟、丢包率、RTT。
  • 容量:连接数、带宽利用率。
  • 错误:重传、丢包、缓冲溢出。
  • 安全:异常流量、扫描行为。

黄金指标(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:

  • node_exporter(基础网络指标)
  • blackbox_exporter(HTTP/TCP/ICMP 探测)
  • snmp_exporter(网络设备)
  • 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 告警规则:

  • 丢包率 > 1%
  • TIME_WAIT 连接数 > 阈值
  • SYN_RECV 异常升高

ELK / Loki + Promtail:集中日志。

五、日志分析实战

系统网络日志:

  • /var/log/syslog 或 journalctl -u systemd-networkd
  • iptables 日志:--log-prefix "DROP: "
  • dnsmasq / named 日志

采集配置(rsyslog):

# /etc/rsyslog.d/network.conf
if$msg contains 'IPTABLES' or $programname == 'named'then /var/log/network.log

日志分析工具:

  • grep、awk、jq
  • GoAccess(Nginx 实时分析)
  • journalctl --since "1 hour ago" -u nginx | grep error
  • tcpdump + tshark 脚本化分析

高级:ELK Stack 或 Loki + Grafana 查询:

  • 搜索 tcp reset 或 connection refused
  • 聚合异常 IP 来源

安全日志:

  • Fail2Ban 日志
  • auditd(内核审计)
  • OSSEC / Wazuh

六、生产案例与故障排查流程

案例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 限速或云安全组封禁。
  • 监控:带宽利用率接近 100%。

案例3:DNS 查询延迟:

  • dig +stats + tcpdump port 53 → 缓存命中率低 → 扩大 dnsmasq cache。

标准化排查流程:

  1. 现象描述(症状、时间、影响范围)
  2. 检查接口与路由(ip addr/route)
  3. 查看连接状态(ss)
  4. 抓包分析
  5. 日志搜索
  6. 资源利用率(top、sar)
  7. 内核参数与配置回顾
  8. 根因 + 修复 + 复盘

七、最佳实践与自动化

  • 分层监控:主机 → 网络设备 → 应用 → 业务。
  • 保留策略:原始 pcap 短期保存,指标长期存储。
  • 自动化巡检:Ansible + cron 或 Prometheus rules。
  • 可视化:Grafana 统一大盘,支持 drill-down。
  • 容量规划:基于历史趋势预测带宽/连接增长。
  • 安全监控:异常协议、端口扫描检测。

容器/K8s 扩展:

  • Cilium Hubble(eBPF 网络可视化)
  • Istio 网格监控
  • cAdvisor + kube-state-metrics

最新文章

随机文章