此次部署为传统方式
1.Elasticsearch安装
下载 elasticsearch ,版本Linux x86_64 8.2.2 .
解压
tar -zxvf elasticsearch-8.2.2-linux-x86_64.tar.gz
修改配置文件
vi config/elasticsearch.yml
修改内容如下:
http.port: 9222
http.host: 0.0.0.0
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
这里关闭了ssl,用户和密码不用配置。
因为在root账户下不能启动es,创建一个新用户es.
(1)创建新用户es
sudo adduser es
#设置密码
sudo passwd es
(2)对es用授权
# 将此目录下授权给 es用户
sudo chown -R es:es /home/elasticsearch-8.2.2
(3)切换es用户
su es
启动
bin/elasticsearch
#后台方式启动
bin/elasticsearch -d #
启动成功后访问 http://192.168.2.42:9222/ 显示如下表示成功
2.KIbana安装及配置
解压
tar -zxvf kibana-8.2.3-linux-x86_64.tar.gz
编辑配置文件:
vi config/kibana.yml
#配置端口号
server.port: 5601
#配置网络访问地址
server.host: "0.0.0.0"
#配置es链接地址(es集群,多个用逗号分隔)
elasticsearch.hosts: ["http://192.168.2.42:9222"]
#配置中文语言界面
i18n.locale: "zh-CN"
添加用户目录权限
chown -R es:es /home/kibana-8.2.3
启用服务
#切换用户
sudo es
#正常启动
/bin/kibana
#后台启动
nohup /bin/kibana > logs/kiban.log 2>&1 &
访问ip和端口显示如下,表示安装成功。
3.LogstashLogstash安装及配置
下载Logstash,版本号8.2.3.
解压
tar -zxvf logstash-8.2.3-linux-x86_64.tar.gz
进入到解压目录的config配置目录,复制一份logstash-sample.conf并命名为logstash.conf
修改logstash.conf 内容如下:
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
tcp {
mode => "server"
host => "0.0.0.0" # 允许任意主机发送日志
#type => "elk1" # 设定type以区分每个输入源
port => 4567
codec => json_lines # 数据格式
}
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://192.168.2.42:9222"]
index => "springboot-logstash-%{+YYYY.MM.dd}"
codec => "json"
#user => "elastic"
#password => "changeme"
}
}
注释排版和格式要符合yaml语言规范。
#启动 ,注意后面的配置文件要用绝对路径.和kibana不同,这里要用root用户执行.
./logstash -f /home/logstash-8.2.3/config/logstash.conf
#后台启动
nohup ./logstash -f /home/logstash-8.2.3/config/logstack.conf > logs/logstash.log 2>&1 &
可以用telnet命令测试192.168.2.42:4567是否成功.
可用如下命令启动在控制台输入后,即可在kibana后台查看日志。
logstash -e "input { stdin { } } output { elasticsearch { hosts => ['127.0.0.1:9222'] } }"
观察启动日志,如下表示启动成功
也可用ps命令查看是否启动成功,并关闭进程。
ps aux | grep logstash
4.SpringBoot集成
springboot项目中,logback配置文件里加上如下内容
<!-- 推送日志至elk -->
<appender name="STDOUT_LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.2.42:4567</destination>
<!-- 日志输出编码 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"traceId": "%X{traceId}",
"requestId": "%X{requestId}",
"accountId": "%X{accountId}",
"tenantId": "%X{tenantId}",
"logLevel": "%level",
"serviceName": "${springAppName:-SpringApp}",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger{40}",
"line":"%L",
"message": "%message"
}
</pattern>
</pattern>
<mdc/>
<stackTrace/>
</providers>
</encoder>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT_LOGSTASH"/>
</root>
配置好项目后,先让项目跑起来。
打开http://192.168.2.42:5601/ Kibana后台地址。
先创建索引模板
这里不要勾选创建数据流选项,因为勾选后匹配索引模式后生成的是.ds开头的隐藏索引。
一直下一步到最后创建模板即可。
这种其实不是我们想要的,因为创建数据视图时也会带来麻烦..
正常是这种:
再创建数据视图
创建成功后界面.
以上索引就配置完成了。
如果你创建索引模式时选择了生成数据流,这时创建视图时如图:
下面打开Discover界面查看日志
启动springboot项目后,即可实时查看日志.
也可在Observability里查看日志
如果没有看到日志,可以在右上角'设置'里切换数据视图