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

通過Elasticsearch和rsbeat實(shí)時分析Redis slowlog

Redis是目前流行的高性能key-value數(shù)據(jù)庫,但如果使用不當(dāng),很容易出現(xiàn)慢查詢。慢查詢過多或者一個時間較長(例如20s)的慢查詢會導(dǎo)致操作隊(duì)列(Redis是單進(jìn)程)堵塞,可能會導(dǎo)致服務(wù)不可用。因此您需要實(shí)時收集并分析Redis slowlog,在出現(xiàn)問題時快速定位解決。本文介紹如何通過Elasticsearch和rsbeat實(shí)時分析Redis slowlog。

背景信息

通過Elasticsearch和rsbeat實(shí)時分析Redis slowlog的原理為:使用rsbeat將Redis slowlog采集到Elasticsearch中,然后在Kibana中進(jìn)行圖形化分析。相關(guān)概念說明如下:

  • Elasticsearch:是一個基于Lucene的實(shí)時分布式的搜索與分析引擎,是遵從Apache開源條款的一款開源產(chǎn)品,是當(dāng)前主流的企業(yè)級搜索引擎。它提供了一個分布式服務(wù),可以使您快速的近乎于準(zhǔn)實(shí)時的存儲、查詢和分析超大數(shù)據(jù)集,通常被用來作為構(gòu)建復(fù)雜查詢特性和需求強(qiáng)大應(yīng)用的基礎(chǔ)引擎或技術(shù)。

    阿里云Elasticsearch兼容開源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商業(yè)功能,致力于數(shù)據(jù)分析、數(shù)據(jù)搜索等場景服務(wù),支持5.5.3、6.3.2、6.7.0、6.8.0和7.4.0等版本,并提供了商業(yè)插件X-Pack服務(wù)。在開源Elasticsearch的基礎(chǔ)上提供企業(yè)級權(quán)限管控、安全監(jiān)控告警、自動報表生成等功能。本文使用阿里云Elasticsearch進(jìn)行演示,詳情請參見什么是阿里云Elasticsearch

  • rsbeat:用來收集和分析Redis慢日志的采集器,詳情請參見rsbeat官方文檔

  • Redis:是一個開源的、基于內(nèi)存的數(shù)據(jù)結(jié)構(gòu)存儲器,可以用作數(shù)據(jù)庫、緩存和消息中間件,詳情請參見Redis官方說明

    云數(shù)據(jù)庫Redis版(ApsaraDB for Redis)是兼容開源Redis協(xié)議標(biāo)準(zhǔn)、提供內(nèi)存加硬盤的混合存儲方式的數(shù)據(jù)庫服務(wù),基于高可靠雙機(jī)熱備架構(gòu)及可平滑擴(kuò)展的集群架構(gòu),滿足高讀寫性能場景及彈性變配的業(yè)務(wù)需求。本文使用云數(shù)據(jù)庫Redis版進(jìn)行演示,更多詳情請參見什么是云數(shù)據(jù)庫Redis版

操作流程

  1. 準(zhǔn)備工作

    創(chuàng)建阿里云Elasticsearch實(shí)例、云數(shù)據(jù)庫Redis版實(shí)例(以下簡稱Redis實(shí)例)和ECS實(shí)例,三者在同一專有網(wǎng)絡(luò)VPC(Virtual Private Cloud)下。

  2. 步驟一:配置Redis慢查詢參數(shù)

    根據(jù)需求設(shè)置Redis slowlog生成的條件,以及可記錄的slowlog的最大條數(shù)。

  3. 步驟二:安裝并配置rsbeat

    在ECS中安裝rsbeat,并在其配置文件中指定Redis和Elasticsearch服務(wù)。

  4. 步驟三:通過Kibana圖形化分析slowlog

    通過Kibana查看日志詳細(xì)信息,并根據(jù)需求進(jìn)行統(tǒng)計分析。

準(zhǔn)備工作

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

    具體操作步驟請參見創(chuàng)建阿里云Elasticsearch實(shí)例配置YML參數(shù)。本文使用的實(shí)例版本為通用商業(yè)版6.7。

  2. 創(chuàng)建Redis實(shí)例。

    具體操作步驟請參見步驟1:創(chuàng)建實(shí)例。本文使用的實(shí)例版本為Redis 5.0社區(qū)版,并且與阿里云Elasticsearch實(shí)例在同一VPC下,便于內(nèi)網(wǎng)訪問。

  3. 創(chuàng)建ECS實(shí)例。

    具體操作步驟請參見自定義購買實(shí)例。本文使用的實(shí)例鏡像為CentOS 7.6 64位,并且與Redis和Elasticsearch實(shí)例在同一VPC下。

  4. 配置Redis實(shí)例的訪問白名單。

    將ECS實(shí)例的內(nèi)網(wǎng)IP地址添加到Redis實(shí)例的白名單中,具體操作步驟請參見設(shè)置IP白名單

步驟一:配置Redis慢查詢參數(shù)

  1. 登錄Redis管理控制臺

  2. 在頂部菜單欄處,選擇地域。

  3. 實(shí)例列表頁面,單擊目標(biāo)實(shí)例ID。

  4. 在左側(cè)導(dǎo)航欄,單擊參數(shù)設(shè)置

  5. 在參數(shù)設(shè)置列表中,找到slowlog-log-slower-thanslowlog-max-len參數(shù),將其修改為您期望的值。

    參數(shù)

    說明

    示例

    slowlog-log-slower-than

    當(dāng)命令執(zhí)行時間(不包括排隊(duì)時間)超過該參數(shù)值時,該命令會被定義為慢查詢,并記錄到slowlog中。單位為微秒,默認(rèn)為10000,即10毫秒。

    重要

    負(fù)數(shù)表示關(guān)閉慢查詢?nèi)罩竟δ埽?表示記錄所有命令操作。

    本文將該參數(shù)值設(shè)置為20000。表示在slowlog中記錄執(zhí)行時長超過20毫秒的命令。

    slowlog-max-len

    slowlog中可以記錄的最大慢查詢命令的條數(shù)。當(dāng)slowlog中的記錄數(shù)超過最大值后,Redis會將最早的slowlog刪除。

    本文將該參數(shù)值設(shè)置為100。表示在slowlog中記錄最近100條慢查詢命令。

步驟二:安裝并配置rsbeat

  1. 連接ECS實(shí)例。

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

  2. 下載并且解壓rsbeat。

    本文使用5.3.2版本。

    wget https://github.com/Yourdream/rsbeat/archive/master.zip
    unzip master.zip
  3. 修改rsbeat配置。

    1. 執(zhí)行以下命令打開rsbeat.yml文件。

      cd rsbeat-master
      vim rsbeat.yml
    2. 按照以下說明修改rsbeat和output.elasticsearch參數(shù)配置,并保存。

      rebeat.yml參數(shù)配置

      表 1. rebeat配置

      參數(shù)

      說明

      period

      每隔多久將slowlog輸出到Elasticsearch。

      redis

      Redis實(shí)例的連接地址,獲取方式請參見查看連接地址

      重要

      由于配置文件中沒有定義Redis實(shí)例的密碼,因此在獲取連接地址后,您還需要開啟免密訪問,才能確保rsbeat能夠訪問Redis實(shí)例,開啟方法請參見開啟專有網(wǎng)絡(luò)免密訪問

      slowerThan

      定義將config set slowlog-log-slower-than命令發(fā)送到Redis服務(wù)器的時間。單位為微秒。

      表 2. output.elasticsearch配置

      參數(shù)

      說明

      hosts

      阿里云Elasticsearch實(shí)例的連接地址,可在實(shí)例的基本信息頁面獲取,詳情請參見查看實(shí)例的基本信息

      username

      阿里云Elasticsearch實(shí)例的訪問用戶名,默認(rèn)為elastic。

      password

      對應(yīng)用戶的密碼。elastic用戶的密碼在創(chuàng)建實(shí)例時設(shè)定,如果忘記可重置,重置密碼的注意事項(xiàng)和操作步驟請參見重置實(shí)例訪問密碼

      template.overwrite

      是否覆蓋已存在的同名模板,默認(rèn)為true。

  4. 啟動rsbeat服務(wù)。

    ./rsbeat.linux.amd64 -c rsbeat.yml -e -d "*"

步驟三:通過Kibana圖形化分析slowlog

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

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

  2. 創(chuàng)建索引模式。

    1. 在左側(cè)導(dǎo)航欄,單擊Management
    2. Kibana區(qū)域,單擊Index Patterns
    3. 單擊Create index pattern
    4. 輸入Index pattern名稱,單擊Next step

      輸入Index pattern

    5. Time Filter field name中,選擇時間過濾器字段名(本文選擇@timestamp)。
    6. 單擊Create index pattern
  3. 查看slowlog的詳細(xì)信息。

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

    2. Discover頁面左側(cè),選擇目標(biāo)索引模式rsbeat-*。

    3. 在頁面右上角,選擇一段時間,查看該時間段內(nèi)的slowlog信息。

      查看slowlog信息

  4. 統(tǒng)計slowlog數(shù)量最多的前10個key,并以降序排列展示。

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

    2. Visualize頁面,單擊添加圖標(biāo)圖標(biāo)。

    3. New Visualization對話框中,單擊Pie

      單擊Pie

    4. 選擇索引模式rsbeat-*。

      選擇索引模式

    5. 按照下圖配置Metrics和Buckets。

      Metric和Bucket配置

    6. 單擊運(yùn)行圖標(biāo)圖標(biāo),查看結(jié)果。

      統(tǒng)計結(jié)果

      說明

      更多Kibana的使用方法,請參見Kibana官方文檔