91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ELK日志系統中如何進行通用應用程序日志接入

發布時間:2021-10-12 10:37:15 來源:億速云 閱讀:142 作者:柒染 欄目:云計算

這篇文章給大家介紹ELK日志系統中如何進行通用應用程序日志接入,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

日志規范

規范的日志存放路徑和輸出格式將為我們后續的收集和分析帶來極大的方便,無需考慮各種不同路徑、格式的兼容問題,只需要針對固定幾類日志做適配就可以了,具體的規范如下:

日志存放路徑規范

  1. 項目日志只能輸出到固定的位置,例如/data/logs/目錄下

  2. 同一類型(例如java web)的日志文件名保持統一,例如都叫application.log

  3. 一個類型的項目可以記錄多個不同的日志文件,例如exception.logbusiness.log

日志輸出格式規范

  1. 日志輸出必須為JSON格式,這個很重要

  2. 同一類型的項目應采用統一的日志輸出標準,盡量將日志輸出模塊化,所有項目引用同一模塊

  3. 輸出日志中必須包含標準時間(timestamp)、應用名稱(appname)、級別(level)字段,日志內容記錄清晰易懂

日志信息級別規范

日志級別說明數值
debug調試日志,日志信息量最多7
info一般信息日志,最常用的級別6
notice最具有重要性的普通條件信息5
warning警告級別4
error錯誤級別,某個功能不能正常工作3
critical嚴重級別,整個系統不能正常工作2
alert需要立刻修改的日志1
emerg內核崩潰等嚴重信息0

從上到下級別依次從低到高,日志量從多到少,正確選擇日志級別幫助后期快速排查問題

我們為什么要制定這樣的規范?

ELK日志系統中如何進行通用應用程序日志接入

  1. 我們的項目都跑在Docker里,Docker鏡像由基礎鏡像+項目代碼組成

  2. 基礎鏡像打包了運行項目的基礎環境,例如spring cloud微服務項目,則打包了jre服務

  3. 規范了日志存放及輸出后,我們可以把作為日志收集agent的filebeat一并打包進基礎鏡像,因為同一類型項目的日志路徑、格式都是一致的,filebeat配置文件可以通用

  4. 這樣我們在后續的部署過程中就不需要關心日志相關的內容,只要項目鏡像引用了這個基礎鏡像就能自動接入了我們的日志服務,實現日志的收集、處理、存儲與展示

日志采集

我們通用日志采集方案如下圖: ELK日志系統中如何進行通用應用程序日志接入

  1. 程序跑在容器里,容器內自帶Filebeat程序收集日志

  2. 收集完成后傳給kafka集群,logstash讀取kafka集群數據寫入elasticsearch集群

  3. kibana讀取elasticsearch集群數據展示在web上,開發、運維等需要查看日志的用戶登錄kibana查看

Client端Filebeat配置

filebeat.prospectors:

- input_type: log
  paths:
    - /home/logs/app/business.log
    - /home/logs/app/exception.log

  json.message_key: log
  json.keys_under_root: true

output.kafka:
  hosts: ["10.82.9.202:9092","10.82.9.203:9092","10.82.9.204:9092"]
  topic: filebeat_docker_java

Kafka接收到的數據格式

{"@timestamp":"2018-09-05T13:17:46.051Z","appname":"app01","beat":{"hostname":"52fc9bef4575","name":"52fc9bef4575","version":"5.4.0"},"classname":"com.domain.pay.service.ApiService","date":"2018-09-05 21:17:45.953+0800","filename":"ApiService.java","hostname":"172.17.0.2","level":"INFO","linenumber":285,"message":"param[{\"email\":\"TEST@163.COM\",\"claimeeIP\":\"123.191.2.75\",\"AccountName\":\"\"}]","source":"/home/logs/business.log","thread":"Thread-11","timestamp":1536153465953,"type":"log"}

Server端Logstash配置

input {
    kafka {
        bootstrap_servers => "10.82.9.202:9092,10.82.9.203:9092,10.82.9.204:9092"
        topics => ["filebeat_docker_java"]
    }
}

filter {
    json {
        source => "message"
    }

    date {
        match => ["timestamp","UNIX_MS"]
        target => "@timestamp"
    }
}

output {
    elasticsearch {
        hosts => ["10.82.9.205", "10.82.9.206", "10.82.9.207"]
        index => "filebeat-docker-java-%{+YYYY.MM.dd}"
    }
}

都是基礎配置很簡單,不做過多解釋,通過以上簡單的配置就能實現任何應用程序的日志收集

日志展示

收集日志到elasticsearch之后,就可以通過kibana配置展示應用程序的日志了,方便開發及時發現問題,在線定位問題 ELK日志系統中如何進行通用應用程序日志接入

  1. 日志打印Json格式不方便本地查看?這個可以把日志輸出格式當做配置寫在配置文件中,不同環境加載不同配置,就跟開發環境加載開發數據庫一樣

  2. 日志系統上線到現在穩定運行接近2年,除了剛開始有點不適應以為,都是越用越好用,現在他們已經離不開ELK日志系統了,大大提高了工作的效率。

  3. 關于ELK日志系統中如何進行通用應用程序日志接入就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

elk
AI

河北省| 湄潭县| 桂东县| 沧州市| 灵台县| 修文县| 长顺县| 如皋市| 馆陶县| 陆丰市| 磐石市| 驻马店市| 莲花县| 长寿区| 荃湾区| 舞阳县| 离岛区| 涟水县| 张家界市| 手游| 乐东| 时尚| 常熟市| 社旗县| 吴堡县| 华坪县| 黄陵县| 巧家县| 宜州市| 湘阴县| 达拉特旗| 九江市| 新巴尔虎右旗| 吉安县| 元江| 儋州市| 彭泽县| 锡林浩特市| 清河县| 成都市| 黔南|