SEO外包平台,我们为您提供专业的企业网站SEO整站优化外包服务 SEO设置

SEO外包平台

专注于企业网站SEO整站优化外包服务

集中式日志分析平台 - ELK Stack - 基于 Type 的多日志分离写入 ES

作者:jcmp      发布时间:2021-04-24      浏览量:0
一、Filebeat 端配置Filebe

一、Filebeat 端配置

Filebeat 官方文档中描述了一个配置,可以对数据流按照 input_type 级别的打标,通过 document_type 关键字申明:

filebeat.prospectors:- input_type: log paths: - /home/admin/soft/filebeat-5.2.1-linux-x86_64/logs/filebeat document_type: fb_log- input_type: log paths: - /home/admin/soft/elasticsearch-5.2.1/logs/elasticsearch.log document_type: es_log。

比如上面的配置表述,prospectors 具有 2 个采集输入,分别是采集 filebeat 日志和 elasticsearch 日志,filebeat 日志打标为 fb_log,elasticsearch 日志打标为 es_log。

然后,我们的输出是 kafka,我们可以通过宏去通配推送数据到不同的 kafka topic :

output.kafka: hosts: ["172.16.134.3:9092"] topic: '%{[type]}' partition.round_robin: reachable_only: false required_acks: 1 compression: gzip max_message_bytes: 1000000。

这样配置,我们的 filebeat 日志和 elasticsearch 日志会推送到不同的 kafka topic,分别是 fb_log 和 es_log,配置完成后记得重启。

二、Logstash 端配置

和 filebeat 对应的, logstash 的 input / filter / output 配置段,也有类似的打标方式:

input { kafka { bootstrap_servers => "${BOOTSTRAP_SERVERS}" consumer_threads => 3 topics => "fb_log" type => "fb_log" } kafka { bootstrap_servers => "${BOOTSTRAP_SERVERS}" consumer_threads => 3 topics => "es_log" type => "es_log" }}output { if [type] == "fb_log" { elasticsearch { hosts => "${HOSTS}" manage_template => false index => "fb_log-%{+YYYY.MM.dd}" document_type => "fb_log" } } if [type] == "es_log" { elasticsearch { hosts => "${HOSTS}" manage_template => false index => "es_log-%{+YYYY.MM.dd}" document_type => "es_log" } }}

配置完成后重启。

和之前的文档类似,我们在 Kibana Discover 中,需要添加剥离后的 Index,比如按照 fb_log-* 去搜索。

三、小结