ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)

一、简介

elk日志平台 :日志收集、分析和展示的解决方案。满足用户对⽇志的查询、排序、统计需求。
elk架构: filebeat(采集)(+kafka)+Logstash(管道)+Elasticsearch(存储、搜索)+Kibana(日志应用)
各组件功能:
Filebeat:监听并收集日志数据
kafka:高吞吐量的分布式发布订阅消息,大吞吐数据的临时队列。Kafka的吞吐性能很好,可以对付N个filebeat,而且能持久化了日志数据,这样即便过程中存在某个处理点出故障,只要kafka机器好,数据就好。比直接推logstash要高可靠,性能还好。
Logstash:将收集数据汇总给Logstash,Logstash进行数据清洗,将结果再以流式方式推送给Kafka对应的过滤数据Topic,这样看Kafka既保存了原始数据,还保存了过滤数据。
Elasticsearch:分布式、高扩展、高实时的搜索与数据分析引擎,Logstash将数据写入Elasticsearch
Kibana:用Kibana进行可视化展示es中的数据

二、filebeat配置与使用(windows)

(1)下载地址:https://www.elastic.co/cn/downloads/beats/filebeat
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第1张图片

(2)选择 windows zip x86_64,下载安装filebeat后找到安装位置打开filebeat.yaml文件进行编辑ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第2张图片

(3)找到filebeat inputs。配置如下图所示,将enabled设为true,并在paths填写要监听的日志文件地址。
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第3张图片

如果直接将监听数据输出到logstash,找到output.logstash,如下图所示,删除output.logstash的注释,填写logstash的访问地址,可以填写多个,以逗号分隔。由于我在k8s集群中安装的logstash,填写的是可访问的外部地址。
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第4张图片

如果直接将监听数据输出到kafka,找到 kafka output。如果没有可以自己添加在文件中。将enabled改为true,在hosts中填写kafka的访问地址,可以填写多个,以逗号分隔。填写topic的名字,kafka中的topic会自动创建。

ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第5张图片

官方说明文档:
https://www.elastic.co/guide/en/beats/filebeat/7.9/kafka-output.html

启动filebeat:
需要等elk中其他应用启动完毕后,修改filebeat.yaml中输入输出的访问地址,保存后在filebeat文件夹下打开cmd
输入命令并回车:filebeat -c filebeat.yml -e
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第6张图片

三、logstash配置

官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html
1.input
如果filebeat输出到logstash, logstash只需要监听自己的端口即可。

beats {
    port => 8080
  }

如果filebeat输出到kafka,logstash需要监听kafka,其他参数可查询logstash官方文档。

kafka {
  bootstrap_servers => "IP:PORT"
  codec => json
  topics => ["topic_name"]   #请填写对应topic
  decorate_events => true
}

2.filter根据需要填写
3.output
将过滤后的日志输出到es中(示例为https服务)
如果es服务为http服务,需要将https修改为https;如果es没有开启安全认证,可以注释掉用户与密码。 ssl_certificate_verification 设置false意为跳过ssl证书;manage_template为false意为禁用系统自动创建模版

elasticsearch {
  hosts => ["https://10.111.200.128:9200"]
  user => "elastic"
  password => "Dameng7777"
  ssl_certificate_verification => false
  manage_template => false
  index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
}

四、启动

由于我已经在k8s集群中使用helm chart安装了 kafka 、logstash、es(已包含kibana),修改上述内容后即可测试改架构能否使用。
安装启动顺序
es -->kibana -->kafka(可省)–>logstash -->filebeat
全部启动完毕后在浏览器输入kibana的地址,输入es的账号密码,
选择”Esplore on my own”
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第7张图片
点击Discover
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第8张图片

点击 create view创建视图,可以看到右边已经读取到的日志数据,在左边依次填写视图名,es索引通配式,点击 ‘save data view kibana’
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第9张图片
进入视图后即可查看匹配到的所有日志。
ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)_第10张图片

你可能感兴趣的:(kafka,elasticsearch,elk)