Logstash Logback Encoder实现ELK日志归集
写在前面
搭建SpringCloud平台日志归集方案,主要使用Logstash Logback Encoder组件实现。
主要分为运维相关的配置和开发相关的配置,具体分类无需纠结,都了解一遍即可。
不足之处,各位大神指出,感谢~
运维相关配置
Elasticsearch配置
- 新建Index Templates,Mapping参考值如下,具体参考值可参考 Logstash Logback Encoder
{
"_doc": {
"_meta": {},
"_source": {},
"properties": {
"appname": {
"type": "text"
},
"stacktrace": {
"type": "text"
},
"level": {
"type": "text"
},
"port": {
"type": "integer"
},
"service": {
"type": "text"
},
"logger": {
"type": "text"
},
"host": {
"type": "text"
},
"thread": {
"type": "text"
},
"levelVal": {
"coerce": true,
"index": true,
"ignore_malformed": false,
"store": false,
"type": "integer",
"doc_values": true
},
"message": {
"type": "text"
}
}
}
}
kibana相关配置
建立Index patterns。根据Elastic search的索引规则配置,建立Kibana的Index patterns。
logstash配置
- logstash.conf配置文件,新增logstash.conf文件,内容如下
input {
tcp {
mode => "server"
port => 4561 # nacos指定的端口
codec => json_lines
}
}
output {
# stdout { codec => rubydebug } # 调试时开启,线上关闭
if [platform] == "projectName" {
elasticsearch {
hosts => "elasticsearch:9200"
index => "projectName-platform-%{ yyyy-MM-dd}"
}
}
}
- logstash启动命令
bin/logstash -f logstash.conf
nacos项目配置文件
- nacos项目级-配置方法
projectName:
logstash:
open: true #配置是否开启ELK日志收集
appname: model (设置自身项目appname)
ip: 192.168.xxx.xxx #Logstash地址
port: 4561 #Logstash TCP端口
开发相关配置
Logback.xml配置文件
- 增加Property配置
<springProperty scope="local" name="LOGSTASH_IP" source="projectName.logstash.ip"/>
<springProperty scope="local" name="LOGSTASH_PORT" source="projectName.logstash.port"/>
<springProperty scope="local" name="LOGSTASH_OPEN" source="projectName.logstash.open"/>
<springProperty scope="local" name="LOGSTASH_APP_NAME" source="projectName.logstash.appname" defaultValue="appname"/>
- 增加logstash appender
<!--logstash log appender-->
<if condition='property("LOGSTASH_OPEN").equals("true")'>
<then>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGSTASH_IP}:${LOGSTASH_PORT}</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
<fieldNames class="net.logstash.logback.fieldnames.ShortenedFieldNames"/>
<!-- 根据自身项目修改appname名称,在配置中心项目所属配置文件增加,同时需要修改logstash.conf配置 -->
<customFields>{"appname":"${LOGSTASH_APP_NAME}"}</customFields>
</encoder>
</appender>
</then>
</if>
- 增加root
<if condition='property("LOGSTASH_OPEN").equals("true")'>
<then>
<appender-ref ref="LOGSTASH"/>
</then>
</if>
pom.xml配置文件
- 增加新的依赖
<!--logstash logback插件-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
</dependency>
<!--logback插件-->
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
</dependency>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanheakaea
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13