中小学网站建设探讨,中英双板网站模版,怎么制作php网站,加油站网站建设一、前言
前面的章节我们介绍通过ES Client将数据同步到ElasticSearch中#xff0c;但是像日志这种数据没有必要自己写代码同步到ES那样会折腾死#xff0c;直接采用ELK方案就好#xff0c;ELK是Elasticsearch、Logstash、Kibana三款开源软件的缩写#xff0c;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将日志数据收集然后发送给KafkaKafka再将数据传给Logstash进行过滤后发送给ES。引入消息队列即使Logstash故障数据也不会丢失。
3、Beats
收集端由logstash换成更轻量级的BeatsBeats有各种收集器比如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?billsCode1
然后在Kibana上索引就可以查看到索引文件如下。 Kibana配置Data View 最后进入Discover,可以快速根据关键词搜索日志内容了。 最后我们再也不用到每台服务器上用grep命令去查日志了用了ELK确实方便了很多。