Filebeat、Logstash读取多个topic并输出到ES集群

一、配置filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/nginx/logs/access.log
#此处加上fields和log_topics字段,log_topics=nginx和下面的log_topics=httpd主要用于区分两个日志,这两个字段的值可以自定义
  fields:
    log_topics: nginx
  json.keys_under_root: true
  json.overwrite_keys: true
  json.add_error_key: true

- type: log
  enabled: true
  paths:
    - /var/log/httpd/access_log.ls_json
  fields:
    log_topics: httpd
  json.keys_under_root: true
  json.overwrite_keys: true
  json.add_error_key: true

#下面是output.kafka的配置
#=========================== Kafka Output=====================
output.kafka:
  enabled: true
  hosts: ["10.1.1.17:9092"]
  #此处topic取值是上面新加的字段的值
  topic: '%{[fields][log_topics]}'

配置完成后,重启filebeat服务,没有报错的话,可以在kafka中创建了nginx和httpd两个topic:

[root@elk kafka]# bin/kafka-topics.sh  --zookeeper 10.1.1.17:2181 --list
__consumer_offsets
httpd
nginx

topic创建成功了,下面接着配置logstash:

二、配置Logstash

[root@elk kafka]# cat /etc/logstash/conf.d/kafka-es.conf 
input {
    kafka  {
        codec => "json"
        #此处把两个topic的名称都写进去,用英文状态的逗号隔开
        topics => ["nginx","httpd"]
        bootstrap_servers => "10.1.1.17:9092"
        auto_offset_reset => "latest"
   }
}

output {
    elasticsearch {
        hosts => ["10.1.1.17:9200"]
        #此处的索引名称,我们设定为引用filebeat中配置的字段,这样就会自动创建两个带日期的索引,
        index =>  '%{[fields][log_topics]}+%{timestamp}'
    }
} 

三、Kibana查看索引

然后启动logstash,无报错的话,即可在kibana的管理界面-索引管理看到新建的nginx+2020.03.11和httpd+2020.03.11索引:我们据此创建索引模式,分别为nginx+2020.03.11和httpd+2020.03.11,然后分别查看日志情况:
在这里插入图片描述可以看到http的日志,都在httpd索引下,nginx的日志,都在nginx索引下:
在这里插入图片描述在这里插入图片描述
至此,配置完毕!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dustin.Hoffman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值