統一觀測丨如何使用 Prometheus 監控 MySQL

来源:https://www.cnblogs.com/88223100/archive/2023/01/27/Unified-observation-How-to-use-Prometheus-to-monitor-MySQL.html
-Advertisement-
Play Games

MySQL 作為最流行的關係型資料庫管理系統之一,非常多系統的後端存儲都有著MySQL 的身影,可謂是廣泛應用於各行各業。與此同時,資料庫作為應用服務的核心組件,直接影響著應用服務運行。資料庫的瓶頸往往也是整個系統的瓶頸,其重要性不言而喻,所以對於 MySQL 的監控必不可少,及時發現 MySQL ... ...


 

MySQL 作為最流行的關係型資料庫管理系統之一,非常多系統的後端存儲都有著MySQL 的身影,可謂是廣泛應用於各行各業。與此同時,資料庫作為應用服務的核心組件,直接影響著應用服務運行。資料庫的瓶頸往往也是整個系統的瓶頸,其重要性不言而喻,所以對於 MySQL 的監控必不可少,及時發現 MySQL 運行中的異常,可以有效提高系統的可用性和用戶體驗。因此,觀測 MySQL 關鍵指標,實時關註資料庫的可用性與性能,成為運維團隊的重要任務。

 

1 關鍵指標解讀

在構建 MySQL 的指標觀測體系前,我們需要梳理在日常運維過程中所關註的維度與指標,做到有的放矢。Google 提出系統監控的 Latency,Traffic,Saturation,Errors 作為黃金指標。而 MySQL 作為資源類服務系統出現,我們將之進行細化,從可用性、資料庫連接、查詢、流量、文件五大維度入手。

圖片

 

2 基於 Prometheus 的指標觀測&告警體系搭建

在設計好所需觀測指標後,我們就可以選擇相應的觀測工具。作為最流行的資料庫, MySQL 有著非常豐富的監控工具選擇,比如 MySQL Enterprise Monitor、Prometheus等資料庫自帶、商業、開源不同屬性的工具。

 

而雲原生時代,為了開源友好、避免廠商鎖定、構建多雲全棧可觀測體系等企業級訴求,Prometheus 成為了 MySQL 指標監控的最佳選擇,並擁有社區專門為採集 MySQL 資料庫監控指標而設計開發的 MySQL Exporter 。

 

相較於自建 Prometheus,需要部署 Exporter、傳入 MySQL 實例的連接信息,配置服務發現,再建立大盤。阿裡雲 Prometheus監控一鍵集成 MySQL Exporter,並提供開箱即用的專屬監控大盤、告警,將諸多配置與操作實現白屏化,儘可能簡化配置服務接入工作量。

 

並基於阿裡雲自身實踐,將常見的 MySQL 告警規則製作成預置模板,幫助運維團隊快速搭建起指標看板與告警體系,不用再苦惱於提煉自身經驗或告警指標的選擇上。

 

  • MySQL 停機:如果該指標值是 0 表示當前資料庫未在正常運行,為 1 表示正常,可以通過 ${instance} 針對具體的實例告警;

mysql_up{${instance}} != 1
  • MySQL 實例運行時長:Prometheus 監控服務提供了預設的告警閾值,監控運行少於半小時的 MySQL 實例,用戶可以根據自己的需要修改閾值;

mysql_global_status_uptime{${instance}} < 1800
  • MySQL 實例慢查詢:該指標可以作為判斷當前資料庫是否存在 sql 語句需要優化等問題;

rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0
  • MySQL 錯誤連接數:連接錯誤是資料庫中的主要錯誤之一,通過 Prometheus 監控服務提供的告警規則,當觸發告警時,用戶能夠接受錯誤類型、查詢次數等告警信息;

rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0
  • MySQL 連接使用率:當出現時連接錯誤告警時,大部分原因是因為連接數不足,可以通過查看 MySQL 連接使用率進一步排查問題。

100 * mysql_global_status_threads_connected{${instance}} 
      / mysql_global_variables_max_connections{${instance}} > 90

註:當使用率達到一定的閾值時,MySQL 實例開始拒絕連接,可以通過擴大連接數來解決問題。但在提高連接數之前,請務必通過以下語句檢查當前系統可打開的文件數:

mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_files

 

  • MySQL 日誌等待時間

rate(mysql_global_status_innodb_log_waits{${instance}}[5m])

 

3 最佳實踐

前置條件

  • 開通阿裡雲 Prometheus 監控服務;

  • 安裝阿裡雲 Prometheus 實例(Prometheus for 容器服務、Prometheus for ECS),詳情參見:創建 Prometheus 實例;

  • 準備 MySQL 實例連接信息,包括 Mysql 地址、MySQL 埠、用戶名和密碼;

集成中心安裝 MySQL 監控

  • 登錄 Prometheus 控制台

    https://common-buy.aliyun.com/?commodityCode=prometheus_pay_public_cn#/open

  • 單擊具體的 Prometheus 實例併進入到集成中心,選擇安裝 MySQL;

 

圖片

 

  • 輸入 Mysql 地址、MySQL 埠、用戶名和密碼;

圖片

 

註:可以通過連接測試檢查連通性

 

  • 安裝成功後,可以查看大盤、指標、target 等信息,並且配置相關告警;

圖片

 

圖片

 

MySQL 監控告警配置

阿裡雲 Prometheus 監控服務針對 MySQL 集成,圍繞著熱點指標提供了若幹項預設的 Prometheus 告警規則。

 

  • 安裝 MySQL 監控之後,可以通過 MySQL 集成 - 告警 - 創建告警規則進行創建;

圖片

 

  • 填寫告警名稱、選擇告警分組、所需的告警指標以及篩選條件。

圖片

 

MySQL 監控大盤

 

Prometheus 監控服務圍繞熱點指標創建了 MySQL 監控大盤,通過監控大盤用戶可以查看可用性、資料庫查詢、網路流量、連接、記憶體等監控數據;

 

  • 可用性、QPS 和資料庫連接

圖片

 

  • 資料庫查詢

圖片

 

  • 流量和記憶體使用

圖片

 

  • 文件

圖片

 

4 關於阿裡雲 Prometheus 監控

阿裡雲 Prometheus 服務是基於雲原生可觀測事實標準 - Prometheus 開源項目構建的全托管觀測服務。預設集成常見雲服務,相容主流開源組件,全面覆蓋業務觀測/應用層觀測/中間件觀測/系統層觀測。通過開箱即用的 Grafana 看板與智能告警功能,並全面優化探針性能與系統可用性,幫助企業快速搭建一站式指標可觀測體系。助業務快速發現和定位問題,減輕故障給業務帶來的影響,並免去系統搭建與日常維護工作量,有效提升運維觀測效率。

 

圖片

與此同時,阿裡雲 Prometheus 作為阿裡雲可觀測套件的重要組成部分,與 Grafana 服務、鏈路追蹤服務,形成指標存儲分析、鏈路存儲分析、異構構數據源集成的可觀測數據層,同時通過標準的 PromQL 和 SQL,提供數據大盤展示,告警和數據探索能力。為IT成本管理、企業風險治理、智能運維、業務連續性保障等不同場景賦予數據價值,讓可觀測數據真正做到不止於觀測。

 

作 者 | 在峰

本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/Unified-observation-How-to-use-Prometheus-to-monitor-MySQL.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 隨著技術的進步,跨平臺開發已經成為了標配,在此大背景下,ASP.NET Core也應運而生。本文主要基於ASP.NET Core+Element+Sql Server開發一個校園圖書管理系統為例,簡述基於MVC三層架構開發的常見知識點,前一篇文章,已經簡單介紹瞭如何搭建開發框架,和登錄功能實現,本篇... ...
  • 1.部署歷史 猿友們好,作為初來實習的我,已經遭受社會的“毒打”,所以請容許我在下麵環節適當吐槽,3Q! 傳統部署 ​ 回顧以往在伺服器部署webapi項目(非獨立發佈),dotnet環境、守護進程兩個逃都逃不掉,正常情況下還得來個nginx代理。不僅僅這仨,可能牽扯到yum或npm。node等都要 ...
  • 一、導入光碟機 二、安裝可選的windows組件 三、雙擊打開網路服務,安裝DHCP/DNS伺服器。 註:伺服器地址要固定,因此安裝時要規劃好網路。 四、ip地址範圍規劃時要預留i出一些p地址。排除ip地址範圍可以在範圍內單獨留出來。預設網關是固定的,不可以亂配。 五、這裡的ip地址也是固定的,要去看 ...
  • 這兩天心血來潮想要裝個WSA(安卓windows子系統),原來一直用的安卓模擬器(mumu啊藍疊啊逍遙啊),但感覺像wsa這種安卓系統與主系統融合的模式更帶感,於是開始了我艱苦的安裝(瞎捯飭)之路 我也是真慘,別人安裝失敗都是一兩個原因,我安裝失敗倒是把幾乎所有失敗原因都搭上了。 因為我年少輕狂,當 ...
  • windows2003 的安裝以及安裝時遇到的問題簡介:Windows Server 2003是微軟於2003年3月28日發佈的基於Windows XP/NT5.1開發的伺服器操作系統,併在同年4月底上市。Windows Server 2003的官方支持即已在2015年7月14日結束,Windows ...
  • 前言 Proteus 新建工程雖然不難,但對於電子小白來說可能便成了學習路上的絆腳石,本篇我將逐步講解如何在 Proteus 中新建工程。 最新版 Proteus 8.15 最新版 Proteus 8.15 現已發佈,我為此編寫了詳細的圖文安裝教程並配有安裝包,需要安裝的朋友請跳轉進行安裝。 Pro ...
  • 2023-01-27 一、redis數據類型(ZSet) redis中的zset是一個有序集合,是一個沒有重覆元素的字元串集合。 註意:①zset中的每個成員都關聯了一個評分,這個評分是從最低分到最高分的方式進行排序的。 ②集合的成員是唯一的,但是評分可以是重覆的。 (1)將一個或多個member元 ...
  • 2023-01-25 一、redis中的數據類型 1、redis列表(List) redis列表底層是一個雙向鏈表。 (1)從左邊/右邊插入一個或多個值 lpush/rpush <key><value1><value2><value3> 例如: (2)從左邊/右邊吐出一個值。值在鍵在,值光鍵亡 lp ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...