ELK7.10小项目演示ELK的日志分析利器(上)
优采云 发布时间: 2021-08-26 18:08ELK7.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...