ELK介绍

一、前言

前面的章节我们介绍通过ES Client将数据同步到ElasticSearch中,但是像日志这种数据没有必要自己写代码同步到ES那样会折腾死,直接采用ELK方案就好,ELK是Elasticsearch、Logstash、Kibana三款开源软件的缩写,ELK主要用于收集多台服务器日志统一整合后提供给用户。E和K前面都有介绍,L即Logstash它可以从各种数据源收集数据,并对数据进行过滤、分析和统一格式并将输出结果存储到指定位置。

二、Logstash工作原理介绍

图片来源于网络。

Logstash事件处理分为三个阶段

1、输入

使用输入将数据导入logstash,常见的输入file、syslog、redis、beats。

2、过滤器

过滤器是logstash管道的中间处理设备,一些常见有用过滤器:

grok:解析和构造任意文本。Grok是非结构化日志解析为结构化日志最佳方式。

mutate:对字段进行一般转换,可以重命令、删除、替换和修改事件中字段。

3、输出

一个事件可以有多个输出,一些常见的输出:elasticsearch、file、graphite。

四、ELK几种架构

1、各节点部署Logstash

Logstash部署于各节点,收集日志、数据、经过分析过滤后发送给远端ES.

优点是架构简单,缺点是Logstash比较占资源,并且当Logstash故障时数据会丢失,这种加构用来收集系统日志没什么问题,但用于同步业务数据肯定是不行的。

2、增加消息队列

在各节点部署Logstash Agent将日志数据收集然后发送给Kafka,Kafka再将数据传给Logstash进行过滤后发送给ES。引入消息队列,即使Logstash故障,数据也不会丢失。

3、Beats

收集端由logstash换成更轻量级的Beats,Beats有各种收集器,比如FileBeats(日志文件收集)、PacketBeats(网络数据包收集)等。

三、一个简单的ELK搭建例子

1、ES安装配置

下载地址:

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.2-linux-x86_64.tar.gz

解压后修改elasticsearch.yml,将xpack这些都设置为false,不然可能会报错。然后

./elasticsearch -d启动即可。

jvm.options 调整参数设置,不然机器搞崩掉了 -Xms512m -Xmx512m。

访问http://121.36.200.208:9200/有返回JSON,即说明安装正常。

2、Logstash安装配置

下载地址:

https://artifacts.elastic.co/downloads/logstash/logstash-8.5.2-linux-x86_64.tar.gz

解压后,执行./logstash -e 'input { stdin { } } output { stdout {} }', 在控制台输入字符,如果输出JSON表示安装成功。

config/jvm.options JVM参数调整一下 -Xms512m -Xmx512m

编写logstash配置文件 logstash-test.conf,配置从4560端口接收数据,然后输出到ES。

启动 ./bin/logstash -f ./config/logstash-test.conf

3、Kibana安装配置

下载地址

https://artifacts.elastic.co/downloads/kibana/kibana-8.5.2-linux-x86_64.tar.gz

解压安装,kibana.yml 修改 server.host: "0.0.0.0" 允许远程访问。

./kibana启动

http://121.36.200.208:5601/ 即可以打开kibana控制台

4、SpringBoot项目

快速搭建一个SpringBoot项目,logback-spring.xml配置如下

配置一个LogstashTcpSocketAppender,指定输出目标为4560端口。

代码中增加以slf4j日志输出

5、查看效果

请求 http://121.36.200.208:8080/testLogstash?billsCode=1

然后在Kibana上索引就可以查看到索引文件如下。

Kibana配置Data View

最后进入Discover,可以快速根据关键词搜索日志内容了。

最后我们再也不用到每台服务器上用grep命令去查日志了,用了ELK确实方便了很多。

相关推荐
必叫你大败而归1 天前
ELK日志分析系统
elk
確定饿的猫1 天前
ELK环境部署
elk
YCyjs1 天前
ELK 企业级日志分析系统
elk
码农郁郁久居人下1 天前
ELK 企业级日志分析系统
elk
史努比.3 天前
ELK 企业级日志分析系统
elk
檀越剑指大厂3 天前
【Elasticsearch系列四】ELK Stack
大数据·elk·elasticsearch
2401_840192273 天前
ELFK日志分析平台,架构和通信
elk·elasticsearch·架构
ygqygq26 天前
ElK 8 收集 Nginx 日志
nginx·elk
纪佰伦8 天前
ELK在Linux服务器下使用docker快速部署(超详细)
linux·服务器·elk
写....写个大西瓜9 天前
【Docker部署ELK】(7.15)
elk·docker