概述
Prometheus 服务本地已经启动了,接下来,需要安装并运行 Exporter,它的主要作用是持续输出监控的组件信息并格式化,同时提供 Http 接口供 Prometheus 服务来抓取。Exporter 也是通过 GO 语言编写的,Prometheus GitHub 已经为我们提供了很多实用的 Exporter,直接拿来使用即可。
前面已经分享了编译安装和docker安装prometheus的两种方式,今天主要介绍下怎么用prometheus来监控mysql数据库。
一、安装go语言环境
由于Prometheus 是用golang开发的,所以首先安装一个go环境,Go语言是跨平台,支持Windows、Linux、Mac OS X等系统,还提供有源码,可编译安装。
下载地址:https://studygolang.com/dl
1、解压
# tar -xvf go1.13.linux-amd64.tar.gz -C /usr/local/
![bed9f356fafe57cad984a31a61dc8d8d.png](https://i-blog.csdnimg.cn/blog_migrate/bff42cde09b3ea6f782ae2df06669715.jpeg)
2、配置环境变量
echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profilesource /etc/profile
![9dc6b80af36b879dc9c93ea8aa5bccb6.png](https://i-blog.csdnimg.cn/blog_migrate/8faf3a757e48e5cd58bb4fcc6e45d85a.jpeg)
3、测试
验证一下是否成功,用go version 来验证
# go version
![62487c23067af1b6747e3f2a1fd56214.png](https://i-blog.csdnimg.cn/blog_migrate/d5bb8d10284819f93041abc4e943664f.jpeg)
二、安装mysqld_exporter
1、下载node_exporter
官网地址:https://prometheus.io/download/
下载地址:https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
![e47d691428c9a404f003ec0eb6d367ed.png](https://i-blog.csdnimg.cn/blog_migrate/c75e3d58d977b8ac2092fcb7bdf430f3.jpeg)
![6f69335ed8c61ba1ae17a21de513cedf.png](https://i-blog.csdnimg.cn/blog_migrate/0ba7720bff87f12ca914af99268f7788.jpeg)
2、上传解压
上传到被监控的主机并解压
tar -xvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
![69890011ca6eeb73749f223cf6aed1cd.png](https://i-blog.csdnimg.cn/blog_migrate/a08075862a6e3b9729879544797db791.jpeg)
3、配置监控数据库账号
配置要监控的数据库,为 mysql_exporter 创建一个指定账户用来连接数据库(当然,也可以直接用 root 或者其他有权限的账户,不过建议创建一个专有账户)。
CREATE USER exporter@'localhost' IDENTIFIED BY 'xxxx' WITH MAX_USER_CONNECTIONS 3;GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO exporter@'localhost';
4、启动Exporter
需要配置一下数据库连接认证信息并启动 Exporter,有两种方式配置:
4.1、使用环境变量方式(推荐)
export DATA_SOURCE_NAME='exporter:fswl@1234@(localhost:3306)/'./mysqld_exporter
![0297dde7e94ede5d74f431428443c7be.png](https://i-blog.csdnimg.cn/blog_migrate/e0e6f7f0cb83d8ec8466a7ff0a4ceee3.jpeg)
4.2、使用配置文件方式
# vim ~/.my.cnf[client]host=localhostport=3306user=exporterpassword=password # ./mysqld_exporter
注意:mysqld_exporter 默认使用 ~/.my.cnf 作为数据库认证文件,如果我们指定其他路径文件,需要启动时指定路径,例如:./mysqld_exporter --config.my-cnf="/.my.cnf"。
5、测试访问
此时,本地浏览器访问 http://服务器ip:9104/metrics 可以看到 mysql 相关的所有监控指标列表。
![8d1db050e1d5d4b829320f42539864a5.png](https://i-blog.csdnimg.cn/blog_migrate/4c98d975312be46c61fd642862f24078.jpeg)
三、关联Prometheus
Prometheus 和 mysqld_exporter 服务都已经启动起来了,那么接下来就需要将二者关联起来,让 Prometheus 来定时抓取 Exporter 提供的数据。我们需要修改 Prometheus 的配置文件 prometheus.yml 增加 mysql 相关 exporter job。
说明一下:增加了一个 job_name 为 mysql 的任务,targets 为指向 mysqld_exporter 提供的 Http 接口服务,labels 为该 job 配置一个标签,方便下边 Grafana 页面显示
- job_name: mysql static_configs: - targets: ['xx.xx.xx.xx:9104'] labels: instance: epms_mysql
![510c6e1d5c3901fc451af4baca81508e.png](https://i-blog.csdnimg.cn/blog_migrate/d0cf03d19769ffbfa9aad61ddf15a4f7.jpeg)
重启容器,隔一会查看metris:
![dad34d555f5a675e196c92c0c146a681.png](https://i-blog.csdnimg.cn/blog_migrate/ca3f26b9dbb61fa900724abb8163a615.jpeg)
四、grafana配置
1、下载dashboard
在 https://grafana.com/dashboards?search=mysql 下载mysql相关的dashboard,但是上边提供的dashboard效果不一定好,可以根据需要自己配.
![ff69e1e557a887a5c84698a4952717b6.png](https://i-blog.csdnimg.cn/blog_migrate/916c7c3f50a4de81c046e038b503a1e4.jpeg)
2、导入json
![319ef1a46f4bd844cb2fbdf447306010.png](https://i-blog.csdnimg.cn/blog_migrate/9ad6704d251bd3a7b7d8662263945106.jpeg)
3、展示
![72ff39e04c6ae3585adb9d8da1c7f5ba.png](https://i-blog.csdnimg.cn/blog_migrate/dec5541f6a5280971649889a1c4eddba.jpeg)
![747e22f75ace53a7c2e56bb68d0b6db3.png](https://i-blog.csdnimg.cn/blog_migrate/04cab58acc9b116b383eefff897329c3.jpeg)
![35f45446ee9b2351880e670e3caff98f.png](https://i-blog.csdnimg.cn/blog_migrate/fbe95cbaf455c3b36ceae1461e5aa475.jpeg)
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
![6cef85981cd3de44e3ea8e8401cc4b3c.gif](https://i-blog.csdnimg.cn/blog_migrate/9344a7b41cd26b8b64bb34dd57eb3470.gif)