监控虚拟私有云 (VPC) 流日志

编辑

在本节中,您将学习如何监控和分析您通过 Amazon Data Firehose 发送到 Elastic 的 VPC 流日志。您可以选择以下监控选项:

  • Elastic Analytics Discover 功能,用于手动分析数据
  • Elastic 可观测性的异常检测功能,用于识别日志中的异常
  • 开箱即用的仪表盘,用于进一步分析数据
开始之前
编辑

我们假设您已拥有:

  • 使用我们托管的 Elasticsearch 服务在 Elastic Cloud 上的部署。该部署包含一个用于存储和搜索数据的 Elasticsearch 集群,以及一个用于可视化和管理数据的 Kibana。AWS Kinesis Data Firehose 仅适用于 Elastic Stack 7.17 或更高版本,并且仅在 Elastic Cloud 上运行。

确保部署在 AWS 上,因为 Firehose 传输流专门连接到 AWS 上的端点。

  • 一个具有权限从 AWS 拉取必要数据的 AWS 账户。
  • 已为部署应用程序的 VPC 启用了 VPC 流日志,并配置为将数据发送到 Kinesis Data Firehose。
  • 一个 AWS 中的三层 Web 架构,可以从 多个 AWS 服务 中提取指标。
使用 Elastic Analytics Discover 手动分析数据
编辑

在 Elastic Analytics 中,您可以搜索和过滤数据,获取有关字段结构的信息,并在可视化中显示您的发现。您还可以自定义和保存搜索,并将它们放置在仪表盘上。有关更多信息,请查看 Discover 文档。

例如,对于您的 VPC 流日志,您想知道:

  • 接受或拒绝了多少日志
  • 潜在的安全违规事件发生在哪里(来自 VPC 外部的源 IP)
  • 通常查询哪个端口

您可以根据以下内容过滤日志:

  • 传输流名称:AWS-3-TIER-APP-VPC-LOGS
  • VPC 流日志操作:REJECT
  • 时间范围:5 小时
  • VPC 网络接口:Webserver 1 和 Webserver 2 接口

您想查看哪些 IP 地址正在尝试访问您的 Web 服务器。然后,您想了解您从哪些 IP 地址获得最多的 REJECT 操作。您可以展开 source.ip 字段,并快速获得一个细分,显示 185.156.73.54 是过去 3 小时或更长时间内被拒绝次数最多的 IP 地址(您已启用 VPC 流日志)。

IP addresses in Discover

您还可以通过选择 可视化 创建可视化。您将获得以下环形图,可以将其添加到仪表盘中。

Visualization chart in Discover

除了 IP 地址之外,您还想了解 Web 服务器上命中了哪个端口。

如果您选择目标端口字段,则弹出窗口将显示端口 8081 正在被目标。此端口通常用于 Apache Tomcat 的管理。这是一个潜在的安全问题,但是端口 8081 已关闭外部流量,因此出现 REJECT

Destination port in Discover
使用机器学习检测异常
编辑

Elastic 可观测性提供了使用机器学习 (ML) 检测日志异常的功能。要了解有关如何将 ML 分析与日志一起使用的更多信息,请查看 机器学习 文档。您可以选择以下选项:

  • 日志速率:自动检测异常的日志条目速率
  • 分类:自动对日志消息进行分类
Anomalies detection with ML

对于您的 VPC 流日志,您可以启用这两个功能。当您查看为异常日志条目速率检测到的内容时,您将获得以下结果:

Anomalies results with ML

Elastic 检测到在您为应用程序启用 VPC 流日志时日志出现峰值。由于您还从另一个应用程序提取 VPC 流日志,因此正在检测速率变化。

您可以使用 ML 深入了解此异常并进一步分析。

Anomalies explorer in ML

因为您知道存在峰值,所以您还可以使用 Elastic AIOps Labs 解释日志速率峰值的功能。通过对它们进行分组,您可以看到是什么导致了一些峰值。

Spikes in ML
使用 VPC 流日志仪表盘
编辑

Elastic 提供了一个开箱即用的仪表盘,用于显示访问您的 VPC 的前十大 IP 地址、它们的地理位置、流的时间序列以及时间范围内 VPC 流日志拒绝的摘要。

您可以使用在 Discover 中找到的可视化增强此基线仪表盘。

Flow logs dashboard