使用 Splunk 监控 AWS 服务状态
Monitor AWS Service Status using Splunk
问题
- 对 AWS 服务状态的依赖
如果您依赖亚马逊AWS服务进行运营,您需要密切关注他们的服务状态。 Amazon 使用网站 http://status.aws.amazon.com/,它提供指向特定地区特定服务的 RSS 提要的链接。
- 潜在错误
我们的服务使用 S3、CloudFront 和其他服务来运行。我们希望了解在运行期间可能出现故障的任何服务,并在出现问题时自动执行我们应该做的事情。
- Splunk 日志记录
我们使用 Splunk 来记录我们所有的服务。
要求
例如,如果应用程序在写入 S3 时出现错误,我们想知道这是否是由 AWS 中的潜在中断引起的。
- 如何在 Splunk 中监控状态 RSS 提要?
- 是否有 HTTP 客户端?后台服务?
解决方案
- 您可以使用 Syndication Input 应用程序从 AWS Status 收集 RSS 源数据
- 创建一个查询,以获取有错误的 RSS 项并存储在
syndication
源类型下的 Splunk 索引中。
- 根据查询创建警报,一个
since
字段,以便我们可以随时间调整警报。
如何
请您的 Splunk 团队在您需要的环境中安装应用程序“Syndication Input”。
之后,只需收集所需的每个 RSS 提要并将它们添加到 Settings -> Data Input -> Syndication Feed
。从 Amazon Status RSS 提要中获取所有 URL,并将它们用作 Splunk 数据输入,以一定间隔填写表格:
完成后,聚合应用程序将具有以下内容:
在发生错误时使用搜索,调整“开始”日期,以便您可以为结果创建警报。为了显示目的,我添加了过去的一天。
since
应该是您开始监控 AWS 的某个开始日。当 Amazon 发布从文本 Informational message:
. 捕获的新错误时,这有助于查询产生任何新事件
- 查询不应 return 任何新内容,因为 since 不会 return 任何日期。
- 由于标记
RESOLVED
附加到新的 RSS 提要项目,我们将它们从警报中排除。
.
sourcetype=syndication "Informational message:" NOT "RESOLVED"
| eval since=strptime("2010-08-01", "%Y-%m-%d")
| eval date=strptime(published_parsed, "%Y-%m-%dT%H:%M:%SZ")
| rex field=summary_detail_base "rss\/(?<aws_object>.*).rss$"
| where date > since
| table aws_object, published_parsed, id, title, summary
| sort -published_parsed
- 使用查询创建警报。例如,发送电子邮件:
问题
- 对 AWS 服务状态的依赖
如果您依赖亚马逊AWS服务进行运营,您需要密切关注他们的服务状态。 Amazon 使用网站 http://status.aws.amazon.com/,它提供指向特定地区特定服务的 RSS 提要的链接。
- 潜在错误
我们的服务使用 S3、CloudFront 和其他服务来运行。我们希望了解在运行期间可能出现故障的任何服务,并在出现问题时自动执行我们应该做的事情。
- Splunk 日志记录
我们使用 Splunk 来记录我们所有的服务。
要求
例如,如果应用程序在写入 S3 时出现错误,我们想知道这是否是由 AWS 中的潜在中断引起的。
- 如何在 Splunk 中监控状态 RSS 提要?
- 是否有 HTTP 客户端?后台服务?
解决方案
- 您可以使用 Syndication Input 应用程序从 AWS Status 收集 RSS 源数据
- 创建一个查询,以获取有错误的 RSS 项并存储在
syndication
源类型下的 Splunk 索引中。 - 根据查询创建警报,一个
since
字段,以便我们可以随时间调整警报。
如何
请您的 Splunk 团队在您需要的环境中安装应用程序“Syndication Input”。
之后,只需收集所需的每个 RSS 提要并将它们添加到
Settings -> Data Input -> Syndication Feed
。从 Amazon Status RSS 提要中获取所有 URL,并将它们用作 Splunk 数据输入,以一定间隔填写表格:
完成后,聚合应用程序将具有以下内容:
在发生错误时使用搜索,调整“开始”日期,以便您可以为结果创建警报。为了显示目的,我添加了过去的一天。
since
应该是您开始监控 AWS 的某个开始日。当 Amazon 发布从文本Informational message:
. 捕获的新错误时,这有助于查询产生任何新事件
- 查询不应 return 任何新内容,因为 since 不会 return 任何日期。
- 由于标记
RESOLVED
附加到新的 RSS 提要项目,我们将它们从警报中排除。
.
sourcetype=syndication "Informational message:" NOT "RESOLVED"
| eval since=strptime("2010-08-01", "%Y-%m-%d")
| eval date=strptime(published_parsed, "%Y-%m-%dT%H:%M:%SZ")
| rex field=summary_detail_base "rss\/(?<aws_object>.*).rss$"
| where date > since
| table aws_object, published_parsed, id, title, summary
| sort -published_parsed
- 使用查询创建警报。例如,发送电子邮件: