😍ELK
ELK
概念
1、ELK是三个单词的缩写
elasticsearch logstash kibana
2、ELK的作用是日志收集的
传统方式的ELK大概分为以下几步:
日志收集 #logstash(重量级的不用他)
日志存储 #ES
日志分析 #ES(可以用来做搜索引擎)分词原理
日志展示 #kibana
节点收集 #filebeat3、为什么收集日志?
1、业务分析
2、大数据获取到数据
3、由人工智能的算法推送
4、故障排查4、浅说行为追踪流程
5、ELK收集日志的三种架构:
1、ES + Logstash + Kibana

2、ES + Logstash + filebeat + Kibana

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

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

说明:
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有两种安装方式
二、官方地址

三、ELK环境部署
ES+Logstash+Kibana=ELK

准备工作完毕,开始安装!
1、部署JDK环境

2、安装ES
启动es

image-20220701113112676 检查端口
查看进程
测试是否能够正常访问
切换到root用户,设置开机启动脚本
脚本内容如下:
赋权、开机自启
3、安装logstash
编辑配置文件
还有很多的input/filter/output插件类型,可以参考官方文档来配置。
https://www.elastic.co/guide/en/logstash/current/index.html
最后做个软链接就可以了
后台启动+开机自启
4、安装Kibana
解压缩Kibana压缩包
修改配置文件
启动测试

后台启动
5、可视化
添加监控链接

由于我已经监控好几天了,就出现了多个监控文件,这个不要管,只要出现 ==Success! Your index pattern matches 3 indices.== 就算监控有效

选择以时间为单位切割

出现这个界面表示添加成功

点红框这里就是可视化面板

==做到这一步说明你的ELK平台部署完成。==
四、ELK+filebeat+nginx
这里是以ELK为基础,filebeat来收集服务日志,并将其发送给logstash服务,由logstash服务发给ES最后通过kibana展示到web
1、安装ELK、nginx —> 过程略
2、安装filebeat
1、上传filebeat安装包+解压缩安装包
2、修改配置文件
3、测试启动

4、配置logstash
重新启动logstash+filebeat ==测试==
测试无问题

5、全部调位后台启动
6、网页添加链接
==添加操作和上面的是一样的,这里就不一一演示了==

进入可视化面板后,选择nignx的日志链接


五、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,然后通过另外的logstash将redis服务器的数据取出来。
配置logstash的配置文件
检查logstash配置语法是否正确
写入messages日志测试
登录redis进行查看
5、配置logstash从redis中取出数据到elasticsearch
配置专门logstash服务器从redis服务器读取指定的key的数据,并写入到elasticsearch
编辑logstash配置文件
测试logstash配置是否正确
验证redis的数据是否被取出
6、head插件上验证数据
7、kibana界面创建索引模式并查看数据
这有帮助吗?



