prometheus监控MySQL需要用到mysql_exporter。

mysql_exporter 项目地址:https://github.com/prometheus/mysqld_exporter

1、安装部署

我这里的mysql部署在192.168.0.254之上,而prometheus服务端是在192.168.75.11上,这个时候,监控的工具mysql_exporter可以部署在这两台主机任一一台上,只不过需要注意的是,在配置prometheus.yaml添加监控目标的时候,注意填写对应ip即可。

我这里为了方便则部署在了192.168.75.11之上。

cd /usr/local/src
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -zxv -f mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
mv mysqld_exporter-0.12.1.linux-amd64/ mysqld_exporter

2,授权连接。

想要获取监控数据,需要授权程序能够连接到MySQL。

授权了本地登陆,说明这个授权适用于mysql_exporter监控工具部署在MySQL Server上的情况

GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'exporter'@'localhost' identified by '123456';
GRANT SELECT ON performance_schema.* TO 'exporter'@'localhost';
flush privileges;

部署在Prometheus Server上,则需要授权远程登陆,在这里直接使用192.168.0.254上MySQL的root用户和密码进行连接。

3,启动服务。

注意: 若是把mysqld_exporter部署在MySQL所在主机上,则需要创建.my.cnf文件,同时mysqld_exporter.service文件中指定使用该cnf文件

注意:若是把mysqld_exporter部署在prometheus所在主机,则不需要创建.my.cnf文件,同时mysqld_exporter.service文件中也不指定使用该cnf文件,而是直接使用环境变量的方式连接其他主机上的数据库。

在这个例子中采用的是这种办法

创建配置信息文件,演示使用,本例中用不到这个

cd /usr/local/mysqld_exporter

vim .my.cnf
[client]
user=root
password=WritenGoodCode3367;;

然后启动服务时加载配置文件即可。

1,方式一,命令行式启动。

./mysqld_exporter -config.my-cnf=".my.cnf"
ss -tulnp |grep 9104

2,方式二,使用systemd管理。

添加启动配置(mysqld_exporter部署在MySQL所在主机的配置,这里仅供演示,本例中不使用这个)

vim /usr/lib/systemd/system/mysqld_exporter.service

[Unit]
Description=mysqld_exporter
After=network.target [Service]
Type=simple
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf /usr/local/mysqld_exporter/.my.cnf
Restart=on-failure [Install]
WantedBy=multi-user.target

注意:启动加载配置/usr/local/mysqld_exporter/.my.cnf不能再加单引号或者双引号,否则系统会附带识别,从而报配置文件不存在。

添加启动配置(mysqld_exporter部署在prometheus所在主机的配置,本例中使用这个配置)

vim /usr/lib/systemd/system/mysqld_exporter.service

[Unit]
Description=mysqld_exporter
After=network.target [Service]
Type=simple
Environment=DATA_SOURCE_NAME=root:WritenGoodCode3367;;@(192.168.0.254:3306)/
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter
Restart=on-failure [Install]
WantedBy=multi-user.target

Environment=DATA_SOURCE_NAME=root:WritenGoodCode3367;;@(192.168.0.254:3306)/

设置 DATA_SOURCE_NAME 变量,包含数据库信息:用户名:密码@(mysql地址:mysql端口)/,最后的/不能省略

加载配置并启动。

systemctl daemon-reload
systemctl start mysqld_exporter
systemctl status mysqld_exporter
systemctl enable mysqld_exporter
ss -tulnp | grep 9104

4,配置 prometheus.yml 添加监控目标

vim /usr/local/prometheus/prometheus.yml
- job_name: 'mysql'
static_configs:
- targets: ['localhost:9104']
labels:
instance: db1

重启服务。

systemctl restart prometheus

或者通过命令热加载:

curl  -XPOST localhost:9090/-/reload

5,配置 Grafana 的模板

mysql_exporter 在 Grafana 上为我们提供好了 Dashboard 模板:https://grafana.com/grafana/dashboards/7362

下载后在 Grafana 中导入 json 模板就可以看到官方这样的示例截图啦:



5.监控MySQL的更多相关文章

  1. 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL

    前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...

  2. Zabbix监控mysql performance

    介绍 zabbix监控mysql性能,使用zabbix自带的mysql监控模板,可以监控以下内容OPS(增删改查).mysql慢查询数量.mysql请求\响应流量带宽 配置 新建mysql监控用户 G ...

  3. 监控mysql各种选项

    安装mysql之后,需要对mysql服务进行监控.   nagios开源自带的check_mysql 对 mysql 的slave 机监控倒是不错.但是对数据库主机监控就略显不足了.   使用一个监控 ...

  4. zabbix通过第三方插件percona监控mysql数据库

     zabbix通过第三方插件percona监控mysql数据库                                                                     ...

  5. zabbix利用自带的模板监控mysql数据库

    zabbix利用自带的模板监控mysql数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 有些东西你不会的时候觉得它特别难,但是当你去做的时候就发现如此的简单~zabbix功能 ...

  6. 详解 Spotlight on MySQL监控MySQL服务器

    前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/J ...

  7. cacti监控mysql

    cacti监控mysql 2013-09-25 16:21:43 分类: LINUX 原文地址:cacti监控mysql 作者:baochenggood cacti监控mysql 1 下载cacti监 ...

  8. zabbix 监控MySQL

    现在我来说一下我的监控环境 zabbix-3.0.3 MySQL-5.6.23 1.首先我们要登录MySQL,创建一个监控MySQL的用户 GRANT USAGE,PROCESS,SUPER,REPL ...

  9. shell脚本监控MySQL服务是否正常

    监控MySQL服务是否正常,通常的思路为:检查3306端口是否启动,ps查看mysqld进程是否启动,命令行登录mysql执行语句返回结果,php或jsp程序检测(需要开发人员开发程序)等等: 方法1 ...

  10. Zabbix通过percona监控MySQL

    因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式 Percona介绍 P ...

随机推荐

  1. [HNOI2009]【一本通提高组合数学】有趣的数列

    [HNOI2009]有趣的数列 题目描述 我们称一个长度为 2 n 2n 2n 的数列是有趣的,当且仅当该数列满足以下三个条件: 它是从 1 ∼ 2 n 1 \sim 2n 1∼2n 共 2 n 2n ...

  2. Webpack学习系列 - Webpack5 怎么集成Babel ?

    程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构. 本文摘要:主要通过实操讲解运用Webpack 5 如何集成 Babel Babel 对于前端 ...

  3. 3.Android高仿网易云音乐-首页复杂发现界面布局和功能/RecyclerView复杂布局

    0.效果图 效果图依次为发现界面顶部,包含首页轮播图,水平滚动的按钮,推荐歌单:然后是发现界面推荐单曲,点击单曲就是直接进入播放界面:最后是全局播放控制条上点击播放列表按钮显示的播放列表弹窗. 1.整 ...

  4. Minimax 社论

    目录 题面 题解 代码 Reference 题面 LOJ #2537 / 洛谷 P5298 「PKUWC2018」Minimax 一棵有根二叉树 \(\mathcal T\) . 定义结点 \(x\) ...

  5. YII学习总结5(视图)

    <?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller ...

  6. 使用Python3.7+Django2.0.4配合vue.js2.0的组件递归来实现无限级分类(递归层级结构)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_133 所谓的无限极分类是啥?其实简单点说就是一个人类可以繁衍出多个后代,然后一个后代又可以分另外多个后代这样无限繁衍下去(可以想象 ...

  7. JDBC与ODBC的区别

    JDBC简介JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一访 ...

  8. Qt 国际化翻译

    简介 Qt Linguist 提供了一套加速应用程序翻译和国际化的工具.Qt 使用单一的源码树和单一的应用程序二进制包就可同时支持多个语言和书写系统. 使用 QTranslator 来加载生成的 qm ...

  9. 巨变!a16z 关于新一代数据基础设施架构的深度洞察

    点击上方 蓝字关注我们 来源 | a16z 作者 | Matt Bornstein, Martin Casado,Jennifer Li 翻译 | 夕颜 作为未来最重要的基础设施之一,数据正在成为各行 ...

  10. Luogu1993 小K的农场 (差分约束)

    \(if \ a - b <= c, AddEdge(b, a, c)\) Be careful, MLE is not good. #include <cstdio> #inclu ...