日志的实时仪表板

时间:2014-07-11 22:09:39

标签: python logging nginx infrastructure

我们有许多Python服务,其中许多使用Nginx作为反向代理。现在,我们通过拖尾/var/log/nginx/access.log中的日志来实时检查请求。我想让这些日志在网络服务器上公开可读,因此人们不必将SSH连接到单独的计算机上。

我们当前的基础设施已经流畅(一种类似于logstash I' m告诉的工具)将日志发送到集中式统计服务器,该服务器安装了Elasticsearch和kibana,其想法是kibana将作为查看的前端我们的日志。

我对这些服务一无所知。如果我想实时查看我们的日志,这个堆栈是否可行? Elasticsearch可以提供仅仅第二次延迟的实时数据吗?当新的日志数据进入时,kibana是否具有自动更新页面的开箱即用功能(即,它是否与elasticsearch有套接字连接?或者我是否属于错误的工具集?

2 个答案:

答案 0 :(得分:1)

Kibana只是弹性搜索的界面。它直接将与弹性搜索进行对话,因此其上的数据与您提供给elasticsearch 的数据一样实时。换句话说,它只有你的收藏家(在你的情况下流利)。

它的工作原理是让您定义时间序列,用于从弹性搜索中查询数据,然后您可以让它始终搜索关键字,然后可视化该数据。

如果通过"实时"你的意思是你希望图形移动/动画 - 这也是可能的(它被称为"流式仪表板");但这不是kibana的真正力量 - 真正的力量是一个非常丰富的查询引擎,深入到时间序列,进行计算(在y期间的顶部x)。

如果你想要的只是一个很好的视觉/移动的东西放在墙上电视 - 这是可能的kibana,但请记住,你必须将所有内容存储在elasticsearch中,所以除非你打算做其他一些分析,你必须调整你的配置。例如,对于消息具有非常短的TTL,因此一旦它们可视化,它们就不再可用;或过滤流利,只发送您想要绘制的事件。否则,您将遇到磁盘空间问题。

如果这就是你想要的一切,那么抓住一些javascript图表库并在你的门户中使用它会更容易。

答案 1 :(得分:1)

我有" access.log(或其他日志) - logstash(或其他ES索引器) - Kibana"管道设置为许多服务和日志,它运作良好。在我们的情况下,它有超过一秒的延迟,但这是因为日志或ES索引器中的缓冲,而不是因为Kibana / ES本身。

您可以将Kibana设置为仅显示最后X分钟的数据并每隔Y秒刷新一次,从而获得不错的实时感觉 - 并且在电视上看起来不错;)

请记住,Kibana有时会发出非常糟糕的查询,这会导致您的ES群集崩溃(尽管在最新的ES和Kibana版本中这似乎有很大的改进),所以不要依赖它作为您的永久数据存储日志,并且不要与具有更强HA要求的应用共享您用于Kibana的ES群集。

正如Burhan Khalid指出的那样,这种设置还使我们能够深入细分并研究细节中的特定模式,这是非常有用的("这个图表上的这个峰值是什么?" - 放大,添加几个过滤器,查看一些示例日志行,再次过滤 - 神秘解决)。我认为,当我们看到奇怪的东西时,我们不必去其他地方挖掘更多细节,这实际上是解决方案的最佳部分。