最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Prometheus 監(jiān)控 MySQL 告警規(guī)則

 更新時(shí)間:2026年07月02日 09:34:28   作者:黑瘋雷  
本文主要介紹了Prometheus 監(jiān)控 MySQL 告警規(guī)則

說明:mysqld_exporter 采集上來的指標(biāo),配合 Prometheus 告警規(guī)則,可以實(shí)現(xiàn)對(duì) MySQL 數(shù)據(jù)庫的全面監(jiān)控。下面按嚴(yán)重級(jí)別歸類整理。

寫在前面

MySQL 的告警指標(biāo)主要涉及三個(gè)方面:

  1. 數(shù)據(jù)庫可用性:MySQL 是否活著、主從復(fù)制是否正常
  2. 性能與配置:連接數(shù)、InnoDB 狀態(tài)、日志配置、緩存大小
  3. 容量:磁盤空間、打開文件數(shù)

告警分三個(gè)級(jí)別:

級(jí)別含義處理方式
嚴(yán)重告警立即需要處理線上問題,隨時(shí)可能影響業(yè)務(wù)
警告需要關(guān)注潛在風(fēng)險(xiǎn),不處理可能升級(jí)
提示備案記錄但不一定告警

嚴(yán)重告警(Critical)

MySQL 實(shí)例宕機(jī)

- alert: MySQL 服務(wù)宕機(jī)
  expr: mysql_up == 0
  for: 1m
  labels:
    severity: 嚴(yán)重告警
  annotations:
    summary: "MySQL {{ $labels.instance }} 宕機(jī)"
    description: "MySQL 數(shù)據(jù)庫無法連接"

主從復(fù)制 IO 線程停止

- alert: MySQL 復(fù)制 IO 線程異常
  expr: mysql_slave_status_slave_io_running != 1
  for: 1m
  labels:
    severity: 嚴(yán)重告警
  annotations:
    summary: "主從復(fù)制 IO 線程停止"
    description: "從庫無法連接主庫,復(fù)制中斷"

IO 線程停了,說明從庫連不上主庫。常見原因:網(wǎng)絡(luò)不通、主庫宕機(jī)、復(fù)制賬號(hào)密碼不對(duì)。

主從復(fù)制 SQL 線程停止

- alert: MySQL 復(fù)制 SQL 線程異常
  expr: mysql_slave_status_slave_sql_running != 1
  for: 1m
  labels:
    severity: 嚴(yán)重告警
  annotations:
    summary: "主從復(fù)制 SQL 線程停止"
    description: "從庫無法應(yīng)用 relay log,復(fù)制中斷"

SQL 線程停了,說明從庫在執(zhí)行主庫傳過來的 SQL 時(shí)出了問題。常見原因:表結(jié)構(gòu)沖突、主鍵沖突、磁盤滿。

主從復(fù)制延遲

- alert: MySQL 主從復(fù)制延遲
  expr: mysql_slave_status_seconds_behind_master > 30
  for: 1m
  labels:
    severity: 嚴(yán)重告警
  annotations:
    summary: "主從復(fù)制延遲"
    description: "從庫落后主庫 {{ $value }} 秒"

警告(Warning)

連接數(shù)超過 80%

- alert: MySQL 連接數(shù)告警
  expr: mysql_global_status_threads_connected / mysql_global_variables_max_connections * 100 > 80
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "MySQL 連接數(shù)過高"
    description: "當(dāng)前連接 {{ $value }}%,超過最大連接數(shù)的 80%"

如果這個(gè)值不斷上漲,說明應(yīng)用端連接沒有及時(shí)釋放,或者連接池配置過大。

打開文件數(shù)超過 75%

- alert: MySQL 打開文件數(shù)過多
  expr: mysql_global_status_innodb_num_open_files > mysql_global_variables_open_files_limit * 0.75
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "InnoDB 打開文件數(shù)過高"
    description: "已用文件數(shù)超過限制的 75%,建議增大 open_files_limit"

InnoDB 日志文件太小

- alert: InnoDB 日志文件過小
  expr: mysql_global_variables_innodb_log_file_size < 16777216
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "InnoDB 日志文件太小"
    description: "當(dāng)前 ib_logfile 小于 16MB,影響寫入性能"

InnoDB 的 redo log (ib_logfile)太小,會(huì)導(dǎo)致日志頻繁切換,觸發(fā)檢查點(diǎn)(checkpoint),影響寫入性能。生產(chǎn)環(huán)境建議 1GB 以上。

排序緩沖區(qū)配置不合理

- alert: 排序緩沖區(qū)配置錯(cuò)誤
  expr: mysql_global_variables_innodb_sort_buffer_size < 262144 or mysql_global_variables_read_buffer_size > 4194304
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "排序緩沖區(qū)配置不合理"
    description: "建議 innodb_sort_buffer_size 不低于 256KB,read_buffer_size 不超過 4MB"

最大連接數(shù)使用率過高

- alert: 最大連接數(shù)使用率過高
  expr: mysql_global_status_max_used_connections > mysql_global_variables_max_connections * 0.8
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "最大連接數(shù)使用率過高"
    description: "歷史上最多同時(shí)使用了 {{ $value }} 的可用連接數(shù)"

這個(gè)指標(biāo)跟 threads_connected 不同,它記錄的是歷史上同時(shí)連接的最大值。如果超過了 80%,說明你的 max_connections 可能設(shè)小了。

二進(jìn)制日志未開啟

- alert: 二進(jìn)制日志未開啟
  expr: mysql_global_variables_log_bin != 1
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "二進(jìn)制日志未開啟"
    description: "log_bin 未開啟,無法進(jìn)行基于時(shí)間點(diǎn)的恢復(fù)(PITR)"

生產(chǎn)環(huán)境強(qiáng)烈建議開啟 binlog。如果沒有 binlog,誤刪數(shù)據(jù)后只能從全量備份恢復(fù),丟失最近一段時(shí)間的全部數(shù)據(jù)。

InnoDB 刷新策略不安全

- alert: InnoDB 刷新策略不安全
  expr: mysql_global_variables_innodb_flush_log_at_trx_commit != 1
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "InnoDB 日志刷新策略可能丟數(shù)據(jù)"
    description: "innodb_flush_log_at_trx_commit 當(dāng)前值為 {{ $value }},非 1 的情況下斷電可能丟已提交事務(wù)"

innodb_flush_log_at_trx_commit=1 性能最差但最安全,每次提交都刷盤。如果是銀行、支付類業(yè)務(wù),建議設(shè)置為 1。

需要關(guān)注(Page / Info)

表定義緩存太小

- alert: 表定義緩存太小
  expr: mysql_global_status_open_table_definitions > mysql_global_variables_table_definition_cache
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "表定義緩存不足"
    description: "打開的表的數(shù)量已超過 cache 限制,建議增大 table_definition_cache"

表打開緩存太小

- alert: 表打開緩存太小
  expr: mysql_global_status_open_tables > mysql_global_variables_table_open_cache * 0.99
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "表打開緩存不足"
    description: "table_open_cache 幾乎滿,建議增大"

從庫未設(shè)置只讀

- alert: 從庫未設(shè)置為只讀
  expr: mysql_global_variables_read_only == 0
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "從庫未開啟 read_only"
    description: "從庫不是只讀模式,可能發(fā)生數(shù)據(jù)誤寫導(dǎo)致主從不一致"

Binlog 緩存大小可能太小

- alert: Binlog 緩存過小
  expr: mysql_global_variables_binlog_cache_size < 1048576
  for: 1m
  labels:
    severity: 警告
  annotations:
    summary: "Binlog 緩存過小"
    description: "當(dāng)前 binlog_cache_size 小于 1MB,建議增大"

告警規(guī)則使用建議

  1. 先測(cè)試再上線:把規(guī)則加到 Prometheus 后,在 Alerts 頁面觀察一段時(shí)間,確認(rèn)不會(huì)誤報(bào)再正式啟用 Alertmanager 通知。

  2. 分級(jí)通知:嚴(yán)重告警走電話/短信,警告走郵件/釘釘/企微,提示級(jí)別可以只在告警頁面展示。

  3. 調(diào)整閾值

    • 連接數(shù) 80% → 如果業(yè)務(wù)流量波動(dòng)大,可以調(diào)到 85% 或 90%
    • 復(fù)制延遲 30 秒 → 如果業(yè)務(wù)對(duì)延遲不敏感,可以調(diào)到 120 秒
    • InnoDB 日志 16MB → 生產(chǎn)環(huán)境建議 1GB 起步,這里的告警閾值主要用來發(fā)現(xiàn)配置過于保守的情況
  4. 搭配 mysqld_exporter:這些規(guī)則的指標(biāo)全部來自 mysqld_exporter,確認(rèn) exporter 版本支持后再啟用規(guī)則。部分指標(biāo)在低版本 exporter 中不存在。

到此這篇關(guān)于Prometheus 監(jiān)控 MySQL 告警規(guī)則的文章就介紹到這了,更多相關(guān)Prometheus 監(jiān)控 MySQL 告警內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)庫中如何查詢近一年的數(shù)據(jù)

    MySQL數(shù)據(jù)庫中如何查詢近一年的數(shù)據(jù)

    最近碰到一個(gè)需求是統(tǒng)計(jì)某張表的數(shù)據(jù),統(tǒng)計(jì)時(shí)間維度為近一年,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫中如何查詢近一年的數(shù)據(jù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • MySQL使用xtrabackup進(jìn)行備份還原操作

    MySQL使用xtrabackup進(jìn)行備份還原操作

    這篇文章主要為大家詳細(xì)介紹了MySQL如何使用xtrabackup進(jìn)行備份還原操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • MySQL中行級(jí)鎖和表級(jí)鎖的區(qū)別小結(jié)

    MySQL中行級(jí)鎖和表級(jí)鎖的區(qū)別小結(jié)

    MySQL中的行級(jí)鎖和表級(jí)鎖是兩種不同的鎖機(jī)制,它們?cè)诓l(fā)控制和鎖粒度方面有顯著的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • Linux下指定mysql數(shù)據(jù)庫數(shù)據(jù)配置主主同步的實(shí)例

    Linux下指定mysql數(shù)據(jù)庫數(shù)據(jù)配置主主同步的實(shí)例

    Linux下指定數(shù)據(jù)庫數(shù)據(jù)配置主主同步的實(shí)例,有需要的朋友可以參考下
    2013-01-01
  • 幾個(gè)MySQL高頻面試題的解答

    幾個(gè)MySQL高頻面試題的解答

    這篇文章主要介紹了幾個(gè)MySQL高頻面試題的解答,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-01-01
  • Mysql 模糊查詢和正則表達(dá)式實(shí)例詳解

    Mysql 模糊查詢和正則表達(dá)式實(shí)例詳解

    在MySQL中,可以使用LIKE運(yùn)算符進(jìn)行模糊查詢,LIKE運(yùn)算符用于匹配字符串模式,其中可以使用通配符來表示任意字符或字符序列,這篇文章主要介紹了Mysql 模糊查詢和正則表達(dá)式實(shí)例詳解,需要的朋友可以參考下
    2023-11-11
  • mySQL中replace的用法

    mySQL中replace的用法

    MySQL replace函數(shù)我們經(jīng)常用到,下面就為您詳細(xì)介紹MySQL replace函數(shù)的用法,希望對(duì)您學(xué)習(xí)MySQL replace函數(shù)方面能有所啟迪
    2012-09-09
  • MySQL中的主鍵自增機(jī)制詳情

    MySQL中的主鍵自增機(jī)制詳情

    這篇文章主要介紹了MySQL中的主鍵自增機(jī)制詳情,MySQL提供了主鍵自增機(jī)制AUTO_INCREMENT.?對(duì)主鍵使用,?保證了主鍵的唯一性,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-08-08
  • MySQL 8.0.20 安裝教程圖文詳解(windows 64位)

    MySQL 8.0.20 安裝教程圖文詳解(windows 64位)

    這篇文章主要介紹了MySQL 8.0.20安裝教程(windows 64位),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有,需要的朋友可以參考下
    2020-05-05
  • MySQL存儲(chǔ)過程全面解析以及和Java的類比教程

    MySQL存儲(chǔ)過程全面解析以及和Java的類比教程

    存儲(chǔ)過程是一種在MySQL數(shù)據(jù)庫中定義和執(zhí)行的可重復(fù)使用的程序單元,它允許我們將一系列的 SQL 語句組織在一起,并通過一個(gè)簡(jiǎn)單的調(diào)用來執(zhí)行它們,這篇文章主要介紹了MySQL存儲(chǔ)過程全面解析以及和Java類比的相關(guān)資料,需要的朋友可以參考下
    2025-09-09

最新評(píng)論

湘西| 天等县| 廉江市| 泸西县| 炎陵县| 彩票| 轮台县| 内乡县| 清河县| 汽车| 虞城县| 洛南县| 青浦区| 西和县| 双辽市| 甘泉县| 石柱| 灵宝市| 广宗县| 永修县| 崇州市| 哈巴河县| 南阳市| 慈利县| 青河县| 灌南县| 安仁县| 凌云县| 德昌县| 都匀市| 六枝特区| 尉犁县| 隆化县| 永丰县| 阿克陶县| 嵊泗县| 乐安县| 龙泉市| 涟水县| 扎兰屯市| 奈曼旗|