社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

使用prometheus监控mysql

IT大咖说 • 2 年前 • 313 次点击  

mysqld-exporter介绍

mysqld_exporter是一个开源的MySQL数据库指标收集器,它可以将MySQL数据库的各种指标数据输出为Prometheus所需的格式,使得您可以使用Prometheus来监控和分析MySQL数据库的运行情况。

mysqld_exporter可以收集MySQL数据库的诸如查询数量、响应时间、连接数、缓存命中率、锁等指标数据,并将这些数据输出为Prometheus所需的格式。它可以通过多种方式连接到MySQL数据库,并支持多种配置选项,以便您根据自己的需要进行定制化配置。

通过使用mysqld_exporter,您可以实时监控MySQL数据库的运行状态,及时发现并解决潜在的问题。mysqld_exporter还提供了一些有用的指标数据,例如慢查询、锁争用、缓存命中率等,这些数据可以帮助您更好地了解MySQL数据库的性能和健康状况。

总的来说,mysqld_exporter是一个非常有用的工具,可以帮助您更好地监控和管理MySQL数据库。

mysqld_exporter常见问题和解决方法

1. 连接MySQL数据库失败

这可能是由于MySQL数据库的连接配置不正确或者MySQL数据库没有授权mysqld_exporter连接所需的权限。解决方法是检查连接配置是否正确,确保MySQL数据库授权了mysqld_exporter连接所需的权限。

2. 指标数据不准确或缺失

这可能是由于mysqld_exporter配置不正确或者MySQL数据库出现了问题。解决方法是检查mysqld_exporter配置是否正确,确保MySQL数据库正常运行且没有出现问题。

3. 内存占用过高

这可能是由于mysqld_exporter默认配置下会缓存MySQL数据库的所有指标数据,导致内存占用过高。解决方法是调整mysqld_exporter的配置,减少缓存数据的数量或缓存时间。

4. 安全性问题

默认情况下,mysqld_exporter不进行身份验证或加密,可能会存在安全风险。解决方法是配置mysqld_exporter进行身份验证和加密,以确保数据安全性。

5. 版本兼容性问题

mysqld_exporter和MySQL数据库的版本兼容性可能存在问题,导致无法正确收集指标数据。解决方法是查看mysqld_exporter和MySQL数据库的版本兼容性,并确保使用兼容的版本。

总的来说,要确保mysqld_exporter正常运行并收集准确的指标数据,需要仔细配置和调试,并及时解决出现的问题。

mysqld-exporter常用告警规则

  • MySQL down

MySQL instance is down on {{ $labels.instance }}

  - alert: MysqlDown
expr: mysql_up == 0
for: 0m
labels:
severity: critical
annotations:
summary: MySQL down (instance {{ $labels.instance }})
description: "MySQL instance is down on {{ $labels.instance }}\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
  • MySQL too many connections (> 80%)

More than 80% of MySQL connections are in use on {{ $labels.instance }}

  - alert: MysqlTooManyConnections(>80%)
expr: max_over_time(mysql_global_status_threads_connected[1m]) / mysql_global_variables_max_connections * 100 > 80
for: 2m
labels:
severity: warning
annotations:
summary: MySQL too many connections (> 80%) (instance {{ $labels.instance }})
description: "More than 80% of MySQL connections are in use on {{ $labels.instance }}\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
  • MySQL high threads running

More than 60% of MySQL connections are in running state on {{ $labels.instance }}

  - alert: MysqlHighThreadsRunning
expr: max_over_time(mysql_global_status_threads_running[1m]) / mysql_global_variables_max_connections * 100 > 60
for: 2m
labels:
severity: warning
annotations:
summary: MySQL high threads running (instance {{ $labels.instance }})
description: "More than 60% of MySQL connections are in running state on {{ $labels.instance }}\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"

  • MySQL Slave IO thread not running

MySQL Slave IO thread not running on {{ $labels.instance }}

  - alert: MysqlSlaveIoThreadNotRunning
expr: ( mysql_slave_status_slave_io_running and ON (instance) mysql_slave_status_master_server_id > 0 ) == 0
for: 0m
labels:
severity: critical
annotations:
summary: MySQL Slave IO thread not running (instance {{ $labels.instance }})
description: "MySQL Slave IO thread not running on {{ $labels.instance }}\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
  • MySQL Slave SQL thread not running

MySQL Slave SQL thread not running on {{ $labels.instance }}

  - alert: MysqlSlaveSqlThreadNotRunning
expr: ( mysql_slave_status_slave_sql_running and ON (instance) mysql_slave_status_master_server_id > 0) == 0
for: 0m
labels:
severity: critical
annotations:
summary: MySQL Slave SQL thread not running (instance {{ $labels.instance }})
description: "MySQL Slave SQL thread not running on {{ $labels.instance }}\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
  • MySQL Slave replication lag

MySQL replication lag on {{ $labels.instance }}

  - alert: MysqlSlaveReplicationLag
expr: ( (mysql_slave_status_seconds_behind_master - mysql_slave_status_sql_delay) and ON (instance) mysql_slave_status_master_server_id > 0 ) > 30
for: 1m
labels:
severity: critical
annotations:
summary: MySQL Slave replication lag (instance {{ $labels.instance }})
description: "MySQL replication lag on {{ $labels.instance }}\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
  • MySQL slow queries

MySQL server mysql has some new slow query

  - alert: MysqlSlowQueries
expr: increase(mysql_global_status_slow_queries[1m]) > 0
for: 2m
labels:
severity: warning
annotations:
summary: MySQL slow queries (instance {{ $labels.instance }})
description: "MySQL server mysql has some new slow query.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"

  • MySQL InnoDB log waits

MySQL innodb log writes stalling

  - alert: MysqlInnodbLogWaits
expr: rate(mysql_global_status_innodb_log_waits[15m]) > 10
for: 0m
labels:
severity: warning
annotations:
summary: MySQL InnoDB log waits (instance {{ $labels.instance }})
description: "MySQL innodb log writes stalling\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
  • MySQL restarted

MySQL has just been restarted, less than one minute ago on {{ $labels.instance }}.

  - alert: MysqlRestarted
expr: mysql_global_status_uptime < 60
for: 0m
labels:
severity: info
annotations:
summary: MySQL restarted (instance {{ $labels.instance }})
description: "MySQL has just been restarted, less than one minute ago



来源https://www.toutiao.com/article/7243071976682668578/?log_from=fc40922d0781c_1686702522723

“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com





来都来了,走啥走,留个言呗~




 IT大咖说  |  关于版权 

由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!


相关推荐


推荐文章

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/156355
 
313 次点击