logstash的多个日志源

时间:2018-02-13 02:32:30

标签: elasticsearch logstash filebeat

我正处于ELK堆栈的学习阶段,并且一直在关注弹性文档。我有几个Linux服务器,我想用ELK监控。我已经设置了两个弹性节点实例,一个kibana实例和一个logstash节点实例。我的Linux服务器运行了一个Web服务(apache2),我想监视来自服务器的apache访问和错误日​​志以及auth.log。我有另一台运行相同服务的Linux服务器,我也想监控它。

我已经关注https://www.elastic.co/guide/en/logstash/current/advanced-pipeline.html并且能够将apache访问日志提供给logstash然后进入弹性搜索,但是,在一次提供apache访问日志,错误日志和身份验证日志时遇到了问题。

以下是我的filbeat配置文件:

 - type: log 
   enabled: true  
   paths:    
    - /var/log/apache2/access.log
   fields:
   type: apachelog

 - type: log
   enabled: true
   paths:
    - /var/log/apache2/error.log
   fields:
   type: apachelog

 - type: log
   enabled: true
   paths:
    - /var/log/apache2/auth.log
   fields:
   type: syslog

   output.logstash:
   hosts: ["10.115.1.5:5044"]

conf.d目录下的任何配置文件都是:

    input {
        beats {
            port => "5044"
        }
    }
    filter {
      if [type] == "apachelog" {
        grok {
          match => { "message" => "%{COMBINEDAPACHELOG}"}
        }
        geoip {
          source => "clientip"
        }
       }
      if [type] == "syslog" {
        grok {
          match => { "message" => "%{SYSLOGTIMESTAMP:system
     .auth.timestamp} %{SYSLOGHOST:system.auth.hostname}  
     sshd(?:\\[%{POSINT:system.auth.pid}\\])?:%{DATA:system.
     auth.ssh.even} %{DATA:system.auth.ssh.metho} for  
     (invalid user )? %{DATA:system.auth.user} from %
     {IPORHOST:system.auth.ip} port%{NUMBER:system
     .auth.port} ssh2(: %{GREEDYDATA:system.auth.ssh.signature})?" }          
        }
       }
     }
   output {
       if [type] == "apachelog" {
         elasticsearch {
            hosts => ["10.115.1.27", "10.115.1.47"]
            index => Linux1apachelog
             }
            stdout { codec => rubydebug }
          }
         else {
           elasticsearch {
              hosts => ["10.115.1.27", "10.115.1.48"]
              index => Linux1apachelog
               }
              stdout { codec => rubydebug }
            }
         }

我的logstash能够与两个弹性搜索节点进行通信。你能帮我指点正确的方向吗?

1 个答案:

答案 0 :(得分:0)

您的文件格式不正确。 在output.logstash:

之前删除空格