• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Logstash Logback Encoder实现ELK日志归集

武飞扬头像
wpet
帮助2

写在前面

搭建SpringCloud平台日志归集方案,主要使用Logstash Logback Encoder组件实现。
主要分为运维相关的配置和开发相关的配置,具体分类无需纠结,都了解一遍即可。
不足之处,各位大神指出,感谢~

运维相关配置

Elasticsearch配置

{
  "_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
系列文章
更多 icon
同类精品
更多 icon
继续加载