Logstash Shipper和Logstash Indexer在ELK堆栈中的作用是什么?

Moo*_*ose 3 elastic-stack

我一直在网上学习关于ELK堆栈的新项目.

虽然大多数科技博客都是关于如何设置ELK的.

虽然我需要更多信息.

  1. 什么是Logstash?此外,Logstash发货人和索引器.
  2. Elasticsearch的角色是什么?

如果不是正确的答案,任何线索也将受到赞赏.

her*_*erm 6

我将尝试用一个例子向你解释elk堆栈.

应用程序生成的日志在我们的集群中的任何计算机上都具有相同的格式(timestamp | loglevel | message),并将这些日志写入某个文件.

Filebeat(来自elk的logshipper)跟踪该文件,定期收集文件的任何更新,并将它们转发到通过网络进行logstash.与logstash不同,Filebeat是一个轻量级应用程序,它使用非常少的资源,所以我不介意在集群中的每台机器上运行它.它注意到logstash关闭时等待转发数据,直到logstash再次运行(没有日志丢失).

Logstash通过网络接收来自所有日志备忘录的消息,并对消息应用过滤器.在我们的例子中,它将每个条目拆分为时间戳,日志级别和消息.这些是单独的字段,以后可以轻松搜索.任何不符合该格式的消息都将获得一个字段:无效的logformat.带有字段的这些消息现在以弹性搜索可以处理的速度转发到弹性搜索.

弹性搜索存储所有消息和索引(准备快速搜索)消息中的所有字段.这是我们的数据库.

然后我们使用Kibana(也来自elk)作为访问日志的gui.在kibana中,我可以执行以下操作:显示今天下午3-5点之间的所有日志,其中包含loglevel错误,其消息包含MyClass.Kibana会询问elasticsearch的结果并显示它们

  • 我相信当您在这种情况下提到 Logstash 时,您指的是 Logstash Indexer。因为 elogstash Shipper 只运送日志。我对么 ? (2认同)
  • 据我了解,在集群系统中,您可以进行以下设置:Shipper --> Logstash --> Elastic ||| Logstash --> Logstash --> 弹性 ||| 托运人 --> 弹性||| Logstash --> Elastic 如果您在每个节点上使用logstash,您将区分logstash Shipper(在每个节点上运行并简单转发消息的logstash)和logstash索引器(应用过滤器并转发到elasticsearch的索引器) (2认同)