Log4j 更好的方法是:在appserver或远程kibana服务器上安装logStash代理?

Log4j 更好的方法是:在appserver或远程kibana服务器上安装logStash代理?,log4j,logstash,kibana,elastic-stack,Log4j,Logstash,Kibana,Elastic Stack,我有12个日志(log4j)文件,我想在Logstash/Kibana中建立索引 是否最好将每个log4j.xml文件更改为附加到本地主机上的单个logstash代理(1对1映射),然后将其推送到运行Kibana的远程主机上的ElasticSearch 所以在应用服务器上有12个logstash代理 或 是否最好将每个log4j.xml文件更改为附加到远程主机上的匹配logstash代理(1对1映射),该代理将推入ElasticSearch(与Kibana在同一主机上运行) 那么在运行Elast

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

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

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

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

那么在运行ElasticSearch和Kibana的remove服务器上有12个logstash代理

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

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

我应该采取什么样的建议方法?我错过了Logstash的把戏了吗

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

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

  • 日志存储:1.5.0
  • 弹性搜索:1.6.0
  • Kibana:4.1.0-windows

Logstash可以通过一个实例读取多个文件或从多个源接收,因此您不需要设置12个Logstash或执行任何复杂的操作

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


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

日志存储转发器是windows的选项吗?那么,单个logstash实例是否可以读取多个文件,但对每个文件应用不同的标记呢?如果对输入应用了唯一的grok{}模式,则可以在该点标记事件(请参见add_标记和add_字段)。如果为每个文件设置单独的文件{}输入节,还可以在每个文件中添加不同的内容(显然不是使用通配符glob模式)。