1

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

我需要的 :

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

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

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

来自这些的日志来源:

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

2 回答 2

2

如果您希望偶尔扫描单个主机上的多个日志文件,那么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/
于 2020-12-01T00:02:41.313 回答
1

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

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

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

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

在安装 docker 之前,我们必须启用 Virtual Private Cloud (VPC),我们将为我们的 docker 容器使用提供的 IP 地址,这样它们就可以相互通信,按照这篇文章

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

我们需要做的就是将 dockerized ELK 克隆到我们的服务器,然后进入克隆的文件夹,并构建 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 中看到日志。

于 2020-05-17T16:27:28.950 回答