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

编辑

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

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

我们假设您已经拥有:

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

确保部署在 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 在您打开 VPC 流日志的最近 3 个或更多小时内被拒绝的次数最多。

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

当您为应用程序打开 VPC 流日志时,Elastic 检测到日志中的峰值。检测到速率变化是因为您还从另一个应用程序提取 VPC 流日志。

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

Anomalies explorer in ML

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

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

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

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

Flow logs dashboard