繁体   English   中英

监控多个日志文件的最佳方式

[英]Best way of monitoring multiple log files

我需要知道什么是监控适合我需要的多个日志文件的最佳工具。

我需要的:

  • 一次发送和监控多个日志文件
  • 支持实时查看
  • 尽可能更好的图形用户界面
  • 能够搜索或过滤日志
  • 尽可能以最小的努力进行设置

我收集了一些工具,它们是:

  1. multitail ,一个简单的多日志文件查看器,但我更喜欢更好的图形用户界面
  2. lnav ,就像multitail,但我不知道两者之间的优缺点是什么
  3. FrontTail ,我觉得这个比前两个好多了
  4. GrayLog ,我用过一次,它有很好的搜索或过滤功能,但它是有人设置的,不确定设置是否复杂
  5. LogStash ,我从来没用过,但是很多人都说很好用,但是设置方便吗?

来自这些的日志来源:

  • gridpane.com 日志
  • nginx访问日志
  • nginx 错误日志
  • PHP 错误日志
  • MySQL查询日志
  • MySQL 错误日志

如果您希望偶尔扫描单个主机上的多个日志文件,那么lnav应该可以正常工作。

  • 一次发送和监控多个日志文件

lnav 直接处理主机上的日志文件,它不是消费文件的服务。 它还能够一次监控多个日志并将消息整理到一个视图中。 (注意:@xav 上面有一条评论说 lnav 不解析文件,这是不正确的,我不知道他们从哪里得到这种印象。)

  • 支持实时查看

lnav 在大多数操作中以“实时”方式工作。 它总是轮询文件以获取新数据。 例如,如果有一个搜索活动,任何新数据都将在加载时进行搜索。

  • 尽可能更好的图形用户界面

lnav 是一个基于文本的用户界面,但它仍然相当友好 有在线帮助、制表符补全、语法高亮、命令预览等。

  • 能够搜索或过滤日志

可以使用与 perl 兼容的正则表达式 (PCRE)、时间和/或日志级别来搜索和过滤日志。 加载新数据时会自动应用过滤器。 下一个版本 v0.9.1 将使用 SQL 表达式进行过滤。

您还可以使用 SQLite SQL 来分析日志消息。 例如,如果您想查找从 Apache web 访问日志中传输的最大字节的 URI,您可以执行:

SELECT cs_uri_stem, max(sc_bytes) AS max_bytes
   FROM access_log
   GROUP BY cs_uri_stem
   ORDER BY max_bytes desc
  • 尽可能以最小的努力进行设置

lnav 有 几种内置的日志格式,并且会自动检测给定日志文件的正确格式。 如果不支持格式, 您可以编写描述格式的 JSON 文件 使用 lnav 几乎总是只需要运行:

$ lnav /path/to/logs/

我终于找到了适合我需要的那个。

如果有人想使用相同的解决方案,我会分享这个。

感谢sourav19 ,我听从了你的建议,尽管我花了 8-10 个小时来安装和配置所有东西,但这确实是我想要的。

我不得不购买一个 Digital Ocean droplet,花了我 20 美元才能获得 4 GB 的 RAM,但我认为它比购买其他过于昂贵的日志监控应用程序便宜得多。

在安装 docker 之前,我们必须启用虚拟私有云 (VPC),我们将为我们的 docker 容器使用提供的IP地址,以便它们可以相互通信。

我使用了一个 dockerized ELK,链接在这里

我们需要做的就是将 dockerized ELK 克隆到我们的服务器,然后在克隆的文件夹中创建 go,然后构建 Dockerfile

docker run -p 5601:5601 -p 9200:9200  -p 5044:5044 \
-v /var/log:/var/lib/elasticsearch --name elk sebp/elk

然后,打开kibana,在网站上, HTTP://your_site:5601

之后,将 Filebeat 安装到具有您要监视的日志文件的另一台服务器上,该 Filebeat 将按照此说明将日志发送到 Kibana,然后在此处进行配置。

如果一切正常,我们将在 Kibana 中看到日志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM