linux – 大规模记录传输和聚合

linux – 大规模记录传输和聚合,第1张

概述你是如何分析UNIX / Linux机器上的日志文件的?我们运行数百台服务器,它们都直接或通过syslog生成自己的日志文件.我正在寻找一个合适的解决方案来聚合这些并挑选重要事件.这个问题分为3个部分: 1)消息传输 经典的方法是使用syslog将消息记录到远程主机.这适用于登录syslog的应用程序,但对写入本地文件的应用程序不太有用.解决方案可能包括让应用程序登录到连接到程序的FIFO以使用s 你是如何分析UNIX / Linux机器上的日志文件的?我们运行数百台服务器,它们都直接或通过syslog生成自己的日志文件.我正在寻找一个合适的解决方案来聚合这些并挑选重要事件.这个问题分为3个部分:

1)消息传输

经典的方法是使用syslog将消息记录到远程主机.这适用于登录syslog的应用程序,但对写入本地文件的应用程序不太有用.解决方案可能包括让应用程序登录到连接到程序的FIFO以使用syslog发送消息,或者编写将grep本地文件并将输出发送到中央syslog主机的内容.但是,如果我们遇到编写工具以将消息输入syslog的麻烦,我们会更好地用Facebook的Scribe替换整个批次,它提供比syslog更多的灵活性和可靠性吗?

2)消息聚合

日志条目似乎分为两种类型之一:per-host和per-service.每主机消息是在一台机器上发生的消息;认为磁盘故障或可疑登录.每个服务消息发生在运行服务的大多数或所有主机上.例如,我们想知道Apache何时发现SSI错误但我们不希望100台机器出现相同的错误.在所有情况下,我们只希望看到每种类型的消息中的一种:我们不希望10条消息说同一磁盘发生故障,并且每次遇到损坏的SSI时我们都不希望发出消息.

解决此问题的一种方法是在每个主机上将相同类型的多个消息聚合为一个,将消息发送到中央服务器,然后将相同类型的消息聚合到一个整体事件中. SER可以做到这一点,但使用起来很尴尬.即使经过几天的摆弄,我只有基本的聚合工作,不得不经常查找SER用于关联事件的逻辑.它是强大但棘手的东西:我需要一些我的同事可以在最短的时间内拿起并使用的东西. SER规则不符合该要求.

3)生成警报

当有趣的事情发生时,我们如何告诉我们的管理员?邮寄群组收件箱?注入Nagios?

那么,你是如何解决这个问题的呢?我不希望在盘子上找到答案;我自己可以弄清楚细节,但是对于什么是一个常见问题的一些高级别讨论会很棒.目前我们正在使用cron job的cishmash,syslog以及谁知道还有什么可以找到事件.这不是可扩展的,可维护的或灵活的,因此我们错过了很多我们不应该做的事情.

更新:我们已经使用Nagios进行监控,这对于检测到的主机/测试服务/等非常有用,但对于抓取日志文件则不太有用.我知道有Nagios的日志插件,但我对比每个主机警报更具可扩展性和层次性的东西感兴趣.

解决方法 我使用了三种不同的系统来集中日志:

> Syslog / syslog-ng转发到一个主机
> Zenoss用于聚合和提醒事件
> Splunk用于日志聚合和搜索

对于#3,我通常使用syslog-ng将来自每个主机的消息直接转发到splunk.它也可以直接解析日志文件,但这可能有点痛苦.

Splunk非常适合搜索和分类日志.我没有使用splunk进行日志警报,但我认为这是可能的.

总结

以上是内存溢出为你收集整理的linux – 大规模记录传输和聚合全部内容,希望文章能够帮你解决linux – 大规模记录传输和聚合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1045521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存