Spring Boot教程第22篇:整合elk,搭建实时日志平台

Spring Boot教程第22篇:整合elk,搭建实时日志平台,第1张

这篇文章主要介绍springboot整合elk.

elk 简介

elk下载安装

elk下载地址:https://www.elastic.co/downloads/

建议在 linux上运行,elk在windows上支持得不好,另外需要jdk1.8 的支持,需要提前安装好jdk.

下载完之后: 安装,以logstash为栗子:

配置、启动 Elasticsearch

打开Elasticsearch的配置文件:

修改配置:

network.host=localhost

network.port=9200

它默认就是这个配置,没有特殊要求,在本地不需要修改。

启动Elasticsearch

启动成功,访问localhost:9200,网页显示:

配置、启动 logstash

在 logstash的主目录下:

修改 log4j_to_es.conf 如下:

input {

log4j {

mode =>"server"

host =>"localhost"

port =>4560

}

}

filter {

#Only matched data are send to output.

}

output {

elasticsearch {

action =>"index" #The operation on ES

hosts =>"localhost:9200" #ElasticSearch host, can be array.

index =>"applog" #The index to write data to.

}

}

修改完配置后启动:

./bin/logstash -f config/log4j_to_es.conf

终端显示如下:

访问localhost:9600

证明logstash启动成功。

配置、启动kibana

到kibana的安装目录:

默认配置即可。

访问localhost:5601,网页显示:

证明启动成功。

创建springboot工程

起步依赖如下:

log4j的配置,/src/resources/log4j.properties如下:

log4j.rootLogger=INFO,console

# for package com.demo.elk, log would be sent to socket appender.

log4j.logger.com.forezp=DEBUG, socket

# appender socket

log4j.appender.socket=org.apache.log4j.net.SocketAppender

log4j.appender.socket.Port=4560

log4j.appender.socket.RemoteHost=localhost

log4j.appender.socket.layout=org.apache.log4j.PatternLayout

log4j.appender.socket.layout.ConversionPattern=%d [%-5p] [%l] %m%n

log4j.appender.socket.ReconnectionDelay=10000

# appender console

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.target=System.out

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%l] %m%n

打印log测试:

在kibana 实时监控日志

打开localhost:5601:

Management=>index pattrns=>add new:

点击discovery:

因公司开发人员查询线上日志困难需求,故计划搭建 ELK 系统解决这一问题。了解到之前搭建过单机单节点的 ELK,但由于负载内存过高,停止弃用了。所以这次准备了三台性能不错的服务器,开始搭建 ELK 集群。

过程曲折且艰辛,记录下来以备不时之需。

由于这种方案,每个 logstash 都需要占用较大内存,这对线上各日志收集的应用服务器,压力太大难以承受。

filebeat是一个轻量级的日志采集器,部署简单占用内存小。这一方案总体上比较好了,只是 logstash 这一节点的压力比较大,查询到filebeat可以负载均衡输出到多个logstash,所以后边考虑了在准备的三台 elk 服务器上都安装一个 logstash ,这样就实现了下边这一方案。

上边的方案其实已经能够满足一般公司的日志需求,但超大的日志数量可能会存在数据错乱缺失,节点脑裂等多个问题。要尽量解决这些问题,要做的工作还很多,这里收集部分网上的建议,记录如下:

在个服务器上通过 yum install -y ***.rpm 直接快速安装

安装后程序位置都在 /usr/share/ 下

配置文件都在 /etc/ 下

建议用 ansible 管理

启动:elasticsearch --- logstash --- filebeat --- kibana

停止:kibana --- filebeat --- logstash --- elasticsearch


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/6647407.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存