如何通过Ubuntu日志监控网络流量
导读:Ubuntu日志监控网络流量的实用方案 一 核心思路 通过 iptables 日志把经过防火墙的数据包写入系统日志(如 /var/log/syslog 或 journalctl),再用 grep/awk/sed 或 ELK/Splunk...
Ubuntu日志监控网络流量的实用方案
一 核心思路
- 通过 iptables 日志把经过防火墙的数据包写入系统日志(如 /var/log/syslog 或 journalctl),再用 grep/awk/sed 或 ELK/Splunk 做统计、告警与可视化。
- 对 Web 服务,结合 Apache/Nginx 访问日志与 Webalizer 等工具,按 URL/来源IP/状态码分析流量特征。
- 对 历史趋势,启用 vnStat 记录接口总流量,用 sar(sysstat)查看历史接口统计,便于容量评估与对比分析。
二 基于 iptables 的日志监控
- 配置日志规则(示例:记录被丢弃的数据包,限速避免日志风暴)
- 新建日志链并限速:
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP
- 新建日志链并限速:
- 查看日志
- 使用 journalctl:journalctl -k | grep “IPTables-Dropped”
- 使用 syslog:tail -f /var/log/syslog | grep “IPTables-Dropped”
- 快速分析示例
- 统计被丢弃的来源 IP 排行:
grep “IPTables-Dropped” /var/log/syslog | awk ‘{ print $11} ’ | sort | uniq -c | sort -nr
- 统计被丢弃的来源 IP 排行:
- 日志轮转与容量控制
- 使用 logrotate 管理 /var/log/syslog 等日志文件大小与保留周期,防止磁盘被占满。
三 应用层与历史趋势的日志化监控
- Web 访问日志分析(Apache 示例)
- 安装与运行:sudo apt-get install webalizer
sudo webalizer /var/log/apache2/access.log.1 - 可结合 vnStat 观察接口层面的历史总流量:sudo apt-get install vnstat;vnStat -i eth0(接口名按实际替换)。
- 安装与运行:sudo apt-get install webalizer
- 历史接口统计(sar)
- 安装与查看:sudo apt-get install sysstat
sar -n DEV -f /var/log/sa/saXX(XX 为具体日期,如 sa10 表示当月 10 日的数据)。
- 安装与查看:sudo apt-get install sysstat
四 实时排查与取证工具
- 实时按连接/带宽:sudo apt-get install iftop;sudo iftop -i eth0
- 实时按进程:sudo apt-get install nethogs;sudo nethogs
- 抓包取证:sudo apt-get install tcpdump;sudo tcpdump -i eth0 -nn
- 图形化协议分析:sudo apt-get install wireshark;wireshark
以上工具适合定位突发流量、异常连接与可疑主机,与基于日志的统计互补。
五 告警与可视化落地
- 轻量方案:用 shell + cron 定期分析 /var/log/syslog 中的 iptables 日志,当发现异常(如某 IP 短时间内大量被丢弃)时触发邮件或企业微信/钉钉 Webhook。
- 平台化方案:将 syslog 或 journald 输出接入 ELK Stack(Elasticsearch + Logstash + Kibana) 或 Splunk,构建仪表盘、设置阈值告警,实现跨主机、多维度的流量与威胁可视化。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过Ubuntu日志监控网络流量
本文地址: https://pptw.com/jishu/763439.html
