https://www.cnblogs.com/mathli/p/10087825.html
首先在kafka上创建topic,这里是
servicelog
filebeat.yml配置
filebeat.inputs:
- type: log
paths:
- /opt/logs/*/error.log
- /opt/logs/*/info.log
- /opt/*/logs/*.log
fields:
log_topic: 'servicelog'
include_lines: ["^java","^org","^com","ERROR",".*:.*:*:.*"]
#exclude_lines: ["^*at"]
multiline.pattern: '^[[:space:]]+(at|.{3}) |.*Exception:.*'
multiline.negate: false
multiline.match: after
tail_files: true
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
processors:
- add_host_metadata: ~
output.kafka:
enabled: true
hosts: ["192.168.10.11:9092"]
topic: 'servicelog'
partition.round_robin:
reachable_only: true
worker: 2
required_acks: 1
#compression: gzip
max_message_bytes: 10000000
#logging.level: debug
name: test1
启动filebeat,然后测试往log文件里写匹配的字符,并在kafka上一个这个topic的消费者,就能看到filebeat生产者抛过来的信息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic servicelog --from-beginning
{"@timestamp":"2020-04-18T06:01:21.419Z","@metadata":{"beat":"filebeat","type":"doc","version":"6.6.2","topic":"servicelog"},"log":{"file":{"path":"/opt/logs/app01/error.log"}},"input":{"type":"log"},"beat":{"name":"test1","hostname":"docker1","version":"6.6.2"},"prospector":{"type":"log"},"fields":{"log_topic":"servicelog"},"host":{"name":"docker1","architecture":"x86_64","os":{"platform":"centos","version":"7 (Core)","family":"redhat","name":"CentOS Linux","codename":"Core"},"id":"ebcb2eeb0fb64fdb9a0be26f2e81cd50","containerized":true},"message":"ERROR","source":"/opt/logs/app01/error.log","offset":0}