【问题标题】:Processing multiple logs from the same machine using ELK使用 ELK 处理来自同一台机器的多个日志
【发布时间】:2020-10-20 09:56:53
【问题描述】:

我有一个包含多个日志文件的主机。 2 个这样的日志文件是 csab 和 oneapplogs。

对应的Groks是

opapplog:

match => {"message" => "\[%{WORD:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{WORD:word2}\|%{WORD:num1}\|%{WORD:num2}\|%{WORD:loglevel}\|%{WORD:num3}\]%{GREEDYDATA:message}"}

csab:

match => {"message" => "\[%{NONNEGINT:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{NONNEGINT:num1}\|%{NONNEGINT:num2}]\[%{USERNAME:word2}\:%{NONNEGINT:num3}\] %{WORD:word1} : %{USERNAME:fixed} = %{NONNEGINT:num5}"}

当我尝试通过 logstash 将两者都发送到 Elasticsearch 时,作为不同的日志,我有 2 个单独的 logstash conf 文件,它们具有不同的端口用于从 filebeats 输入。

我无法同时运行不同的文件节拍。我已经读过要这样做,我需要在机器中配置完全独立的 filebeat 实例,但我有 60 多个日志,因此设置 60 个实例似乎具有挑战性。

有没有办法通过1个filebeats实例将所有文件发送到logstash,然后使用logstash将所有日志处理成多个不同的输出用于elasticsearch。

简单解释

我在同一台机器上有 2 个日志。我需要使用 ELK 处理它们

我已经配置了一个具有两个管道的 logstash 服务,两个管道都给出了单独的端口。比方说 Pipeline1 (Port 5044) , Pipeline2 (Port 5045)

现在我想使用 filebeat 将数据发送到 logstash。所以我有两种类型的日志文件,比如说 log1,log2。

我想将 log1 发送到 Pipeline1,将 log2 发送到 Pipeline 2。

这是否可能仅使用 1 个 filebeats 实例。

或者是否有其他解决方法来处理来自同一主机的不同日志?

任何帮助或建议将不胜感激。非常感谢!!

【问题讨论】:

    标签: elasticsearch logstash elastic-stack elk elastic-beats


    【解决方案1】:

    当你可以在一个配置文件中实现所有这些时,我不明白为什么你需要对两个源进行单独的配置。

    以当您在系统中有两个来源的情况下读取日志并且您仅在一个 filebeat 配置中设置两个不同的来源。

    Output{
    If source ~=‘/file/path/for/first/log’
    Elasticsearch {
    ..
    ..
    }
    else If source ~=‘/file/path/for/second/log’
    Elasticsearch {
    ..
    ..
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多