一 简介
在上一篇中介绍了elk安装和收集日志,这一篇我们在中间加个数据库,让filebeat直接把日志发送给redis,然后logstash在去redis里面取出来
大致流程:filebeat---redis---logstash---es--kibana
二 redis安装
下载 https://redis.io/download
三 logstash配置
用redis,配置文件需要更改一下
[root@elk logstash]# cat conf.d/logstash.conf input { redis { host => "172.17.199.231" port => 6379 key => "filebeat" db => "0" data_type => "list" } } filter{ grok { match => ["message", "%{SYSLOGBASE} %{GREEDYDATA:message}"] overwrite => ["message"] } } output { if [app] == "www" { if [type] == "tiantian-system-service-node2" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "tiantian-system-service-node2-%{+YYYY.MM.dd}" } } else if [type] == "tiantian-system-service-node4" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "tiantian-system-service-node4-%{+YYYY.MM.dd}" } } else if [type] == "tiantian-assets-service-node2" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "tiantian-assets-service-node2-%{+YYYY.MM.dd}" } } else if [type] == "tiantian-collection-admin-node6" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "tiantian-collection-admin-node6-%{+YYYY.MM.dd}" } } else if [type] == "tiantian-collection-job-node5" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "tiantian-collection-job-node5-%{+YYYY.MM.dd}" } } else if [type] == "xxd-credit-service-node2" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "xxd-credit-service-node2-%{+YYYY.MM.dd}" } } else if [type] == "xxd-jinbaodai-api-node4" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "xxd-jinbaodai-api-node4-%{+YYYY.MM.dd}" } } } stdout { codec=> rubydebug } }
四 filebeat设置
https://www.elastic.co/guide/en/beats/filebeat/1.3/redis-output.html #filebeat设置redis
[root@node1 ~]# grep -v "^ *#" /etc/filebeat/filebeat.yml |grep -v "^$" filebeat.inputs: - type: log paths: - /datalog/service/jz-asset/node1/nohup.out encoding: utf-8 tail_files: true fields: app: www type: jz-asset-node1 fields_under_root: true multiline: pattern: '^[0-2][0-9]:[0-5][0-9]:[0-5][0-9]' negate: true match: after filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 setup.kibana: output: redis: hosts: ["172.17.199.231:6379"] #发送给redis save_topology: true index: "filebeat" db: 0 db_topology: 1 timeout: 5 reconnect_interval: 1 processors: - add_host_metadata: ~ - add_cloud_metadata: ~
只有这两个地方需要更改一下,其余地方不用设置