监视多个日志文件的最佳方法

时间:2020-05-16 20:53:13

标签: logging logfile log-viewer

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

我需要什么:

  • 一次发送和监视多个日志文件
  • 支持实时查看
  • 尽可能使用更好的图形用户界面
  • 能够搜索或过滤日志
  • 尽可能轻松地进行设置

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

  1. multitail,一个简单的多个日志文件查看器,但我更喜欢一个更好的图形用户界面
  2. lnav,就像多重尾巴,但我不知道两者之间的优缺点
  3. FrontTail,我认为这比前两个要好
  4. GrayLog,我已经使用过一次,它具有出色的搜索或过滤功能,但是它是由某人设置的,不确定设置是否复杂
  5. LogStash,我从没使用过,但是很多人说它很棒,但是设置容易吗?

这些日志的来源:

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

2 个答案:

答案 0 :(得分:1)

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

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

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

  • 支持实时查看

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

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

lnav是基于文本的用户界面,但仍为quite friendly。有在线帮助,制表符完成,语法突出显示,命令预览等。

  • 能够搜索或过滤日志

可以使用与Perl兼容的正则表达式(PCRE),时间和/或日志级别来搜索日志并filtered。加载新数据后,过滤器将自动应用。下一版本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具有several log formats builtin,它将自动检测给定日志文件的正确格式。如果不支持格式,请you can write a JSON file that describes the format。使用lnav几乎总是要运行:

$ lnav /path/to/logs/

答案 1 :(得分:0)

我终于找到了适合自己需求的产品。

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

由于sourav19,尽管我花了8到10个小时来安装和配置所有内容,但我还是遵循了您的建议,但这确实是我想要的。

我必须购买Digital Ocean液滴,才能获得20美元才能获得4 GB的RAM,但我认为这比购买其他价格昂贵的日志监视应用程序要便宜得多。

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

我使用了dockerized ELK,链接为here

我们需要做的就是将dockerized ELK克隆到我们的服务器,然后进入克隆的文件夹,并构建Dockerfile

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

然后在网站HTTP://your_site:5601

中打开kibana

然后,将Filebeat安装到要监视其日志文件的另一台服务器上,此Filebeat将遵循以下instructions将日志发送到Kibana,然后对其进行配置here

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

相关问题