😍ELK

ELK

概念

1、ELK是三个单词的缩写

​ elasticsearch logstash kibana

2、ELK的作用是日志收集的

传统方式的ELK大概分为以下几步:

日志收集		#logstash(重量级的不用他)   
日志存储		#ES
日志分析		#ES(可以用来做搜索引擎)分词原理
日志展示		#kibana
节点收集		#filebeat

3、为什么收集日志?

1、业务分析
2、大数据获取到数据
3、由人工智能的算法推送
4、故障排查

4、浅说行为追踪流程

5、ELK收集日志的三种架构:

1、ES + Logstash + Kibana

image-20220701103834966

2、ES + Logstash + filebeat + Kibana

image-20220701104020842

轻量级日志采集框架Beats,其中包含以下6种:

image-20220701104106438

3、ES + Logstash + filebeat + redis(kafka)+ Kibana

image-20220701104143715

说明

logstash节点和elasticsearch节点可以根据日志量伸缩节点数量, filebeat部署在每台需要收集日志的服务器上。

此种架构引入了消息队列机制,位于各个节点上的beats先将数据/日志传递给消息队列(kafka、redis、rabbitMQ等),logstash从消息队列取数据进行过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。因为引入了Kafka(或者Redis),所以即使远端Logstash server因故障停止运行,数据将会先被存储下来,从而避免数据丢失。

注:Beats还不支持输出到消息队列,新版本除外:5.0版本及以上

工作流程:Filebeat采集—>发到kafka—> logstash处理从kafka缓存的数据进行分析—> 输出到es—> 显示在kibana

  • 多个独立的agent(filebeat)负责收集不同来源的数据,一个中心agent(logstash)负责汇总和分析数据,在中心agent前的Broker(使用kafka/redis实现)作为缓冲区,中心agent后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示。

  • filebeat表示日志收集,使用filebeat收集各种来源的日志数据,可以是系统日志、文件、redis、mq等等;

  • Broker作为远程agent与中心agent之间的缓冲区,使用kafka/redis实现,一是可以提高系统的性能,二是可以提高系统的可靠性,当中心agent提取数据失败时,数据保存在kafka/redis中,而不至于丢失;

  • 中心agent也是LogStash,从Broker中提取数据,可以执行相关的分析和处理(Filter);

  • ElasticSearch用于存储最终的数据,并提供搜索功能;

  • Kibana提供一个简单、丰富的web界面,数据来自于ElasticSearch,支持各种查询、统计和展示。

ELK基础架构与安装

一、ELK有两种安装方式

image-20220701104946285

三、ELK环境部署

ES+Logstash+Kibana=ELK

image-20220701105359934
  • 准备工作完毕,开始安装!

1、部署JDK环境

image-20220701105655438

2、安装ES

3、安装logstash

https://www.elastic.co/guide/en/logstash/current/index.html

4、安装Kibana

image-20220701140306183

5、可视化

image-20220701140924453
image-20220701141145881
image-20220701141247206
image-20220701141359406
image-20220701141445375

==做到这一步说明你的ELK平台部署完成。==

四、ELK+filebeat+nginx

这里是以ELK为基础,filebeat来收集服务日志,并将其发送给logstash服务,由logstash服务发给ES最后通过kibana展示到web

1、安装ELK、nginx —> 过程略

2、安装filebeat

1、上传filebeat安装包+解压缩安装包

2、修改配置文件

3、测试启动

image-20220701145318992

4、配置logstash

image-20220701150312415

5、全部调位后台启动

6、网页添加链接

==添加操作和上面的是一样的,这里就不一一演示了==

image-20220701150606354
image-20220701150734247
image-20220701150750100

五、ELK+kafka+filebeat+nginx

logstash主配置文件

filebeat配置文件

六、ELK-logstash收集日志写入redis#

用一台服务器部署redis服务,专门用于日志缓存使用,一般用于web服务器产生大量日志的场景。

这里是使用一台专门用于部署redis ,一台专门部署了logstash,在linux-elk1ELK集群上面进行日志收集存到了redis服务器上面,然后通过专门的logstash服务器去redis服务器里面取出数据在放到kibana上面进行展示

1、部署redis

2、配置redis

3、测试redis

4、配置logstash将日志写入redis

将系统日志的通过logstash收集之后写入redis,然后通过另外的logstashredis服务器的数据取出来。

配置logstash的配置文件

检查logstash配置语法是否正确

写入messages日志测试

登录redis进行查看

5、配置logstash从redis中取出数据到elasticsearch

配置专门logstash服务器从redis服务器读取指定的key的数据,并写入到elasticsearch

编辑logstash配置文件

测试logstash配置是否正确

验证redis的数据是否被取出

6、head插件上验证数据

img

7、kibana界面创建索引模式并查看数据

img

img

img

这有帮助吗?