如果配置收集多个目录的logstash

各位大虾好!

小虾此前配置了一个elk,在logstash的服务器上是这么写conf的:

$ cat /usr/local/logstash/config/conf.d/logstash.conf
#在输入部分,配置Logstash通信端口以及添加SSL证书,从而进行安全通信。
input {
 beats {
   port => 5044
   ssl => true
   ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
   ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}
 
#在过滤器部分,我们将使用Grok来解析这些日志,然后将其发送到Elasticsearch。以下grok过滤器将查找“syslog”标记的日志,并尝试解析它们,以生成结构化索引。
filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}
 
#输出部分,我们将定义要存储的日志位置
output {
 elasticsearch {
  hosts => [ "10.162.80.192:9200" ]                #这个地址是elasticsearch的内网地址
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
 user => elastic
 password => changeme
       }
stdout {
    codec => rubydebug
       }
}

现在我要再添加一个nginx日志(这次不用filebeat而是redis),是要重新写一个logstash么?然后启动两个logstash?

还是在这个logstash.conf里写两个input?
还是一个input下面再加一个redis{}?

我原有的日志跟nginx的过滤器语法是不一样的,那么过滤器那部分又如何更改?是多写一个过滤器么?

阅读 4.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进