国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

logback 集成 logstash

這篇具有很好參考價(jià)值的文章主要介紹了logback 集成 logstash。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

logback 集成 logstash

相關(guān)環(huán)境參考: Java 輸出 JSON 日志

1. 添加依賴

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>7.2</version>
</dependency>

2. 修改logback.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- scan=true 支持動(dòng)態(tài)更新配置文件,默認(rèn)1分鐘刷新一次,可以通過(guò) scanPeriod="30 seconds" 指定刷新周期 -->
<configuration scan="true">
  <!-- in the absence of the class attribute, assume ch.qos.logback.core.hook.ShutdownHook -->
  <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook">
    <delay>5 seconds</delay>
  </shutdownHook>

  <!-- 控制臺(tái)輸出 -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] - %-5level %logger:%L - %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <!-- logstash tcp 服務(wù)器地址,可以配置多個(gè)地址 -->
    <destination>172.30.225.232:5000</destination>
    <!-- 保持連接 -->
    <keepAliveDuration>5 minutes</keepAliveDuration>
    <!-- 連接超時(shí)等待時(shí)間 -->
    <connectionTimeout>5 seconds</connectionTimeout>
    <!-- 重連延遲,默認(rèn) 30s -->
    <reconnectionDelay>30 second</reconnectionDelay>
    <!-- 等待策略,需要測(cè)試和監(jiān)控CPU找到最佳配置 -->
    <!-- 文檔: https://github.com/logfellow/logstash-logback-encoder#wait-strategy -->
    <waitStrategyType>sleeping</waitStrategyType>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
      <customFields>{"host":"${HOSTNAME}", "appname":"cloud-user"}</customFields>
    </encoder>
  </appender>

  <root level="INFO">
    <appender-ref ref="logstash"/>
    <appender-ref ref="STDOUT"/>
  </root>

</configuration>

3. 配置說(shuō)明

如果原有配置文件中需要保留一些特殊配置時(shí),需要理解這里的配置才能將配置應(yīng)用到已有的配置中。

3.1 動(dòng)態(tài)刷新

想要在應(yīng)用運(yùn)行時(shí)看到修改配置文件后的效果,可以在原有配置添加:

<!-- scan=true 支持動(dòng)態(tài)更新配置文件,默認(rèn)1分鐘刷新一次,可以通過(guò) scanPeriod="30 seconds" 指定刷新周期 -->
<configuration scan="true">

3.2 優(yōu)雅關(guān)機(jī)

增加logstash配置后,為了讓程序在關(guān)閉時(shí)能正確關(guān)閉相關(guān)的資源,建議配置:

<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook">
    <delay>5 seconds</delay>
</shutdownHook>

服務(wù)會(huì)等待5秒后執(zhí)行釋放資源的相關(guān)操作。

3.3 logstash appender

添加下面的配置,各部分說(shuō)明看下面注釋:

<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <!-- logstash tcp 服務(wù)器地址,可以配置多個(gè)地址 -->
    <destination>IP:5000</destination>
    <!-- 保持連接 -->
    <keepAliveDuration>5 minutes</keepAliveDuration>
    <!-- 連接超時(shí)等待時(shí)間 -->
    <connectionTimeout>5 seconds</connectionTimeout>
    <!-- 重連延遲,默認(rèn) 30s -->
    <reconnectionDelay>30 second</reconnectionDelay>
    <!-- 等待策略,需要測(cè)試和監(jiān)控CPU找到最佳配置 -->
    <!-- 文檔: https://github.com/logfellow/logstash-logback-encoder#wait-strategy -->
    <waitStrategyType>sleeping</waitStrategyType>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <customFields>{"host":"${HOSTNAME}", "appname":"cloud-user"}</customFields>
    </encoder>
</appender>

這里特別說(shuō)明 <customFields>{"host":"${HOSTNAME}", "appname":"cloud-user"}</customFields>

  • host 會(huì)在 json 中添加主機(jī)信息,以后有類似 POD 相關(guān)信息時(shí),可以參考這里使用環(huán)境變量。
  • appname 定義當(dāng)前的應(yīng)用名,這里配置死的,后續(xù)使用容器或者POD時(shí),也可以通過(guò)環(huán)境變量進(jìn)行設(shè)置。

除此之外,還可以添加額外的自定義字段。

3.4 應(yīng)用 appender

將 logstash appender 添加到某個(gè) logger 下面,例如全局的:

<root level="INFO">
    <appender-ref ref="logstash"/>
    <!-- 其他 appender -->
</root>

3.5 總結(jié)

到這里可以看到,上面提供的完整配置中,沒(méi)有介紹常見(jiàn)的 控制臺(tái)輸出,其他都是必要的配置。

配置正常后,就可以將日志以 JSON 形式輸出到 logstash 中了,logstash 可以參考下面的配置,提供 tcp 端口的服務(wù):

input {
    tcp {
        port => 5000
        codec => json_lines
    }
}

output {
  elasticsearch {
     hosts => ["elasticsearch:9200"]
     index => "app-%{[appname]}-%{+YYYY.MM.dd}"
  }
  stdout {
  }
}

elasticsearch 插件文檔:https://www.elastic.co/guide/en/logstash/8.5/plugins-outputs-elasticsearch.html

上面的配置會(huì)為每個(gè) appname 創(chuàng)建對(duì)應(yīng)的索引,在 Kibana 中的 DavaView 可以配置 app* 索引來(lái)查看所有應(yīng)用的日志。

4. 代碼中使用

默認(rèn)情況下,代碼中仍然通過(guò) logger.info(...) 方式輸出日志即可,日志的內(nèi)容會(huì)作為 message 字段存儲(chǔ)。

如果想要額外記錄其他信息,全局的信息可以通過(guò) slf4j 的 MDC 機(jī)制記錄,如下:

//記住用slf4j,不要依賴具體的實(shí)現(xiàn)
//import org.slf4j.MDC;
MDC.put("xxx", "xxx");
logger.info(....);
MDC.remove("XXX");

MDC信息和線程綁定,處理不好可能會(huì)亂,logstash-logback-encoder 提供了 StructuredArguments,參考文檔:

https://github.com/logfellow/logstash-logback-encoder#event-specific-custom-fields

由于這種方式依賴了具體的日志實(shí)現(xiàn),需要做一層封裝才適合使用。

5. Kibana 效果

5.1 索引

logback logstash,運(yùn)維,JAVA編程,logback,elasticsearch,大數(shù)據(jù)

5.2 Data Views

logback logstash,運(yùn)維,JAVA編程,logback,elasticsearch,大數(shù)據(jù)

5.3 Discover

logback logstash,運(yùn)維,JAVA編程,logback,elasticsearch,大數(shù)據(jù)

logback logstash,運(yùn)維,JAVA編程,logback,elasticsearch,大數(shù)據(jù)
對(duì)應(yīng)的 JSON:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-791320.html

{
  "_index": "app-cloud-user-2022.11.26",
  "_id": "qbYdsoQBuYtdaHhXAY0t",
  "_version": 1,
  "_score": 0,
  "_source": {
    "message": "hello indexStr=201, 2022-11-26T04:05:55.852Z",
    "@version": "1",
    "appname": "cloud-user",
    "host": "liuzh-pc",
    "level_value": 20000,
    "config": {
      "date": "2022-11-26 12:05:55",
      "uuid": "dd0cedcc-82e4-4783-8bcc-09c32b2fd051"
    },
    "thread_name": "Thread-9",
    "level": "INFO",
    "dateStr": "2022-11-26T04:05:55.852Z",
    "logger_name": "com.example.springbootjsonlog.SpringBootJsonLogApplication",
    "@timestamp": "2022-11-26T04:05:55.852Z",
    "HOSTNAME": "liuzh-pc",
    "indexStr": "201"
  },
  "fields": {
    "config.date": [
      "2022-11-26 12:05:55"
    ],
    "indexStr": [
      "201"
    ],
    "appname.keyword": [
      "cloud-user"
    ],
    "config.date.keyword": [
      "2022-11-26 12:05:55"
    ],
    "appname": [
      "cloud-user"
    ],
    "host": [
      "liuzh-pc"
    ],
    "@version": [
      "1"
    ],
    "logger_name": [
      "com.example.springbootjsonlog.SpringBootJsonLogApplication"
    ],
    "host.keyword": [
      "liuzh-pc"
    ],
    "logger_name.keyword": [
      "com.example.springbootjsonlog.SpringBootJsonLogApplication"
    ],
    "config.uuid.keyword": [
      "dd0cedcc-82e4-4783-8bcc-09c32b2fd051"
    ],
    "thread_name.keyword": [
      "Thread-9"
    ],
    "dateStr": [
      "2022-11-26T04:05:55.852Z"
    ],
    "level": [
      "INFO"
    ],
    "HOSTNAME.keyword": [
      "liuzh-pc"
    ],
    "@version.keyword": [
      "1"
    ],
    "message": [
      "hello indexStr=201, 2022-11-26T04:05:55.852Z"
    ],
    "@timestamp": [
      "2022-11-26T04:05:55.852Z"
    ],
    "HOSTNAME": [
      "liuzh-pc"
    ],
    "level.keyword": [
      "INFO"
    ],
    "level_value": [
      20000
    ],
    "thread_name": [
      "Thread-9"
    ],
    "message.keyword": [
      "hello indexStr=201, 2022-11-26T04:05:55.852Z"
    ],
    "indexStr.keyword": [
      "201"
    ],
    "config.uuid": [
      "dd0cedcc-82e4-4783-8bcc-09c32b2fd051"
    ]
  }
}

到了這里,關(guān)于logback 集成 logstash的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Logstash Logback Encoder實(shí)現(xiàn)ELK日志歸集

    搭建SpringCloud平臺(tái)日志歸集方案,主要使用Logstash Logback Encoder組件實(shí)現(xiàn)。 主要分為運(yùn)維相關(guān)的配置和開(kāi)發(fā)相關(guān)的配置,具體分類無(wú)需糾結(jié),都了解一遍即可。 不足之處,各位大神指出,感謝~ Elasticsearch配置 新建Index Templates,Mapping參考值如下,具體參考值可參考 Logstash Logba

    2024年02月11日
    瀏覽(33)
  • docker搭建elk環(huán)境并實(shí)現(xiàn)logstash監(jiān)聽(tīng)logback,親測(cè)有效!??!

    docker搭建elk環(huán)境并實(shí)現(xiàn)logstash監(jiān)聽(tīng)logback,親測(cè)有效?。?!

    原因:線上日志太多且沒(méi)有長(zhǎng)期保存,導(dǎo)致問(wèn)題發(fā)現(xiàn)晚點(diǎn)就找不到日志了,當(dāng)然可以更改日志保存時(shí)間,但是還有個(gè)問(wèn)題就是不好查詢,需要根據(jù)時(shí)間去查找到底查詢哪個(gè)日志文件,于是想到了用elk收集日志,這樣就好查詢了。 簡(jiǎn)單了解了一下elk是什么,首先elk是三個(gè)中間件

    2024年01月17日
    瀏覽(36)
  • springboot集成logback

    1、引入maven依賴 2、再resource下面新建一個(gè)文件名稱為 logback-spring.xml 3、logback詳解

    2024年02月10日
    瀏覽(13)
  • springboot集成Logback 日志寫入數(shù)據(jù)庫(kù)

    springboot集成Logback 日志寫入數(shù)據(jù)庫(kù)

    引入maven依賴 注意:springboot內(nèi)部是有Logback的包,但是本人使用的時(shí)候缺少部分類文件,因此單獨(dú)映入了一次 建表 logback有三張表logging_event、logging_event_exception、logging_event_property,不需要自己創(chuàng)建,只需要在如下位置找到自己保存的庫(kù)表生成sql復(fù)制運(yùn)行即可. 添加配置文件(logback-sp

    2024年02月07日
    瀏覽(27)
  • 如何基于運(yùn)維事件中心通過(guò) logstash 進(jìn)行日志關(guān)鍵字監(jiān)控

    日常運(yùn)維過(guò)程中,很多場(chǎng)景都需要對(duì)日志進(jìn)行監(jiān)測(cè),以便第一時(shí)間發(fā)現(xiàn)應(yīng)用/業(yè)務(wù)相關(guān)異常,這是一種比較常見(jiàn)的監(jiān)控需求,所以也有很多方法可以實(shí)現(xiàn)告警。對(duì)于簡(jiǎn)單的告警可以通過(guò)一些傳統(tǒng)的監(jiān)控工具實(shí)現(xiàn),但對(duì)于體量和業(yè)務(wù)是非常復(fù)雜的中大型企業(yè)來(lái)說(shuō),在

    2024年02月20日
    瀏覽(26)
  • Elasticsearch 介紹及java集成

    Elasticsearch 介紹及java集成

    ElasticSearch 是分布式實(shí)時(shí)搜索、實(shí)時(shí)分析、實(shí)時(shí)存儲(chǔ)引擎,簡(jiǎn)稱(ES), 成立于2012年,是一家來(lái)自荷蘭的、開(kāi)源的大數(shù)據(jù)搜索、分析服務(wù)提供商,為企業(yè)提供實(shí)時(shí)搜索、數(shù)據(jù)分析服務(wù),支持PB級(jí)的大數(shù)據(jù)。 基于Apache Lucene 開(kāi)源搜索引擎,Lucene是目前公認(rèn)的性能最好,最先進(jìn)的,

    2024年02月16日
    瀏覽(14)
  • Logback日志框架使用詳解以及如何Springboot快速集成

    Logback日志框架使用詳解以及如何Springboot快速集成

    ? 日志系統(tǒng)是用于記錄程序的運(yùn)行過(guò)程中產(chǎn)生的運(yùn)行信息、異常信息等,一般有8個(gè)級(jí)別,從低到高為All Trace Debug Info Warn Error Fatal OFF off 最高等級(jí),用于關(guān)閉所有日志記錄 fatal 指出每個(gè)嚴(yán)重的錯(cuò)誤事件將會(huì)導(dǎo)致應(yīng)用程序的退出。 error 指出雖然發(fā)生錯(cuò)誤事件,但仍然不影響系統(tǒng)

    2024年02月07日
    瀏覽(32)
  • Elasticsearch與Java的集成與使用

    Elasticsearch是一個(gè)基于Lucene的搜索引擎,它具有實(shí)時(shí)搜索、分布式、可擴(kuò)展和高性能等特點(diǎn)。Java是一種廣泛使用的編程語(yǔ)言,它與Elasticsearch之間的集成和使用是非常重要的。本文將從以下幾個(gè)方面進(jìn)行闡述: 核心概念與聯(lián)系 核心算法原理和具體操作步驟 數(shù)學(xué)模型公式詳細(xì)講

    2024年02月19日
    瀏覽(18)
  • 【java_wxid項(xiàng)目】【第十三章】【Elasticsearch集成】

    【java_wxid項(xiàng)目】【第十三章】【Elasticsearch集成】

    主項(xiàng)目鏈接:https://gitee.com/java_wxid/java_wxid 項(xiàng)目架構(gòu)及博文總結(jié): 點(diǎn)擊:【使用Spring Boot快速構(gòu)建應(yīng)用】 點(diǎn)擊:【使用Spring Cloud Open Feign基于動(dòng)態(tài)代理動(dòng)態(tài)構(gòu)造請(qǐng)求實(shí)現(xiàn)與其他系統(tǒng)進(jìn)行交互】 點(diǎn)擊:【使用Spring Cloud Hystrix實(shí)現(xiàn)服務(wù)容錯(cuò)、熔斷、降級(jí)、監(jiān)控】 點(diǎn)擊:【使用Spr

    2023年04月09日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包