ELK7.10小项目演示ELK的日志分析利器(上)

优采云 发布时间: 2021-08-26 18:08

  ELK7.10小项目演示ELK的日志分析利器(上)

  ELK(Elasticsearch、Logstash、Kibana)用于采集日志并进行日志分析,最后通过可视化UI展示出来。在产生大量日志的项目场景中,ELK是一个强大的日志采集分析工具!

  你遇到过这些 Elasticsearch 7.10 部署问题吗?在这个文章中,我已经部署了Elasticsearch。这个导航就完成了Logstash和Kibana的部署,写了一个SpringBoot小项目来演示ELK日志采集。

  

  安装 Logstash

  ELK三大组件的安装非常简单,几行命令就可以搞定:

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

tar -zxvf logstash-7.10.2-linux-x86_64.tar.gz

复制代码

  我们之前安装的Elasticsearch版本是7.10.2,所以接下来要安装的Logstash和Kibana都必须安装7.10.2版本。

  解压完成后,为了每次启动时都不进入Logstash家目录,我们来配置一下环境变量:

  vi ~/.bash_profile

# 在后面添加

export LOGSTASH_HOME=/home/elastic/logstash-7.10.2

export PATH=$PATH:$LOGSTASH_HOME/bin

复制代码

  关于版本问题,让我对ELK感觉良好的一件事就是ElasticStack中Elasticsearch、Logstash、Kibana的版本号都是一样的,其实省了很多麻烦。

  下载时,如果要下载其他版本,可以通过更改链接上的版本号下载对应版本的文件。

  

  复制一个$LOGSTASH_HOME/config/logstash-sample.conf配置文件,命名为logstash-app-search.conf,修改内容如下:

  input {

tcp {

# Logstash 作为服务

mode => "server"

host => "192.168.242.120"

# 开放9001端口进行采集日志

port => 9001

# 编*敏*感*词*

codec => json_lines

}

}

output {

elasticsearch {

# 配置ES的地址

hosts => ["http://192.168.242.120:9200"]

# 在ES里产生的index的名称

index => "app-search-log-collection-%{+YYYY.MM.dd}"

#user => "elastic"

#password => "changeme"

}

stdout {

codec => rubydebug

}

}

复制代码

  启动 Logstash:

  logstash -f $LOGSTASH_HOME/config/logstash-app-search.conf

# 后台启动

# nohup logstash -f $LOGSTASH_HOME/config/logstash-app-search.conf &

复制代码

  安装 Kibana

  还是很简单:

  # 下载

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

# 解压

tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz

# 重命名

mv kibana-7.10.2-linux-x86_64.tar.gz kibana-7.10.2

# 配置环境变量

# 编辑 ~/.bash_profile

# 最终ELK的环境变量配置

export ES_HOME=/home/elastic/elasticsearch-7.10.2

export KIBANA_HOME=/home/elastic/kibana-7.10.2

export LOGSTASH_HOME=/home/elastic/logstash-7.10.2

export PATH=$PATH:$ES_HOME/bin:$KIBANA_HOME/bin:$LOGSTASH_HOME/bin

# 使之生效

source ~/.bash_profile

复制代码

  首先修改$KIBANA_HOME/config/kibana.yml配置文件中的以下几项:

  # Logstash端口

server.port: 5601

# Logstash的IP地址

server.host: "192.168.242.120"

# ES实例URL

elasticsearch.hosts: ["http://192.168.242.120:9200"]

复制代码

  直接使用如下命令(在配置环境变量的前提下)启动:

  kibana

复制代码

  

  启动成功,访问:5601:

  

  使用ELK采集SpringBoot项目的Logback日志

  查看SpringBoot的日志配置文件logback-spring.xml:

  

192.168.242.120:9001

复制代码

  我直接从logstash-logback-encoder项目的GitHub上复制了这个配置,并更改了IP地址和端口。

  GitHub 地址:

  /logstash/lo...

  启动 SpringBoot 服务:

  

  有错误提示,但启动不成功。这时候,我们猜测Logstash日志中应该会显示这个错误日志。看一看:

  

  好的,是的,不过这样看SpringBoot日志比较好。它没有 ELK 应有的乐趣。如果用 Kibana 看的话,先去索引管理页面:

  

  这里可以看到已经在Logstash配置文件中配置为索引名。

  创建索引模式:

  

  现在您可以在“发现”面板中看到日志:

  

  现在让我们根据这个错误信息修复它并重新启动SpringBoot。

  根据报错信息,可以看到,

  Could not find an appender named [CONSOLE]

复制代码

  原因是在logback-spring.xml配置文件中没有配置CONSOLE的appender,直接添加即可,如果不需要console输出就删掉这句话。

  这里为了方便在控制台查看,和ELK对比,我们也把输出添加到控制台:

  

${pattern}

复制代码

  启动SpringBoot,通过Kibana查看Logstash采集的日志:

  

  舒适!

  本次导航结束,休息!

  

  第一个公众号是星百利,欢迎老铁们关注阅读指正。代码仓库 GitHub /xblzer/Java...

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线