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

使用阿里云ES監控RabbitMQ

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

RabbitMQ是一個開源的消息代理服務器,能夠為您的應用提供一個通用的消息發送和接收平臺,并且保證消息在傳輸過程中的安全性。本文介紹如何通過Filebeat,將RabbitMQ的日志采集到阿里云Elasticsearch(簡稱ES)中,并對日志進行可視化分析與監控。

操作流程

  1. 準備工作

    完成環境準備,包括創建實例、安裝RabbitMQ等。

  2. 步驟一:配置RabbitMQ

    配置RabbitMQ的日志級別和文件名。

  3. 步驟二:安裝RabbitMQ示例應用

    基于Spring Boot,使用RabbitMQ的JMS客戶端生產日志數據到RabbitMQ中。

  4. 步驟三:創建并配置阿里云Filebeat

    配置Filebeat采集器,將RabbitMQ的日志數據發送到Logstash的8100端口。

  5. 步驟四:配置阿里云Logstash管道

    配置Logstash管道,使用基本的Grok模式從原始消息中分離出時間戳、日志級別和消息,然后發送到阿里云ES中。

  6. 步驟五:通過Kibana查看日志數據

    通過Kibana查看經Logstash處理后的數據。

  7. 步驟六:通過Kibana過濾日志數據

    在Kibana控制臺的Discover頁面,通過Filter過濾出RabbitMQ相關的日志。

  8. 步驟七:配置Metricbeat采集RabbitMQ指標

    通過Metricbeat采集RabbitMQ日志,并通過Kibana實現可視化指標監控。

準備工作

  1. 創建阿里云ES和Logstash實例,兩者版本相同,并且在同一專有網絡VPC(Virtual Private Cloud)下。

    具體操作步驟請參見創建阿里云Elasticsearch實例創建阿里云Logstash實例,本文以6.7版本為例。

  2. 開啟阿里云ES實例的自動創建索引功能。

    具體操作步驟請參見快速訪問與配置

  3. 創建阿里云ECS實例,要求與阿里云ES實例和Logstash實例處于同一VPC下。

    具體操作步驟請參見自定義購買實例

    重要

    該ECS實例用來安裝Beats和RabbitMQ,由于Beats目前僅支持Alibaba Cloud Linux (Alinux)、RedHat和CentOS這三種操作系統,因此在創建時請選擇其中一種操作系統。本文以CentOS為例。

  4. 在目標ECS實例上安裝云助手和Docker服務。

  5. 在目標ECS實例上安裝RabbitMQ。

    具體操作步驟請參見Downloading and Installing RabbitMQ

步驟一:配置RabbitMQ

配置RabbitMQ的日志記錄級別和文件名,步驟如下:

  1. 連接安裝了RabbitMQ的ECS服務器。

    具體操作步驟請參見連接實例

    說明

    本文檔以普通用戶權限為例。

  2. 執行以下命令,打開RabbitMQ的配置文件。

    sudo vim /etc/rabbitmq/rabbitmq.config
  3. 修改RabbitMQ的配置文件。

    {
      lager, [
      %% All log messages go to the default "sink" configured with
      %% the `handlers` parameter. By default, it has a single
      %% lager_file_backend handler writing messages to "$nodename.log"
      %% (ie. the value of $RABBIT_LOGS).
       {handlers, [
         {lager_file_backend, [{file, "rabbit.log"},
                               {level, info},
                               {date, ""},
                               {size, 0}]}
      ]},
    {extra_sinks, [
    
         {rabbit_channel_lager_event, [{handlers, [
                                         {lager_forwarder_backend,
                                          [lager_event, info]}]}]},
         {rabbit_conection_lager_event, [{handlers, [
                                           {lager_forwarder_backend,
                                            [lager_event, error]}]}]}
    
      ]}

    修改后,RabbitMQ的日志文件名變為rabbit.log

    說明

    日志級別(level)默認為info,您也可以將其設置為error,即記錄出錯日志。本文以info日志為例。

    修改配置文件后,需要啟動RabbitMQ才能生效。

  4. 啟動RabbitMQ服務。

    進入RabbitMQ安裝目錄的bin文件夾下,啟動服務。

    sudo cd /usr/lib/rabbitmq/bin
    sudo rabbitmq-server start

    啟動成功后,可在/var/log/rabbitmq下看到rabbit.log文件。

步驟二:安裝RabbitMQ示例應用

本節基于Spring Boot,使用RabbitMQ的JMS客戶端進行演示。具體操作步驟如下:

重要

由于示例需要編譯應用,因此您必須先安裝Java 8。

  1. 在ECS中,執行以下命令克隆示例。

    sudo git clone https://github.com/rabbitmq/rabbitmq-jms-client-spring-boot-trader-demo
  2. 進入該應用所在根目錄。

    cd rabbitmq-jms-client-spring-boot-trader-demo
  3. 執行以下命令打包并運行應用。

    sudo mvn clean package
    sudo java -jar target/rabbit-jms-boot-demo-1.2.0-SNAPSHOT.jar

    運行成功后,返回結果如下。

    .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v1.5.8.RELEASE)
    2020-05-11 10:16:46.089  INFO 28119 --- [main] com.rabbitmq.jms.sample.StockQuoter      : Starting StockQuoterxxxxxx
    2020-05-11 10:16:46.092  INFO 28119 --- [main] com.rabbitmq.jms.sample.StockQuoter      : No active profile set,xxxxxx
    2020-05-11 10:16:46.216  INFO 28119 --- [main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.xxxxxx
    2020-05-11 10:16:47.224  INFO 28119 --- [main] com.rabbitmq.jms.sample.StockConsumer    : connectionFactory => RMQConnectionFactoryxxxxxx
    2020-05-11 10:16:48.054  INFO 28119 --- [main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposurexxxxxx 
    2020-05-11 10:16:48.062  INFO 28119 --- [main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 0xxxxxx
     ......
  4. 進入log目錄下查看RabbitMQ日志。

    sudo cd /var/log/rabbitmq
    sudo ls

    返回結果中的rabbit.log即為步驟一:配置RabbitMQ中配置的文件名。

步驟三:創建并配置阿里云Filebeat

配置Filebeat采集器,將RabbitMQ的日志信息發送到阿里云Logstash的8100端口。

  1. 登錄阿里云Elasticsearch控制臺
  2. 在左側導航欄,單擊Beats數據采集中心

  3. 創建采集器區域,選擇Filebeat > ECS日志

  4. 配置采集器。

    更多信息,請參見采集ECS服務日志采集器YML配置。本文使用的配置如下。filebeat配置

    說明
    • 采集器Output需要指定目標阿里云Logstash的實例ID,在YML配置中不需要重新指定Output。

    • Filebeat文件目錄需要填寫RabbitMQ日志所在的目錄,同時需要在YML配置中開啟log數據采集,并配置log路徑。

    本文使用的filebeat.yml中的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
      fields:
        log_type: rabbitmq-server
      # Paths that should be crawled and fetched. Glob based paths.
      paths:
        - /var/log/rabbitmq/*log
      fields_under_root: true
      encoding: utf-8
      ignore_older: 3h
  5. 安裝并啟動采集器。

    具體操作,請參見采集ECS服務日志。安裝時所選的ECS實例要與阿里云Logstash在同一VPC下。選擇采集器安裝的實例

  6. 查看采集器安裝情況。

    采集器狀態變為已生效1/1,且查看采集器安裝情況后顯示為心跳正常,說明采集器安裝成功。查看采集器安裝狀態

步驟四:配置阿里云Logstash管道

配置阿里云Logstash管道,使用基本的Grok模式從原始消息中分離出時間戳、日志級別和消息,然后發送到阿里云ES實例的指定索引中。

  1. 進入阿里云Elasticsearch控制臺的Logstash頁面
  2. 進入目標實例。
    1. 在頂部菜單欄處,選擇地域。
    2. Logstash實例中單擊目標實例ID。
  3. 在左側導航欄,單擊管道管理

  4. 單擊創建管道

  5. 創建管道任務頁面,輸入管道ID并配置管道。

    本文使用的管道配置如下。

    input {
      beats {
        port => 8100
      }
    }
    
    filter {
      grok {
        match => { "message" => ["%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:log_level}\] \<%{DATA:field_misc}\> %{GREEDYDATA:message}"] }
      }
    }
    
    output {
       elasticsearch {
          hosts => "es-cn-4591jumei000u****.elasticsearch.aliyuncs.com:9200"
          user => "elastic"
          password => "your_password"
          index => "rabbitmqlog-%{+YYYY.MM.dd}"
      }
    }

    管道配置詳情請參見Logstash配置文件說明

  6. 單擊下一步,配置管道參數。

    管道參數配置

    參數

    說明

    管道工作線程

    并行執行管道的Filter和Output的工作線程數量。當事件出現積壓或CPU未飽和時,請考慮增大線程數,更好地使用CPU處理能力。默認值:實例的CPU核數。

    管道批大小

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

    管道批延遲

    創建管道事件批時,將過小的批分派給管道工作線程之前,要等候每個事件的時長,單位為毫秒。默認值:50ms。

    隊列類型

    用于事件緩沖的內部排隊模型。可選值:

    • MEMORY:默認值。基于內存的傳統隊列。

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

    隊列最大字節數

    請確保該值小于您的磁盤總容量。默認值:1024 MB。

    隊列檢查點寫入數

    啟用持久性隊列時,在強制執行檢查點之前已寫入事件的最大數目。設置為0,表示無限制。默認值:1024。

    警告

    配置完成后,需要保存并部署才能生效。保存并部署操作會觸發實例重啟,請在不影響業務的前提下,繼續執行以下步驟。

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

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

    • 保存并部署:保存并且部署后,會觸發實例重啟,使配置生效。

步驟五:通過Kibana查看日志數據

  1. 登錄目標阿里云ES的Kibana控制臺。

    具體步驟請參見登錄Kibana控制臺

  2. 在左側導航欄,單擊Dev Tools

  3. Console中執行以下命令,查看Logstash處理后的RabbitMQ日志數據。

    GET rabbitmqlog-*/_search
    {
      "query": {
        "match_all": {
       }}
    }

    執行成功后,返回如下結果。返回結果

步驟六:通過Kibana過濾日志數據

  1. 登錄目標阿里云ES實例的Kibana控制臺。

    具體步驟請參見登錄Kibana控制臺

  2. 創建一個索引模式。

    1. 在左側導航欄,單擊Management

    2. 在Kibana區域,單擊Index Patterns

    3. 單擊Create index pattern

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

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

      Time Filter field name
  3. 在左側導航欄,單擊Discover

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

  5. 在頁面右上角,選擇一段時間,查看對應時間段內的RabbitMQ日志數據。

    查看日志數據
  6. 單擊Add a filter,設置過濾條件,查看符合條件的日志數據。

    Add a filter

步驟七:配置Metricbeat采集RabbitMQ指標

您也可以通過Metricbeat采集RabbitMQ日志數據,并通過Kibana可視化監控RabbitMQ的各項指標。

  1. 登錄目標阿里云ES的Kibana控制臺。

    具體步驟請參見登錄Kibana控制臺

  2. 在頁面左上角,單擊Kibana

  3. Add Data to Kibana區域,單擊Add metric data

    Add metric data
  4. Metrics頁簽,單擊RabbitMQ metrics

    RabbitMQ metrics
  5. 單擊RPM,按照頁面提示在ECS中安裝并配置Metricbeat。

    配置Metricbeat時,需要修改/etc/metricbeat/metricbeat.yml文件,設置Kibana和ES集群的連接信息,本文使用的配置如下。

    setup.kibana:
    
      # Kibana Host
      # Scheme and port can be left out and will be set to the default (http and 5601)
      # In case you specify and additional path, the scheme is required: http://localhost:5601/path
      # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
       host: "https://es-cn-4591jumei000u****.kibana.elasticsearch.aliyuncs.com:5601"
    output.elasticsearch:
      # Array of hosts to connect to.
      hosts: ["es-cn-4591jumei000u****.elasticsearch.aliyuncs.com:9200"]
    
      # Enabled ilm (beta) to use index lifecycle management instead daily indices.
      #ilm.enabled: false
    
      # Optional protocol and basic auth credentials.
      #protocol: "https"
      username: "elastic"
      password: "your_password"
  6. 啟動RabbitMQ模塊及Metricbeat服務。

    • 啟動RabbitMQ模塊

      sudo metricbeat modules enable rabbitmq
    • 啟動Metricbeat服務并設置儀表盤

      sudo metricbeat setup
      sudo service metricbeat start
  7. RPM頁簽中,單擊Check data

    Check data
  8. 單擊RabbitMQ metrics dashboard,查看Dashboard監控大盤。

    查看Dashboard監控大盤