TenSunS監控Mysql:如何優雅的使用一個mysqld_exporter監控所有的MySQL例項

StarsL發表於2024-11-03

🦄概述

后羿 - TenSunS(原ConsulManager)是一個使用Flask+Vue開發,基於Consul的WEB運維平臺,彌補了Consul官方UI對Services管理的不足;並且基於Consul的服務發現與鍵值儲存:實現了Prometheus自動發現多雲廠商各資源資訊;基於Blackbox對站點監控的視覺化維護;以及對自建與雲上資源的優雅管理與展示。

倉庫地址:https://github.com/starsliao/TenSunS

如何優雅的使用一個mysqld_exporter監控所有的MySQL例項

一、如何在TenSunS中接入雲廠商的資料庫

  1. 新增雲賬號的情況:目前新增時,支援多選區域,以及選擇增加的資源型別,勾選MySQL即可接入自動同步雲資料庫,記得設定好同步間隔。

圖片

  1. 對已經新增過的賬號,增加同步雲資料庫資源:點選編輯雲資源,選擇好需要編輯的廠商、賬號及區域,再勾選資源型別MySQL,配置上同步間隔即可增加自動同步雲資料庫。

圖片

  1. 接入完成後,可手動點選同步按鈕,完成首次同步;或者等待設定好的同步週期後會自動同步。

圖片

  1. 同步完成後,可在雲資源管理-MySQL管理-雲MySQL列表,檢視同步的雲資料庫資訊。
    圖片

二、部署一個支援多例項的Mysqld_exporter

官方main版本的程式碼已經支援多目標的mysqld_exporter,只是還沒有發Releases。所以基於最新的main版本自行編譯了一個mysqld_exporter,並且做成了docker映象。

詳細說明檢視:https://github.com/starsliao/multi_mysqld_exporter

新建一個docker-compose.yml,內容如下:

version: "3.2"
services:
  mysqld_exporter:
    image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/mysqld_exporter:latest
    container_name: mysqld_exporter
    hostname: mysqld_exporter
    restart: always
    ports:
      - "9104:9104"
    volumes:
      - /usr/share/zoneinfo/PRC:/etc/localtime
    environment:
      MYSQLD_EXPORTER_PASSWORD: xxxxxxxxxxxxx
    entrypoint:
      - /bin/mysqld_exporter
      - --collect.info_schema.innodb_metrics
      - --collect.info_schema.tables
      - --collect.info_schema.processlist
      - --collect.info_schema.tables.databases=*
      - --mysqld.username=xxxxxxxxxx
  • docker-compose中有2個變數:監控專用的mysql賬號和密碼,注意修改掉後再啟動。
  • docker-compose配置方式是所有的mysql例項都配置了一樣的mysql監控賬號和密碼。
  • 如果你有不同mysql例項需要配置不同監控賬號密碼的需求,請參考官方readme使用配置檔案的方式啟動。

啟動:docker-compose up -d

三、如何接入到Prometheus

點選選單雲資源管理-MySQL管理-prometheus配置
在右側選擇需要加入監控的雲賬號RDS組,並且輸入mysqld_exporter的IP和埠,點選生成配置,即可複製生成的JOB內容到prometheus。
圖片

四、參考告警規則

圖片

五、參考Grafana看板

GRAFANA:Mysqld Exporter Dashboard 22_11_01中文版

mysql1

mysql2

相關文章