标注的博客| 安全研究| 渗透测试| APT

首页

如何指导现代监控与报警

作者 weah 时间 2020-04-10
all

上下文

在我们的组织(CCIN2P3)中,我们正在构建一个基于事件的基础设施,将结构化消息推送到不同的子系统中,以进行警报、报告和存储。使用syslog ng,每个消息都被规范化为一个结构化事件,可选地与其他消息相关,并有条件地路由到下一个系统,包括:

收集的事件基本上是系统和应用程序日志。以下是一些有趣的消息示例:

puppet-agent[16528]: Finished catalog run in 44.06 secondskernel: Killed process 29959, UID 42046, (hadd) total-vm:202363492kB, anon-rss:13069860kB, file-rss:60kBata2.00: exception Emask 0x0 SAct 0xffff SErr 0x0 action 0x0EXT3-fs error (device dm-1): ext3_journal_start_sb: Detected aborted journal

此管道的统一性使人能够轻松地在所有可用的后端和前端识别事件。

在本文中,您将学习实现此模型的方法,并实现以下目标:

我们将描述您必须更改的配置文件,并解释处理事件的工作流。对于不耐烦的人,我们将在一个简短的录音演示中演示最终结果。

演示

要求

我们假设您对以下工具以及每个工具的运行实例有基本的了解:

工具

下面是我们将要使用的所有工具的列表,以及简短的摘要,以及它们在管道中的主要功能:

在客户机上:

在服务器上:

建筑

为了清楚地说明这一点,我们将选择一个示例:让我们跟踪文件系统的使用情况。collectdf插件收集这些信息。下面是一个描述数据流的图表:您可以从左栏的用户角度跟踪事件在管道(右栏)中的演变过程:

collectd-df

以及细节:

df-tmp/percent_bytes-free 1.9 Notification: severity = FAILURE, host = foo, plugin = df, plugin_instance = tmp, type = df_complex, type_instance = free, message = Host foo, plugin df (instance tmp) type df_complex (instance free): Data source "value" is currently 1.9. That is below the failure threshold of 2.0 collectd foo syslog collectd df tmp percent_bytes free above below 2 1.9

然后,这个结构化事件被路由到syslog ng目的地,在我们的例子中是riemann和elasticsearch。然后,这两个应用程序都可以用来以一种全面的方式查询事件,例如,“向我展示所有关于插件df和实例tmp的已收集通知”

df tmp

配置

由于格式问题,以及有关配置此解决方案组件的详细示例,请参阅以下链接。

结论

在本文中,我们展示了如何将收集的阈值通知消息发送到中央syslog ng服务器,以及如何从中提取数字度量信息。我们还演示了如何将结果路由到两个后端,一个后端可用于实时查看数据(riemann),另一个后端可用于查询历史数据(elasticsearch)。该系统可以通过多种方式进行扩展,例如:

配置文件

柏油球

这是shell会话处理这些配置文件的脚本。

链接到全文,包括github上的配置

特色电子书

多云世界中的DevOps:IBM Z上的云本机开发体验

虽然像持续交付和持续部署这样的策略对于大型机开发来说是非常可能的,而且是明智的,但是将它们应用到大型机基础设施有时需要进行文化变革,以确保每个人都能加入敏捷发布的行列。这些都是可以解决的挑战,而且必须。。。阅读更多