Redis的檢索效能不足,修改rsbeat,解決日誌跟蹤慢的問題

Mondo 科技 更新 2024-01-30

關於作者:

劉宇,他是天成金融創新中心的基礎技術架構師,擁有9年的IT經驗,9年的資料庫開發和運營經驗,以及4次大型營銷活動。 目前主要研究方向為容器、分布式資料庫技術等基礎技術。

*在解決 Redis 效能問題時,通常的做法是從 Redis 中找出要優化的問題。

Redis Slowlog 在記憶體中被設計為先進先出的佇列結構,在大量慢日誌的情況下,舊命令會被從慢日誌中重新整理出來,無法跟蹤。

本文介紹如何使用修改後的RSBEAT將slowlog轉儲到Elasticsearch中進行分析。

1. Redis Slowlog 簡介

Slowlog 核心配置引數和命令。

slowlog-log-slower-than:slowlog 的閾值,只有查詢執行時間大於 slowlog-log-sslow-than,單位設定為微秒,預設為 10000 微秒,即 10ms。

slowlog-max-len:表示最大慢查詢數,預設值為128。 當 slowlog 超過最大值時,將刪除最早的 slowlog。

slowlog get n:要獲取指定數量的記錄,可以執行slowlog get n命令。

rsbeat 簡介

RSBEAT** 是 Beats 的官方平台,它整合了各種單一用途的資料收集器。 它們將資料從成百上千臺機器和系統傳送到 Logstash 或 Elasticsearch。

官方網站:elasticco/guide/en/beats/libbeat/current/community-beats.html

這一次,我們使用了三款產品:Elasticsearch、Kibana 和 RSBEAT。 Elasticsearch用於儲存解析後的Redis慢日誌,Kibana用於圖形分析,RSBEAT用於收集Redis慢日誌。

rsbeat 的採集原理如下:

2. RSBEAT轉型

因為社群的 rsbeat 只支援 ipport 檢索。 不支援 Redis Sentinel 和 Redis Cluster,為了滿足我們的需求,這裡對 RSBake 進行了部分修改。 轉換點如下:

1. 增加對 Sentinel 和 Redis 集群的支援

rsbeat 的原始配置如下:

Redis 引數以 ipport 的形式配置為 Redis 例項列表,我們將其轉換為 ipportname 的形式

對於 Redis Sentinel,MyRedis 使用在 Sentinel 中註冊的主名稱來檢索它。

對於 Redis 集群,您可以使用自定義集群名稱或 CMDB 中的集群名稱來檢索 MyRedis。 一般情況下,乙個Redis集群中節點較多,可以避免手動登入多個節點獲取慢查詢,從而提高效率。

改造 rsbeatGo ** 如下所示,新增乙個 ipportname 字串處理程式:

在 PoolList 對映結構中:

2. 記錄Redis例項的角色資訊

如果要篩選 Redis 的角色,需要記錄角色資訊。 在 rebeat 中,在 slowlog get 和 slowlog reset 之後新增 role 命令,獲取角色資訊。

在 func (bt *rsbeat) redisc(beatname string, init bool, c redisconn, ipport string) 函式。

和節拍

然後修改 poolinit 函式並新增 slowerlen 引數:

3. Slowlog-max-len 是可配置的

修改配置中的 slowlog-max-len在 go 檔案中,將 slowerlen 屬性新增到配置結構中,預設值為:

3. 使用 Kibana 進行搜尋

1. 按主名稱或 Redis 集群名稱搜尋

2. 使用主名稱和角色搜尋:

為角色新增篩選器:

然後檢索主名稱:

3. 在儀表板中搜尋:

四、總結

Elastic Stack 由強大的開源社群提供支援。 通過簡單的轉換和折騰,可以擴充套件rsbeat功能,更好地滿足redis哨兵、redis集群等更靈活的查詢和檢索需求。 本文講解了轉型的內容,希望能為大家提供幫助和思路。

相關問題答案

    Redis中的Leader Follower架構如何保證資料的一致性和可靠性?

    Redis 高可用性中的主從架構是資料複製和故障轉移的常見架構模式。在此體系結構中,乙個節點充當領導者,負責接收和處理寫入,而其他節點充當追隨者,負責從領導者節點複製資料。這種架構確保了資料的一致性和可靠性。主從架構是一種主從複製方式,通過向多個節點複製資料,提高系統的可用性和可靠性。在 Redis...

    RocksDB 和 Redis 有什麼區別?

    Redis 是一種開源的記憶體資料儲存,被數百萬開發人員用作資料庫 快取 流式處理引擎和訊息傳遞 Redis 在需要低延遲和高吞吐量的實時應用程式中很受歡迎。它還常用於快取資料庫查詢 複雜計算 API 呼叫和會話狀態。RocksDB 是乙個開源的可嵌入的持久化鍵值儲存,用於快速儲存。RocksDB ...

    專利檢索入門!

    在科研和學術創作中,你是否因為找不到科研專案的出發點而感到困擾?在創新創業大賽中,你是否因為找不到自己感興趣的領域的最新技術資訊而焦慮?你是否忘記了乙個重要的資訊來源 專利 專利文獻是技術資訊最有效的載體 至 的發明將很快出現在專利文獻中一般來說,超過 的專利不會以其他形式 會議等 公布,如此龐大的...

    深入了解 Go 的基本原理,並在實踐中重寫 Redis 中介軟體

    夏種植科 超興吉特com 一 引言。隨著網際網絡技術的不斷發展,Redis作為高效能記憶體資料庫,在眾多應用場景中扮演著越來越重要的角色。為了更好地滿足實際需求,我們需要重新開發Redis,以實現更高效 更靈活的中介軟體。本文將通過深入探討 GO 的基本原理,介紹如何重寫 Redis 中介軟體。.G...

    文獻資訊檢索的校樣

    文獻資訊檢索證明,其實是我們發表的相關文獻,要調查這些文獻被收錄在哪些資料庫中,哪些人引用了它。無論是文獻資料檢索證書還是檢索證書,在我們的科研工作和學術研究中都發揮著重要的作用。很多朋友,尤其是從事科研工作多年的朋友,對文獻資訊檢索證書比較熟悉,但是對於一些小白朋友來說,他們心裡還是沒有底,要先辦...