日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

查詢分析RocketMQ客戶端日志

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。

本文使用Beats、Elasticsearch、Logstash和Kibana,在分布式環(huán)境下采集、匯聚、解析阿里云RocketMQ客戶端SDK日志,幫助您在消息隊(duì)列開發(fā)場(chǎng)景中快速定位并解決應(yīng)用開發(fā)問題。

背景信息

阿里云Elasticsearch(簡(jiǎn)稱ES)已具備Elastic Stack全棧套件:Elasticsearch、Logstash、Kibana和Beats,具有日志匯聚、快速分析、可視化展示等能力,與開源產(chǎn)品相比具有以下優(yōu)勢(shì):

  • Beats和Logstash服務(wù)部署在專有網(wǎng)絡(luò)VPC(Virtual Private Cloud)中,所有數(shù)據(jù)私網(wǎng)通信,高速且安全。

  • Elastic Stack全棧套件具有“0部署,輕運(yùn)維”的特性,省去了在分布式環(huán)境下逐個(gè)節(jié)點(diǎn)安裝與配置Beats采集器的繁瑣工作,同時(shí)解決了分布式消息中間件日志分散、采集困難的問題。

  • 支持在控制臺(tái)快速添加和移除Beats實(shí)例,能夠適應(yīng)RocketMQ的彈性伸縮特性。

本方案使用的產(chǎn)品包括:阿里云消息隊(duì)列RocketMQ版阿里云Elasticsearch,方案架構(gòu)如下。方案架構(gòu)

操作流程

  1. 準(zhǔn)備工作

    完成創(chuàng)建阿里云ES實(shí)例和Logstash實(shí)例、開通RocketMQ消息隊(duì)列服務(wù)、創(chuàng)建ECS實(shí)例并在實(shí)例中安裝云助手和Docker服務(wù)。各實(shí)例或服務(wù)的功能如下:

    • RocketMQ消息隊(duì)列服務(wù):提供RocketMQ資源,包括實(shí)例、Topic、Group。

    • ECS實(shí)例:安裝Filebeat并運(yùn)行RocketMQ測(cè)試工程,生成客戶端日志。

    • 阿里云Logstash實(shí)例:通過管道配置將Filebeat采集的日志同步到阿里云ES中。

    • 阿里云ES實(shí)例:對(duì)日志進(jìn)行分析,并進(jìn)行可視化展示。

    重要

    請(qǐng)確保阿里云ES實(shí)例、Logstash實(shí)例和ECS實(shí)例在同一專有網(wǎng)絡(luò)VPC(Virtual Private Cloud)下。

  2. 步驟一:創(chuàng)建并配置Filebeat采集器

    通過Filebeat將RocketMQ的客戶端日志采集到Logstash中。

  3. 步驟二:創(chuàng)建并運(yùn)行Logstash管道

    通過管道配置,使用Grok filter插件處理Filebeat采集的RocketMQ客戶端日志,然后同步到阿里云ES中。

  4. 步驟三:模擬RocketMQ客戶端日志

    在安裝Filebeat的ECS上運(yùn)行RocketMQ客戶端測(cè)試工程,生成日志數(shù)據(jù)。

  5. 步驟四:通過Kibana查看日志

    創(chuàng)建索引模式,并在Kibana的Discover頁面查看日志的詳細(xì)信息。

  6. 步驟五:通過Kibana分析日志

    以篩選ERROR級(jí)別日志為例,演示在Kibana中分析并解讀日志數(shù)據(jù)的方法。

準(zhǔn)備工作

  1. 創(chuàng)建阿里云ES實(shí)例,并開啟自動(dòng)創(chuàng)建索引功能。

  2. 創(chuàng)建阿里云Logstash實(shí)例,要求與阿里云ES實(shí)例在同一VPC下。

    具體操作步驟請(qǐng)參見創(chuàng)建阿里云Logstash實(shí)例

  3. 開通RocketMQ消息隊(duì)列服務(wù),并創(chuàng)建所需資源,包括實(shí)例、Topic、Group。

  4. 創(chuàng)建一個(gè)或多個(gè)ECS實(shí)例,并且該實(shí)例與阿里云ES實(shí)例和Logstash實(shí)例處于同一VPC下。

    具體操作步驟請(qǐng)參見自定義購(gòu)買實(shí)例

    重要

    ECS的操作系統(tǒng)必須為Alibaba Cloud Linux (Alinux)、RedHat或CentOS。因?yàn)锽eats僅支持這三種操作系統(tǒng)。

  5. 在ECS實(shí)例中安裝云助手和Docker服務(wù)。

    具體操作步驟請(qǐng)參見安裝云助手Agent部署并使用Docker

    重要

    所選ECS必須安裝云助手和Docker,且對(duì)應(yīng)服務(wù)已正常運(yùn)行。因?yàn)榘惭bBeats時(shí)會(huì)依賴這兩個(gè)服務(wù)。

步驟一:創(chuàng)建并配置Filebeat采集器

  1. 登錄阿里云Elasticsearch控制臺(tái)
  2. 在左側(cè)導(dǎo)航欄,單擊Beats數(shù)據(jù)采集中心

  3. 創(chuàng)建采集器區(qū)域中,單擊Filebeat

  4. 安裝并配置采集器。

    詳情請(qǐng)參見采集ECS服務(wù)日志采集器YML配置,本文使用的配置如下。filebeat配置

    參數(shù)

    說明

    采集器名稱

    自定義采集器名稱。

    安裝版本

    目前只支持6.8.5版本。

    采集器Output

    指定目標(biāo)阿里云Logstash的實(shí)例ID,在YML配置中不需要重新指定Output。

    填寫Filebeat文件目錄

    填寫數(shù)據(jù)源所在的目錄,同時(shí)需要在YML配置中開啟log數(shù)據(jù)采集,并配置log路徑。

    采集器Yml配置

    • 開啟log數(shù)據(jù)采集,將enabled修改為true

    • 修改paths為具體的日志文件路徑,與Filebeat文件目錄保持一致。

    • 調(diào)整Multiline options相關(guān)配置,解決多行日志及java stacktrace的情況。

       multiline.pattern: '^([0-9]{4}-[0-9]{2}-[0-9]{2})'
       multiline.negate: true
       multiline.match: after
       multiline.timeout: 120s #default 5s
       multiline.max_lines: 10000 #default 500

    完整的filebeat.yml配置如下。filebeat.yml配置

    ###################### Filebeat Configuration Example #########################
    
    #=========================== Filebeat inputs =============================
    
    filebeat.inputs:
    
      # Each - is an input. Most options can be set at the input level, so
      # you can use different inputs for various configurations.
      # Below are the input specific configurations.
    
      - type: log
    
        # Change to true to enable this input configuration.
        enabled: true
    
        # Paths that should be crawled and fetched. Glob based paths.
        paths:
          - /root/logs/ons.log
          #- c:\programdata\elasticsearch\logs\*
    
        ### Multiline options
    
        # Multiline can be used for log messages spanning multiple lines. This is common
        # for Java Stack Traces or C-Line Continuation
    
        multiline.pattern: '^([0-9]{4}-[0-9]{2}-[0-9]{2})'
        multiline.negate: true
        multiline.match: after
    
        multiline.timeout: 120s #default 5s
        multiline.max_lines: 10000 #default 500
    
    #==================== Elasticsearch template setting ==========================
    
    setup.template.settings:
      index.number_of_shards: 3
      #index.codec: best_compression
      #_source.enabled: false
    
    #================================ Processors =====================================
    
    # Configure processors to enhance or manipulate events generated by the beat.
    
    processors:
      - add_host_metadata: ~
      - add_cloud_metadata: ~
  5. 單擊下一步

  6. 采集器安裝配置向?qū)е校x擇安裝采集器的ECS實(shí)例。

    選擇采集器安裝實(shí)例

  7. 啟動(dòng)采集器并查看采集器安裝情況。

    1. 單擊啟動(dòng)

      啟動(dòng)成功后,系統(tǒng)彈出啟動(dòng)成功對(duì)話框。

    2. 單擊前往采集中心查看,返回Beats數(shù)據(jù)采集中心頁面,在采集器管理區(qū)域中,查看啟動(dòng)成功的Filebeat采集器。

    3. 等待采集器狀態(tài)變?yōu)?b data-tag="uicontrol" id="uicontrol-234-a3w-q2m" class="uicontrol">已生效1/1后,單擊右側(cè)操作欄下的查看運(yùn)行實(shí)例

    4. 查看運(yùn)行實(shí)例頁面,查看采集器安裝情況,當(dāng)顯示為心跳正常時(shí),說明采集器安裝成功。

      查看運(yùn)行實(shí)例

步驟二:創(chuàng)建并運(yùn)行Logstash管道

  1. 進(jìn)入阿里云Elasticsearch控制臺(tái)的Logstash頁面
  2. 進(jìn)入目標(biāo)實(shí)例。
    1. 在頂部菜單欄處,選擇地域。
    2. Logstash實(shí)例中單擊目標(biāo)實(shí)例ID。
  3. 在左側(cè)導(dǎo)航欄,單擊管道管理

  4. 單擊創(chuàng)建管道

  5. 創(chuàng)建管道任務(wù)頁面,輸入管道ID并配置管道。

    本文使用的Config配置如下。

    input {
        beats {
            port => 8000
        }
    }
    filter {
        grok    {
              match => {
                  "message" => "%{TIMESTAMP_ISO8601:log_time} %{LOGLEVEL:log_level} %{GREEDYDATA:log_message}"
            }
        }
    }
    output {
      elasticsearch {
        hosts => "http://es-cn-4591jumei000u****.elasticsearch.aliyuncs.com:9200"
        user =>"elastic"
        password =>"<your_password>"
        index => "rocketmq-%{+YYYY.MM.dd}"
     }
    }
    • input:輸入插件。以上配置使用beats插件,指定8000端口。

    • filter:過濾插件。以上配置提供了Grok filter示例,解析RocketMQ客戶端SDK日志,提取log_timelog_level以及log_message三個(gè)字段信息,方便您分析日志。您也可以根據(jù)需求修改filter.grok.match的內(nèi)容。

    • output:輸出插件。以上配置使用elasticsearch插件,相關(guān)參數(shù)說明如下。

      參數(shù)

      說明

      hosts

      阿里云ES的訪問地址,設(shè)置為http://<阿里云ES實(shí)例的私網(wǎng)地址>:9200

      說明

      您可在阿里云ES實(shí)例的基本信息頁面獲取其私網(wǎng)地址,詳情請(qǐng)參見查看實(shí)例的基本信息

      user

      訪問阿里云ES的用戶名,默認(rèn)為elastic。您也可以使用自建用戶,詳情請(qǐng)參見通過Elasticsearch X-Pack角色管理實(shí)現(xiàn)用戶權(quán)限管控

      password

      訪問阿里云ES的密碼,在創(chuàng)建實(shí)例時(shí)設(shè)置。如果忘記密碼,可進(jìn)行重置,重置密碼的注意事項(xiàng)及操作步驟請(qǐng)參見重置實(shí)例訪問密碼

      index

      索引名稱。設(shè)置為rocketmq-%{+YYYY.MM.dd}表示索引名稱以rocketmq為前綴,以日期為后綴,例如rocketmq-2020.05.27

    更多Config配置詳情請(qǐng)參見Logstash配置文件說明

  6. 單擊下一步,配置管道參數(shù)。

    管道參數(shù)配置

    參數(shù)

    說明

    管道工作線程

    并行執(zhí)行管道的Filter和Output的工作線程數(shù)量。當(dāng)事件出現(xiàn)積壓或CPU未飽和時(shí),請(qǐng)考慮增大線程數(shù),更好地使用CPU處理能力。默認(rèn)值:實(shí)例的CPU核數(shù)。

    管道批大小

    單個(gè)工作線程在嘗試執(zhí)行Filter和Output前,可以從Input收集的最大事件數(shù)目。較大的管道批大小可能會(huì)帶來較大的內(nèi)存開銷。您可以設(shè)置LS_HEAP_SIZE變量,來增大JVM堆大小,從而有效使用該值。默認(rèn)值:125。

    管道批延遲

    創(chuàng)建管道事件批時(shí),將過小的批分派給管道工作線程之前,要等候每個(gè)事件的時(shí)長(zhǎng),單位為毫秒。默認(rèn)值:50ms。

    隊(duì)列類型

    用于事件緩沖的內(nèi)部排隊(duì)模型。可選值:

    • MEMORY:默認(rèn)值。基于內(nèi)存的傳統(tǒng)隊(duì)列。

    • PERSISTED:基于磁盤的ACKed隊(duì)列(持久隊(duì)列)。

    隊(duì)列最大字節(jié)數(shù)

    請(qǐng)確保該值小于您的磁盤總?cè)萘俊DJ(rèn)值:1024 MB。

    隊(duì)列檢查點(diǎn)寫入數(shù)

    啟用持久性隊(duì)列時(shí),在強(qiáng)制執(zhí)行檢查點(diǎn)之前已寫入事件的最大數(shù)目。設(shè)置為0,表示無限制。默認(rèn)值:1024。

    警告

    配置完成后,需要保存并部署才能生效。保存并部署操作會(huì)觸發(fā)實(shí)例重啟,請(qǐng)?jiān)诓挥绊憳I(yè)務(wù)的前提下,繼續(xù)執(zhí)行以下步驟。

  7. 單擊保存或者保存并部署

    • 保存:將管道信息保存在Logstash里并觸發(fā)實(shí)例變更,配置不會(huì)生效。保存后,系統(tǒng)會(huì)返回管道管理頁面。可在管道列表區(qū)域,單擊操作列下的立即部署,觸發(fā)實(shí)例重啟,使配置生效。

    • 保存并部署:保存并且部署后,會(huì)觸發(fā)實(shí)例重啟,使配置生效。

步驟三:模擬RocketMQ客戶端日志

  1. 連接安裝了Filebeat的ECS實(shí)例。

    具體操作步驟請(qǐng)參見連接實(shí)例

  2. 搭建并運(yùn)行消息隊(duì)列RocketMQ版測(cè)試工程,發(fā)送若干條測(cè)試消息,生成日志。

    具體操作步驟請(qǐng)參見RocketMQ Demo工程

    圖 1. 發(fā)送消息MQ日志測(cè)試

    圖 2. 查看日志mq日志

步驟四:通過Kibana查看日志

  1. 登錄目標(biāo)阿里云ES實(shí)例的Kibana控制臺(tái)。

    具體操作步驟請(qǐng)參見登錄Kibana控制臺(tái)

  2. 創(chuàng)建一個(gè)索引模式。

    1. 在左側(cè)導(dǎo)航欄,單擊Management

    2. 在Kibana區(qū)域,單擊Index Patterns

    3. 單擊Create index pattern

    4. 輸入Index pattern(本文使用rocketmq-*),單擊Next step

      創(chuàng)建索引模式

    5. 選擇Time Filter field name(本文選擇@timestamp),單擊Create index pattern

      Configure setting

      說明

      選擇@timestamp作為時(shí)間過濾器,可以方便通過直方圖等其他可視化圖表展示日志數(shù)據(jù)。

  3. 在左側(cè)導(dǎo)航欄,單擊Discover

  4. 從頁面左側(cè)的下拉列表中,選擇您已創(chuàng)建的索引模式(rocketmq-*)。

  5. 在頁面右上角,選擇一段時(shí)間,查看對(duì)應(yīng)時(shí)間段內(nèi)的Filebeat采集的日志數(shù)據(jù)。

    discover頁面

    區(qū)域

    說明

    數(shù)據(jù)查詢區(qū)域。您可根據(jù)需求在此區(qū)域輸入查詢語句,查詢語句需符合Kibana Query Language要求,例如log_level:ERROR

    時(shí)間和刷新頻率選擇區(qū)域。您可在此區(qū)域選擇展示哪個(gè)時(shí)間段內(nèi)的數(shù)據(jù),以及數(shù)據(jù)刷新的頻率。

    字段選擇區(qū)域。您可根據(jù)需求在此區(qū)域選擇要展示的字段。

    直方圖展示區(qū)域。系統(tǒng)會(huì)根據(jù)創(chuàng)建索引模式時(shí)指定的@timestamp字段,通過直方圖在此區(qū)域匯聚展示所選字段的數(shù)據(jù)。

    數(shù)據(jù)展示區(qū)域。您可在此區(qū)域查看所選字段的數(shù)據(jù)。

步驟五:通過Kibana分析日志

對(duì)于Java開發(fā)類日志,開發(fā)者在運(yùn)維時(shí)最為關(guān)心的是ERROR日志,以下示例演示如何篩選ERROR級(jí)別日志。為了演示需要,本例在RocketMQ控制臺(tái)將topic刪除,制造ERROR場(chǎng)景。具體分析方法如下:

  1. Discover頁面的數(shù)據(jù)查詢區(qū)域輸入如下搜索語句,篩選出ERROR級(jí)別日志。

    log_level:ERROR
  2. 解讀篩選的日志信息。

    篩選錯(cuò)誤日志

    從篩選結(jié)果可以看到:

    • 所選時(shí)間段內(nèi)有10條ERROR日志。

    • 具體的報(bào)錯(cuò)信息是No route info of this topic, MQ_INST_**********_BcrpdQUI%testes,從報(bào)錯(cuò)信息可以判斷出現(xiàn)ERROR日志的原因是該實(shí)例(MQ_INST_**********_BcrpdQUI)中topic(testes)的路由信息丟失,可能原因是topic配置錯(cuò)誤、topic被誤刪等。

    • 報(bào)錯(cuò)的時(shí)間點(diǎn)為June 16th 2020, 17:24:00.168

    • 將單個(gè)報(bào)錯(cuò)信息展開后,還能看到具體拋出ERROR日志的主機(jī)(host.name)信息,進(jìn)而精確定位到具體的應(yīng)用實(shí)例,然后通過遠(yuǎn)程登錄該實(shí)例快速定位排查問題。