【问题标题】:What is better: logStash agents on the appserver or the remote kibana server?哪个更好:appserver 或远程 kibana 服务器上的 logStash 代理?
【发布时间】:2015-06-12 16:24:49
【问题描述】:

我有 12 个日志 (log4j) 文件想要在 Logstash/Kibana 中建立索引。

最好将每个 log4j.xml 文件更改为附加到本地主机上的单个 logstash 代理(1 对 1 映射),然后推送到运行 Kibana 的远程主机上的 ElasticSearch?

所以应用服务器上有 12 个 logstash 代理。

最好将每个 log4j.xml 文件更改为附加到远程主机上匹配的 logstash 代理(1 对 1 映射),然后推送到 ElasticSearch(与 Kibana 运行在同一主机上)?

那么运行 ElasticSearch 和 Kibana 的删除服务器上有 12 个 logstash 代理?

如果我选择选项 2,那么我需要在 Kibana 服务器上定义要打开的 12 个端口。

如果我选择选项 1,那么我只需要打开一个端口,即 9200(弹性搜索端口)。

我应该采取什么建议的方法?我是否错过了使用 Logstash 的技巧?

注意:它来自一台 QA 服务器的 12 个日志文件,如果我包括其他 3 台 QA 服务器,那么我需要为每个服务器打开 12 个端口。不是我想做的事。

我正在使用 log4j appender,因为服务器是 Windows,我还没有让 logstash 代理直接读取应用程序日志(文件锁定问题)。

  • Lo​​gstash:1.5.0
  • 弹性搜索:1.6.0
  • Kibana : 4.1.0-windows

【问题讨论】:

标签: log4j logstash kibana elastic-stack


【解决方案1】:

Logstash 只需一个实例即可读取多个文件或从多个来源接收数据,因此您无需设置 12 个 Logstash 或执行任何复杂的操作。

您的问题的主要问题是:当 logstash 或 elasticsearch 关闭时会发生什么? log4j 是否会将消息排队,直到服务再次恢复?否则,您将丢失消息。

虽然它是老派,但这是我喜欢写入本地日志文件的原因之一。当 logstash 关闭时,它们充当免费的分布式缓存。您还可以设置代理(redis、rabbitmq),但这是需要支持的另一项服务。

【讨论】:

  • 那么单个logstash实例是否可以读取多个文件,但对每个文件应用不同的标签?
  • 如果您将独特的 grok{} 模式应用于您的输入,您可以在该点标记事件(请参阅 add_tag 和 add_field)。如果您为每个文件设置单独的文件输入节,您还可以在每个文件中添加不同的内容(显然不使用通配符 glob 模式)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 2016-11-09
相关资源
最近更新 更多