首页主机资讯Debian下Filebeat如何监控网络

Debian下Filebeat如何监控网络

时间2025-11-24 11:10:04发布访客分类主机资讯浏览824
导读:Debian下使用 Filebeat 进行网络监控的正确路径 一、先明确监控目标与工具边界 Filebeat 的定位是“日志/指标收集与转发”,本身不直接抓包。要做“网络流量”层面的可观测,通常有三种做法: 让 Packetbeat(E...

Debian下使用 Filebeat 进行网络监控的正确路径

一、先明确监控目标与工具边界

  • Filebeat 的定位是“日志/指标收集与转发”,本身不直接抓包。要做“网络流量”层面的可观测,通常有三种做法:
    1. Packetbeat(Elastic 的专用网络抓包器)采集网络层/传输层流量,再由 Filebeat 转发到 Elasticsearch/Kibana
    2. 收集系统/应用产生的“网络相关日志”(如 iptables/nftables 日志、Nginx/HAProxy 访问日志),用 Filebeat 模块或自定义输入读取;
    3. 若目标是“网络性能指标/连接状态”,使用 system 模块采集 TCP/UDP 连接、重传等指标,而非抓包。
  • 因此,若你确实需要“抓包级”的可视化与统计,请部署并启用 Packetbeat;Filebeat 负责采集与输出,不负责原始流量抓取。

二、方案一 Packetbeat 抓包并由 Filebeat 转发(抓包级监控)

  • 安装 Filebeat(示例为 7.x 仓库,请与集群版本匹配):
    • sudo apt update & & sudo apt install filebeat -y
  • 安装并启用 Packetbeat(与 Filebeat 版本保持一致):
    • sudo apt install packetbeat -y
  • 启用并配置 Packetbeat(示例:抓取常见服务端口,输出到本机 Logstash/Elasticsearch)
    • 启用模块:sudo filebeat modules enable packetbeat
    • 编辑模块配置:sudo nano /etc/filebeat/modules.d/packetbeat.yml
      • 配置网络接口:例如 interfaces.device: any(生产环境建议指定具体网卡,如 eth0
      • 配置协议与端口:在 protocols 下启用 dns、http、tls、icmp、mysql、postgresql、redis、thrift 等,并设置对应的 ports
      • 示例(仅示意):
        • protocols:
          • dns: ports: [53]
          • http: ports: [80, 8080, 8000, 5000, 5601]
          • tls: ports: [443, 8443]
    • 配置输出(二选一或同时配置)
      • 输出到 Logstash(推荐做解析与丰富):
        • output.logstash:
          • hosts: [“localhost:5044”]
      • 直接输出到 Elasticsearch(需开启安全时补充认证):
        • output.elasticsearch:
          • hosts: [“localhost:9200”]
    • 启动服务:
      • sudo systemctl enable --now packetbeat
      • sudo systemctl enable --now filebeat
  • 验证与可视化
    • 查看服务状态:sudo systemctl status packetbeat filebeat
    • 查看日志:sudo journalctl -u packetbeat -f
    • KibanaDiscover/仪表板 中查看 Packetbeat 自带的可视化与指标(如 DNS 查询、HTTP 请求时延、TLS 握手失败等)。

三、方案二 收集网络相关日志(无需抓包)

  • 场景 A:采集 iptables/nftables 日志
    • 配置规则将日志写入文件(如 /var/log/iptables.log),确保 rsyslog 对该文件具备读取权限
    • Filebeat 输入示例(/etc/filebeat/filebeat.yml):
      • filebeat.inputs:
        • type: log enabled: true paths:
          • /var/log/iptables.log fields: log_type: firewall
      • processors:
        • dissect: tokenizer: “%{ timestamp} %{ host} %{ chain} %{ rule} %{ src_ip} :%{ src_port} -> %{ dst_ip} :%{ dst_port} %{ protocol} %{ action} ” field: “message” target_prefix: “fw”
    • 输出到 Elasticsearch 或 Logstash(同上)
  • 场景 B:采集 Nginx/HAProxy 访问日志
    • 启用对应模块并指向日志路径:
      • sudo filebeat modules enable nginx
      • sudo nano /etc/filebeat/modules.d/nginx.yml(设置 access.logerror.log 路径)
    • 输出到 Elasticsearch 或 Logstash(同上)
  • 启动与验证
    • sudo systemctl enable --now filebeat
    • 在 Kibana 中查看 Discover 与模块仪表板(如 Nginx 访问统计、状态码分布等)。

四、方案三 采集系统网络指标(连接/重传等)

  • 启用 system 模块 获取 TCP/UDP 连接、重传、套接字等指标:
    • sudo filebeat modules enable system
    • sudo nano /etc/filebeat/modules.d/system.yml(可按需开启 metrics.enabled: true
  • 输出到 Elasticsearch 或 Logstash(同上)
  • 在 Kibana 中查看 Metrics/仪表板 的系统网络指标视图。

五、排错与优化要点

  • 版本匹配:Filebeat、Packetbeat、Elasticsearch、Kibana 版本需一致或兼容
  • 权限与能力:
    • 抓包需要特权,确保 Packetbeat 以具备 CAP_NET_RAW 能力的用户运行(常见做法是 root 或 setcap)
    • 日志读取需保证 Filebeat 对日志文件有 读权限(如加入 adm 组或调整权限)
  • 资源与性能:
    • 抓包会带来 CPU/内存/磁盘 I/O 开销,生产环境建议限定网卡、采样或 BPF 过滤表达式
    • 合理设置 bulk_max_size、worker、queue.mem.events 等输出参数,避免堆积
  • 安全与网络:
    • 开启 TLS 加密与 认证(xpack.security.enabled: true 时)
    • 防火墙放行 Logstash/Elasticsearch 端口(如 504492005601
  • 配置校验与热加载:
    • 校验配置:sudo filebeat test config -e
    • 查看日志:sudo journalctl -u filebeat -f 或 tail -f /var/log/filebeat/filebeat

以上路径可覆盖“抓包级流量”“网络日志”“系统网络指标”三大类需求:需要“流量内容/协议分析”时选 Packetbeat;需要“访问/安全事件审计”时选“日志收集”;需要“连接/重传等性能指标”时选“system 模块”。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian下Filebeat如何监控网络
本文地址: https://pptw.com/jishu/754261.html
SQL Server在CentOS运行稳定吗 CentOS如何提升SQL Server效率

游客 回复需填写必要信息