云网牛站
所在位置:首页 > Linux云数据库 > 使用Prometheus监控MySQL/MariaDB的方法

使用Prometheus监控MySQL/MariaDB的方法

2019-02-16 10:47:28作者:叶云稿源:云网牛站

本文介绍如何在数据库服务器上配置Prometheus MySQL导出程序,包括MySQL MariaDB和使用Grafana可视化数据,这将使你能够很好地查看数据库性能,并在遇到问题时知道在何处检查。安装和配置Prometheus服务器请参考在RHEL 8系统上安装Prometheus 2.6.0的步骤

 

一、在Linux上安装和配置Prometheus MySQL Exporter

安装Prometheus服务器后,需要为MySQL服务器指标安装Prometheus导出器,请注意,支持的MySQL版本是5.5及更高版本。

添加Prometheus系统用户和组:

sudo groupadd --system prometheus

sudo useradd -s /sbin/nologin --system -g prometheus prometheus

该用户将管理导出器服务。

然后下载并安装Prometheus MySQL Exporter,这应该在MySQL/MariaDB服务器上完成,包括从服务器和主服务器,你可能需要检查最新版本的Prometheus MySQL导出器版本页面,然后将最新版本导出到VER变量,当前的版本是0.11.0/2018-06-29,如下所示:

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz

tar xvf mysqld_exporter-0.11.0.linux-amd64.tar.gz

sudo mv  mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter /usr/local/bin/

sudo chmod +x /usr/local/bin/mysqld_exporter

通过删除tarball和提取目录来清理安装:

rm -rf mysqld_exporter-0.11.0.linux-amd64

rm mysqld_exporter-0.11.0.linux-amd64.tar.gz

 

二、创建Prometheus导出数据库用户

用户应具有PROCESS,SELECT,REPLICATION CLIENT授权:

CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'StrongPassword' WITH MAX_USER_CONNECTIONS 2;

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';

FLUSH PRIVILEGES;

EXIT

如果你具有主从数据库体系结构,则仅在主服务器上创建用户。

WITH MAX_USER_CONNECTIONS 2用于为用户设置最大连接限制,以避免在负载较重的情况下使用监控擦除来使服务器过载。

 

三、配置数据库凭据

创建数据库凭证文件:

sudo vim /etc/.mysqld_exporter.cnf

为用户创建添加正确的用户名和密码:

[client]

user=mysqld_exporter

password=StrongPassword

设置所有权权限:

sudo chown root:prometheus /etc/.mysqld_exporter.cnf

 

四、创建systemd单元文件(适用于Systemd系统)

这是针对系统服务器,创建一个新的服务文件:

sudo vim /etc/systemd/system/mysql_exporter.service

添加以下内容:

[Unit]

Description=Prometheus MySQL Exporter

After=network.target

User=prometheus

Group=prometheus

[Service]

Type=simple

Restart=always

ExecStart=/usr/local/bin/mysqld_exporter \

--config.my-cnf /etc/.mysqld_exporter.cnf \

--collect.global_status \

--collect.info_schema.innodb_metrics \

--collect.auto_increment.columns \

--collect.info_schema.processlist \

--collect.binlog_size \

--collect.info_schema.tablestats \

--collect.global_variables \

--collect.info_schema.query_response_time \

--collect.info_schema.userstats \

--collect.info_schema.tables \

--collect.perf_schema.tablelocks \

--collect.perf_schema.file_events \

--collect.perf_schema.eventswaits \

--collect.perf_schema.indexiowaits \

--collect.perf_schema.tableiowaits \

--collect.slave_status \

--web.listen-address=0.0.0.0:9104

[Install]

WantedBy=multi-user.target

如果你的服务器具有公共和专用网络,则可能需要将0.0.0.0:9104替换为私有IP,例如: 192.168.4.5:9104。

完成后,重新加载systemd并启动mysql_exporter服务:

sudo systemctl daemon-reload

sudo systemctl enable mysql_exporter

sudo systemctl start mysql_exporter

 

五、配置要由Prometheus Server抓取的MySQL端点

登录到你的Prometheus服务器并配置端点,下面是两个MySQL数据库服务器的示例:

scrape_configs:

- job_name: server1_db

static_configs:

- targets: ['10.10.1.10:9104']

labels:

alias: db1

- job_name: server2_db

static_configs:

- targets: ['10.10.1.11:9104']

labels:

alias: db2

第一台服务器的IP地址为10.10.1.10,第二台服务器的数据为10.10.1.11,使用类似格式添加其他目标,每个目标的作业名称应该是唯一的。

注意:Prometheus Server应该能够通过网络到达目标,确保你具有正确的网络/防火墙配置。

 

六、创建/导入MySQL Grafana仪表板

现在我们已经配置了目标并且要监控代理,我们应该很好地将Prometheus数据源添加到Grafana,以便我们可以进行度量可视化。安装Grafana请参考在CentOS 7系统中安装Grafana 6的方法

安装后,登录管理仪表板并通过导航到配置>数据源添加数据源:

Name: Prometheus

Type: Prometheus

URL: http://localhost:9090

如果Prometheus服务器与Grafana不在同一主机上,请提供服务器的IP地址:

使用Prometheus监控MySQL/MariaDB的方法

1、同时为MySQL Prometheus导出器创建/导入Grafana仪表板

如果没有足够的黄金时间来创建自己的仪表板,可以使用Percona(在Ubuntu/Debian系统上安装Percona MySQL Server 8.0)创建的仪表板,它们是开源的。

让我们下载MySQL_Overview仪表板,它可以很好地概述数据库的性能:

$ mkdir ~/grafana-dashboards

$ cd ~/grafana-dashboards

$ wget https://raw.githubusercontent.com/percona/grafana-dashboards/master/dashboards/MySQL_Overview.json

2、将Prometheus MySQL仪表板上传到grafana

转到仪表板>导入>上传.json文件:

使用Prometheus监控MySQL/MariaDB的方法

使用仪表板文件找到目录并导入:

使用Prometheus监控MySQL/MariaDB的方法

收集的指标应该开始显示了,如下图:

使用Prometheus监控MySQL/MariaDB的方法

如果要导入Prometheus的所有Percona仪表板,请将它们安装在Grafana服务器上:

git clone https://github.com/percona/grafana-dashboards.git

cp -r grafana-dashboards/dashboards /var/lib/grafana/

需要重新启动Grafana服务器才能导入这些仪表板:

sudo systemctl restart grafana-server

sudo service grafana-server restart

至此,你可以开始使用Grafana上的仪表板了。

 

相关主题

使用Prometheus和Grafana监控Linux服务器性能的方法

精选文章
热门文章