Logstash Netflow 模块编辑

在 7.4.0 中已弃用。

Filebeat Netflow 模块 替换,该模块符合 Elastic Common Schema (ECS)

Logstash Netflow 模块简化了网络流量数据的收集、规范化和可视化。使用单个命令,该模块可以解析网络流量数据,将事件索引到 Elasticsearch,并安装一套 Kibana 仪表板,让您立即开始探索数据。

Logstash 模块支持 Netflow 版本 5 和 9。

什么是流量数据?编辑

Netflow 是一种从支持的网络设备流式传输的数据记录类型。它包含有关通过设备的连接的信息,包括源 IP 地址和端口、目标 IP 地址和端口、服务类型、VLAN 以及可以编码到帧和协议标头中的其他信息。使用 Netflow 数据,网络运营商可以超越简单地监控通过其网络的数据量。他们可以了解流量的来源、去向以及它属于哪些服务或应用程序。

要求编辑

这些说明假设您已经安装了 Elastic Stack(Logstash、Elasticsearch 和 Kibana)版本 5.6 或更高版本。您需要的产品 可供下载,并且易于安装。

入门编辑

Logstash Netflow 模块已被弃用,并由 Filebeat Netflow 模块 替换,该模块符合 Elastic Common Schema (ECS).

  1. 通过在 Logstash 安装目录中运行以下命令来启动 Logstash Netflow 模块

    bin/logstash --modules netflow --setup -M netflow.var.input.udp.port=NNNN

    其中 NNNN 是 Logstash 将监听网络流量数据的 UDP 端口。如果您未指定端口,Logstash 默认监听端口 2055。

    --modules netflow 选项启动用于摄取的 Netflow 感知 Logstash 管道。

    --setup 选项在 Elasticsearch 中创建一个 netflow-* 索引模式,并导入 Kibana 仪表板和可视化。运行 --setup 是一个一次性设置步骤。在后续运行模块时省略此选项,以避免覆盖现有的 Kibana 仪表板。

    此处显示的命令假设您在本地主机上运行 Elasticsearch 和 Kibana。如果不是,则需要指定其他连接选项。请参阅 配置模块

  2. 在 Kibana 中探索您的数据

    1. 打开您的浏览器并导航到 https://127.0.0.1:5601。如果启用了安全性,您需要指定在设置安全性时使用的 Kibana 用户名和密码。
    2. 打开 Netflow:网络概览仪表板
    3. 请参阅 探索您的数据,以获取有关数据探索的更多详细信息。

探索您的数据编辑

Logstash Netflow 模块开始处理事件后,您可以立即开始使用打包的 Kibana 仪表板来探索和可视化您的网络流量数据。

您可以按原样使用这些仪表板,也可以根据现有用例和业务需求对其进行调整。

示例仪表板编辑

概览 仪表板上,您可以看到基本流量数据的摘要,并在深入了解数据之前设置过滤器。

Netflow overview dashboard

例如,在 会话合作伙伴 仪表板上,您可以看到任何会话中客户端和服务器的源地址和目标地址。

Netflow conversation partners dashboard

流量分析 仪表板上,您可以通过查看流量量(以字节为单位)来识别高流量会话。

Netflow traffic analysis dashboard

然后,您可以转到 地理位置 仪表板,在该仪表板上,您可以将目标和来源的位置可视化为热图。

Netflow geo location dashboard

配置模块编辑

您可以通过在 logstash.yml 设置文件中指定设置或在命令行中覆盖设置来进一步优化 Logstash Netflow 模块的行为。

例如,logstash.yml 文件中的以下配置将 Logstash 设置为监听端口 9996 以获取网络流量数据

modules:
  - name: netflow
    var.input.udp.port: 9996

要在命令行中指定相同的设置,请使用

bin/logstash --modules netflow -M netflow.var.input.udp.port=9996

有关配置模块的更多信息,请参阅 使用 Logstash 模块

配置选项编辑

Netflow 模块提供以下设置来配置模块的行为。这些设置包括 Netflow 特定的选项以及所有 Logstash 模块支持的通用选项。

在命令行中覆盖设置时,请记住在设置前添加模块名称,例如 netflow.var.input.udp.port 而不是 var.input.udp.port

如果您未指定配置设置,Logstash 将使用默认值。

Netflow 选项

var.input.udp.port
  • 值类型为 数字
  • 默认值为 2055。

设置 Logstash 监听网络流量数据的 UDP 端口。尽管 2055 是此设置的默认值,但某些设备使用 9995 到 9998 范围内的端口,其中 9996 是最常用的备用端口。

var.input.udp.workers
  • 值类型为 数字
  • 默认值为 2。

处理数据包的线程数。

var.input.udp.receive_buffer_bytes
  • 值类型为 数字
  • 默认值为 212992。

套接字接收缓冲区大小(以字节为单位)。如果 receive_buffer_bytes 大于允许的值,操作系统将使用允许的最大值。如果您需要增加此允许的最大值,请咨询您的操作系统文档。

var.input.udp.queue_size
  • 值类型为 数字
  • 默认值为 2000。

这是您可以在内存中保存的未处理 UDP 数据包的数量,超过此数量,数据包将开始丢失。

通用选项

以下配置选项由所有模块支持

var.elasticsearch.hosts
  • 值类型为 URI
  • 默认值为 "localhost:9200"

设置 Elasticsearch 集群的主机。对于每个主机,您必须指定主机名和端口。例如,"myhost:9200"。如果给定一个 数组,Logstash 将在 hosts 参数中指定的主机之间负载均衡请求。重要的是要从 hosts 列表中排除 专用主节点,以防止 Logstash 向主节点发送批量请求。因此,此参数应仅引用 Elasticsearch 中的数据节点或客户端节点。

此处 URL 中存在的任何特殊字符都必须进行 URL 编码!这意味着 # 应该被放入 %23 中,例如。

var.elasticsearch.username
  • 值类型为 字符串
  • 默认值为 "elastic"

用于向安全的 Elasticsearch 集群进行身份验证的用户名。

var.elasticsearch.password
  • 值类型为 字符串
  • 默认值为 "changeme"

用于向安全的 Elasticsearch 集群进行身份验证的密码。

var.elasticsearch.ssl.enabled
  • 值类型为 布尔值
  • 此设置没有默认值。

启用与 Elasticsearch 集群的安全 SSL/TLS 通信。如果未指定,将使用在 hosts 中列出的 URL 中指定的任何方案。如果未指定显式协议,将使用纯 HTTP。如果在此处显式禁用 SSL,则如果在 hosts 中给出了 HTTPS URL,插件将拒绝启动。

var.elasticsearch.ssl.verification_mode
  • 值类型为 字符串
  • 默认值为 "strict"

与 Elasticsearch 通信时的主机名验证设置。设置为 disable 以关闭主机名验证。禁用此功能存在严重的安全问题。

var.elasticsearch.ssl.certificate_authority
  • 值类型为 字符串
  • 此设置没有默认值

用于验证与 Elasticsearch 通信时 SSL 证书的 X.509 证书的路径。

var.elasticsearch.ssl.certificate
  • 值类型为 字符串
  • 此设置没有默认值

用于在与 Elasticsearch 通信时进行客户端身份验证的 X.509 证书的路径。

var.elasticsearch.ssl.key
  • 值类型为 字符串
  • 此设置没有默认值

用于在与 Elasticsearch 通信时进行客户端身份验证的证书密钥的路径。

var.kibana.host
  • 值类型为 字符串
  • 默认值为 "localhost:5601"

设置用于导入仪表板和可视化的 Kibana 实例的主机名和端口。例如:"myhost:5601"。

var.kibana.scheme

设置用于访问 Kibana 实例的协议。选项包括:"http" 或 "https"。默认值为 "http"。

var.kibana.username
  • 值类型为 字符串
  • 默认值为 "elastic"

用于向受保护的 Kibana 实例进行身份验证的用户名。

var.kibana.password
  • 值类型为 字符串
  • 默认值为 "changeme"

用于向安全的 Kibana 实例进行身份验证的密码。

var.kibana.ssl.enabled

启用与 Kibana 实例的安全 SSL/TLS 通信。

var.kibana.ssl.verification_mode
  • 值类型为 字符串
  • 默认值为 "strict"

与 Kibana 通信时的主机名验证设置。设置为 disable 以关闭主机名验证。禁用此功能存在严重的安全问题。

var.kibana.ssl.certificate_authority
  • 值类型为 字符串
  • 此设置没有默认值

用于验证与 Kibana 通信时 SSL 证书的 X.509 证书的路径。

var.kibana.ssl.certificate
  • 值类型为 字符串
  • 此设置没有默认值

用于在与 Kibana 通信时进行客户端身份验证的 X.509 证书的路径。

var.kibana.ssl.key
  • 值类型为 字符串
  • 此设置没有默认值

与 Kibana 通信时用于客户端身份验证的证书密钥路径。