Prometheus监控下的MySQL告警规则

groups:

- name: MySQLStatsAlert

rules:

- alert: MySQL is down

expr: mysql_up == 0

for: 1m

labels:

severity: critical

annotations:

summary: "Instance {{ $labels.instance }} MySQL is down"

description: "MySQL database is down. This requires immediate action!"

- alert: open files is high

expr: mysql_global_status_innodb_num_open_files > (mysql_global_variables_open_files_limit) * 0.75

for: 1m

labels:

severity: warning

annotations:

summary: "Instance {{ $labels.instance }} open files high"

description: "Open files is high. Please consider increasing open_files_limit."

- alert: Read buffer size is bigger than max. allowed packet size

expr: mysql_global_variables_read_buffer_size > mysql_global_variables_slave_max_allowed_packet

for: 1m

labels:

severity: warning

annotations:

summary: "Instance {{ $labels.instance }} Read buffer size is bigger than max. allowed packet size"

description: "Read buffer size (read_buffer_size) is bigger than max. allowed packet size (max_allowed_packet).This can break your replication."

- alert: Thread stack size is too small

expr: mysql_global_variables_thread_stack <196608

for: 1m

labels:

severity: warning

annotations:

summary: "Instance {{ $labels.instance }} Thread stack size is too small"

description: "Thread stack size is too small. This can cause problems when you use Stored Language constructs for example. A typical is 256k for thread_stack_size."

- alert: Used more than 80% of max connections is limited

expr: mysql_global_status_max_used_connections > mysql_global_variables_max_connections * 0.8

for: 1m

labels:

severity: warning

annotations:

summary: "Instance {{ $labels.instance }} Used more than 80% of max connections limited"

description: "Used more than 80% of max connections limited"

- alert: Table open cache too small

expr: mysql_global_status_open_tables >mysql_global_variables_table_open_cache * 99/100

for: 1m

labels:

severity: page

annotations:

summary: "Instance {{ $labels.instance }} Table open cache too small"

description: "Your Table Open Cache is possibly too small (old name Table Cache). If it is much too small this can have significant performance impacts!"

- alert: Thread stack size is possibly too small

expr: mysql_global_variables_thread_stack < 262144

for: 1m

labels:

severity: page

annotations:

summary: "Instance {{ $labels.instance }} Thread stack size is possibly too small"

description: "Thread stack size is possibly too small. This can cause problems when you use Stored Language constructs for example. A typical is 256k for thread_stack_size."

- alert: InnoDB Buffer Pool Instances is too small

expr: mysql_global_variables_innodb_buffer_pool_instances == 1

for: 1m

labels:

severity: page

annotations:

summary: "Instance {{ $labels.instance }} InnoDB Buffer Pool Instances is too small"

description: "If you are using MySQL 5.5 and higher you should use several InnoDB Buffer Pool Instances for performance reasons. Some rules are: InnoDB Buffer Pool Instance should be at least 1 Gbyte in size. InnoDB Buffer Pool Instances you can set equal to the number of cores of your machine."

- alert: Binlog Statement Cache size too small

expr: mysql_global_variables_binlog_stmt_cache_size <1048576 and mysql_global_variables_binlog_stmt_cache_size > 0

for: 1m

labels:

severity: page

annotations:

summary: "Instance {{ $labels.instance }} Binlog Statement Cache size too small"

description: "Binlog Statement Cache size is possibly to small. A value of 1 Mbyte or higher is typically OK."

- alert: IO thread stopped

expr: mysql_slave_status_slave_io_running != 1

for: 1m

labels:

severity: critical

annotations:

summary: "Instance {{ $labels.instance }} IO thread stopped"

description: "IO thread has stopped. This is usually because it cannot connect to the Master any more."

- alert: SQL thread stopped

expr: mysql_slave_status_slave_sql_running == 0

for: 1m

labels:

severity: critical

annotations:

summary: "Instance {{ $labels.instance }} SQL thread stopped"

description: "SQL thread has stopped. This is usually because it cannot apply a SQL statement received from the master."

在使用Prometheus监控MySQL并设置告警时,可以采用以下步骤: 1. 首先,确保已经安装并启动了node_exporter来监控操作系统。这可以通过在被监控系统上安装node_exporter并启动来实现\[2\]。 2. 其次,为MySQL创建一个专门的用户,并授予适当的权限。 3. 安装并启动mysqld_exporter来监控MySQL数据库\[2\]。可以将mysqld_exporter与MySQL主容器分开运行,或者将它们放在同一个镜像中运行\[1\]。 4. 配置Prometheus的配置文件prometheus.yml,将mysqld_exporter添加为一个目标。这样Prometheus就能够收集MySQL的指标数据。 5. 在Prometheus中设置告警规则,以便在满足特定条件时触发告警。可以根据需要设置不同的告警规则,例如检测MySQL连接数超过阈值、慢查询等。 6. 重启Prometheus服务,使配置生效\[3\]。 7. 最后,通过Web界面查看Prometheus监控数据,并确保告警设置正确。 通过以上步骤,你可以使用Prometheus监控MySQL并设置相应的告警规则。这样,当MySQL出现异常情况时,你将能够及时收到告警通知。 #### 引用[.reference_title] - *1* [Prometheus 的云上 MySQL 监控实践](https://blog.youkuaiyun.com/qq_40907977/article/details/108853910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用prometheus监控mysql服务](https://blog.youkuaiyun.com/lee_yanyi/article/details/120363769)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [prometheus服务监控mysql监控](https://blog.youkuaiyun.com/qq_42499737/article/details/118576231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值