构建高峻上的MySQL监控平台

对付MySQL的监控平台,相信各人实现起来有许多了:基于天兔的监控,尚有基于zabbix相关的二次开拓。相信许多同行都应该已经开始玩起来了。我这边的选型是prometheus + granafa的实现方法。简而言之就是我此刻的出产情况利用的是prometheus,尚有就是granafa满意的我的日常事情需要。

1、首先看下我们的监控结果、mysql主从

构建高峻上的MySQL监控平台

2、mysql状态:

构建高峻上的MySQL监控平台

构建高峻上的MySQL监控平台

3、缓冲池状态:

构建高峻上的MySQL监控平台

exporter 相关陈设

1、安装exporter

[root@controller2 opt]# https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz [root@controller2 opt]# tar -xf mysqld_exporter-0.10.0.linux-amd64.tar.gz

2、添加mysql 账户:

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'exporter'@'%' IDENTIFIED BY 'localhost'; flush privileges;

3、编辑设置文件:

[root@controller2 mysqld_exporter-0.10.0.linux-amd64]# cat /opt/mysqld_exporter-0.10.0.linux-amd64/.my.cnf [client] user=exporter password=123456

4、配置设置文件:

[root@controller2 mysqld_exporter-0.10.0.linux-amd64]# cat /etc/systemd/system/mysql_exporter.service [Unit] Description=mysql Monitoring System Documentation=mysql Monitoring System [Service] ExecStart=/opt/mysqld_exporter-0.10.0.linux-amd64/mysqld_exporter \ -collect.info_schema.processlist \ -collect.info_schema.innodb_tablespaces \ -collect.info_schema.innodb_metrics \ -collect.perf_schema.tableiowaits \ -collect.perf_schema.indexiowaits \ -collect.perf_schema.tablelocks \ -collect.engine_innodb_status \ -collect.perf_schema.file_events \ -collect.info_schema.processlist \ -collect.binlog_size \ -collect.info_schema.clientstats \ -collect.perf_schema.eventswaits \ -config.my-cnf=/opt/mysqld_exporter-0.10.0.linux-amd64/.my.cnf [Install] WantedBy=multi-user.target

5、添加设置到prometheus server

- job_name: 'mysql' static_configs: - targets: ['192.168.1.11:9104','192.168.1.12:9104']

6、测试看有没有返回数值:

:9104/metrics

正常我们通过mysql_up可以查询倒mysql监控是否已经生效,是否起起来

#HELP mysql_up Whether the MySQL server is up. #TYPE mysql_up gauge mysql_up 1 监控相关指标

在做任何一个对象监控的时候,我们要时刻大白我们要监控的是什么,指标是啥才气更好的去监控我们的处事,在mysql内里我们凡是可以通过一下指标去权衡mysql的运行环境:mysql主从运行环境、查询吞吐量、慢查询环境、毗连数环境、缓冲池利用环境以及查询执行机能等。

主从复制运行指标:

1、主从复制线程监控:

大部门环境下,许多企业利用的都是主从复制的情况,监控两个线程长短常重要的,在mysql内里我们凡是是通过呼吁:

MariaDB [(none)]> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.16.1.1 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000045 Read_Master_Log_Pos: 72904854 Relay_Log_File: mariadb-relay-bin.000127 Relay_Log_Pos: 72905142 Relay_Master_Log_File: mysql-bin.000045 Slave_IO_Running: Yes Slave_SQL_Running: Yes

#Slave_IO_Running、Slave_SQL_Running两个线程正常那么说明我们的复制集群是康健状态的。

MySQLD Exporter中返回的样本数据中通过mysql_slave_status_slave_sql_running来获取主从集群的康健状况。

# HELP mysql_slave_status_slave_sql_running Generic metric from SHOW SLAVE STATUS. # TYPE mysql_slave_status_slave_sql_running untyped mysql_slave_status_slave_sql_running{channel_name="",connection_name="",master_host="172.16.1.1",master_uuid=""} 1

2、主从复制落伍时间:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdjdp.html