监视多个Linux主机上的重要日志文件?

我在AWS上运行了几台服务器,并且使用Nagios / Icinga来监控所有关键服务。

我们试图找出最好的方法来监视system, DB, PHP, Apache, etc所有日志system, DB, PHP, Apache, etc ),以便通过电子邮件立即知道问题(例如,Apache max_clients昨天达到了max_clients阈值)。 我们现在只在服务closures后查看日志,而不是在之前,这是不好的。

我是Linuxpipe理新手,在线search后,我已经确定了以下选项:

  1. Nagios脚本来监视日志 – 问题是大多数一次检查一个特定的正则expression式的日志文件。 为每个日志文件安装一个服务是不可扩展的(我甚至不知道我们必须监视的所有日志文件!)
  2. 像logrobot.com这样的服务 – 我不确定这是多么有效。

感谢您的build议,以最less的configuration在多台服务器上监控所有这些日志的最佳方式。

不知道有多less服务器/日志你必须监视,但有许多解决scheme

小环境

使用rsyslog和你喜欢的前端(例如LogAnalyzer http://loganalyzer.adiscon.com/

更大的环境

我们监视我们的服务器日志从(+300系统)海狸作为logshipper,logstash作为索引器和elasticsearch作为后端。 这个解决scheme扩展到[在这里插入随机数] hosts;)

基本上你不应该(至less不仅仅是)在相同的主机上读取日志,而是使用某种types的日志服务器来集中服务器的所有日志。

我使用这个设置来确保日志在input后不会被修改。

另外只需使用logcheck,让它检查你的日志。

基本上,它检查你认为可以接受的行,可以忽略,只发送你没有告诉logcheck事先忽略的行。

您可以轻松地将其安装在每台服务器上。

对于graphics版本,计算有多less严重日志条目等

logzilla一个不错的select,认为不再是免费的。

我花了几天的时间search(“日志pipe理解决scheme”),我发现了我正在寻找的工具。 以下三个工具是基于云的日志工具,易于设置和configuration。 他们将系统日志和自定义日志发送到服务器,存储它们,让您search和设置正则expression式模式的电子邮件/ webhook警报。

  1. Papertrail – 目前为止最简单/最快捷的界面(如terminal上的tail -f)。 非常实惠的价格也是如此。 但是你必须花一些时间来configuration自定义日志logging(apache,mysql,你的应用程序)。 他们的基于Go的日志托pipe(在今天的Beta版本)内存效率非常高,我可以通过GIT repo部署它必须监视的日志文件。
  2. 日志条目 – 也很简单。 通过他们的“le”守护进程设置自定义日志最容易。 它有很多function,这使得它看起来比起侍者来说更臃肿。 他们的免费计划对于初创公司来说相当广泛。
  3. Loggly – 提供其他两件事的一切,但通过这个过程是相当复杂的。 而他们的免费计划不提供警报。

关于logrobot.com,现在有一个免费版本,它完全符合你的需求,可以在这里下载:

http://www.logxray.com/logxray.zip

要用它来解决你的问题,你可以这样运行logxray:

./logxray localhost:emailing / apps / logxray autonda / var / log / messages 60m'kernel | error | panic | fail''timed out'1 2 -show error_check [email protected]

监视特定目录中的多个日志或特定日志:

./logxray localhost / apps / logxray autoblz / var / log 60m'panic | error''。' 1 1 directory_error_watch -ndfoundn

http://www.logXray.com (有关如何使用该工具的更多信息或文档)