elasticsearch 使用ELK处理来自同一台机器的多个日志
我有一个包含多个日志文件的主机。2此类日志文件为csab和oneapplogs 相应的岩石是 opeapplog:
elasticsearch 使用ELK处理来自同一台机器的多个日志,
elasticsearch,logstash,elastic-stack,elk,elastic-beats,
elasticsearch,Logstash,Elastic Stack,Elk,Elastic Beats,我有一个包含多个日志文件的主机。2此类日志文件为csab和oneapplogs 相应的岩石是 opeapplog: match => {"message" => "\[%{WORD:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{WORD:word2}\|%{WORD:num1}\|%{WORD:num2}\|%{WORD:loglevel}\|%{WORD:num3}\]%{GREEDYDATA:message}"
match => {"message" => "\[%{WORD:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{WORD:word2}\|%{WORD:num1}\|%{WORD:num2}\|%{WORD:loglevel}\|%{WORD:num3}\]%{GREEDYDATA:message}"}
match => {"message" => "\[%{NONNEGINT:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{NONNEGINT:num1}\|%{NONNEGINT:num2}]\[%{USERNAME:word2}\:%{NONNEGINT:num3}\] %{WORD:word1} : %{USERNAME:fixed} = %{NONNEGINT:num5}"}
csab:
match => {"message" => "\[%{WORD:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{WORD:word2}\|%{WORD:num1}\|%{WORD:num2}\|%{WORD:loglevel}\|%{WORD:num3}\]%{GREEDYDATA:message}"}
match => {"message" => "\[%{NONNEGINT:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{NONNEGINT:num1}\|%{NONNEGINT:num2}]\[%{USERNAME:word2}\:%{NONNEGINT:num3}\] %{WORD:word1} : %{USERNAME:fixed} = %{NONNEGINT:num5}"}
当我尝试通过logstash将这两个文件发送到Elasticsearch时,由于日志不同,我有两个单独的logstash conf文件,用于从filebeats输入的不同端口
我不能同时运行不同的filebeats。我已经读到,要做到这一点,我需要在机器中配置完全独立的filebeat实例,但我有60多个日志,因此设置60个实例似乎很有挑战性
有没有办法通过1个filebeats实例将所有文件发送到logstash,然后使用logstash将所有日志处理为多个不同的输出,以用于elasticsearch
简单解释
我在同一台机器上有两个日志。我需要用麋鹿来处理它们
我已经配置了一个具有两个管道的日志存储服务,两个管道都提供了单独的端口。假设管道1(端口5044),管道2(端口5045)
现在我想使用filebeat将数据发送到日志存储。我有两种类型的日志文件,比如log1,log2
我想将log1发送到管道1,将log2发送到管道2
仅使用1个filebeats实例就可以做到这一点
或者是否有其他解决方法来处理来自同一主机的不同日志
任何帮助或建议都将不胜感激。非常感谢 我不明白,当您可以在一个配置文件中实现所有这些功能时,为什么需要对两个源进行单独的配置 假设系统中有两个源可从中读取日志,并且仅在一个filebeat配置中设置了两个不同的源
Output{
If source ~=‘/file/path/for/first/log’
Elasticsearch {
..
..
}
else If source ~=‘/file/path/for/second/log’
Elasticsearch {
..
..
}
}