Logstash Netflow 模块

编辑

在 7.4.0 中已弃用。

已由 Filebeat Netflow 模块 替换,该模块符合 Elastic 通用架构 (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 通用架构 (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 参数中指定的主机之间负载均衡请求。务必从主机列表中排除 专用主节点,以防止 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 通信时用于客户端身份验证的证书密钥路径。