5.监控MySQL
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的更多相关文章
- 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL
前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...
- Zabbix监控mysql performance
介绍 zabbix监控mysql性能,使用zabbix自带的mysql监控模板,可以监控以下内容OPS(增删改查).mysql慢查询数量.mysql请求\响应流量带宽 配置 新建mysql监控用户 G ...
- 监控mysql各种选项
安装mysql之后,需要对mysql服务进行监控. nagios开源自带的check_mysql 对 mysql 的slave 机监控倒是不错.但是对数据库主机监控就略显不足了. 使用一个监控 ...
- zabbix通过第三方插件percona监控mysql数据库
zabbix通过第三方插件percona监控mysql数据库 ...
- zabbix利用自带的模板监控mysql数据库
zabbix利用自带的模板监控mysql数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 有些东西你不会的时候觉得它特别难,但是当你去做的时候就发现如此的简单~zabbix功能 ...
- 详解 Spotlight on MySQL监控MySQL服务器
前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/J ...
- cacti监控mysql
cacti监控mysql 2013-09-25 16:21:43 分类: LINUX 原文地址:cacti监控mysql 作者:baochenggood cacti监控mysql 1 下载cacti监 ...
- zabbix 监控MySQL
现在我来说一下我的监控环境 zabbix-3.0.3 MySQL-5.6.23 1.首先我们要登录MySQL,创建一个监控MySQL的用户 GRANT USAGE,PROCESS,SUPER,REPL ...
- shell脚本监控MySQL服务是否正常
监控MySQL服务是否正常,通常的思路为:检查3306端口是否启动,ps查看mysqld进程是否启动,命令行登录mysql执行语句返回结果,php或jsp程序检测(需要开发人员开发程序)等等: 方法1 ...
- Zabbix通过percona监控MySQL
因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式 Percona介绍 P ...
随机推荐
- Homebrew安装(macos)
参照大佬的博客文章:https://zhuanlan.zhihu.com/p/111014448 OSX 将下面命令复制到终端执行 /bin/zsh -c "$(curl -fsSL htt ...
- 【Unity基础知识】认识常用的生命周期函数(Awake、Start、Update...)
一.了解帧的概念 游戏的本质就是一个死循环 每一次循环都会处理游戏逻辑 并 更新一次游戏画面 之所以能看到画面在动 是因为 切换画面速度达到一定速度时 人眼就会认为画面是动态且流畅的 一帧就是执行了一 ...
- 【黄啊码】MySQL入门—3、我用select *,老板直接赶我坐火车回家去,买的还是站票
大家好!我是黄啊码,学会了DDL语句了吗?那我们今天就来学习一下基本的查询语法,我见过很多外包机构的程序员都是万物皆可select *,然后项目跑了一段时间就基本跑不动了,问就回答:服务器配置不够,加 ...
- selenium环境配置和八大元素定位
一.环境配置 1.selenium下载安装 安装一:pip install selenium(多数会超时安装失败) 安装二:pip install -i https://pypi.tuna.tsing ...
- 分析 java.util.LinkedHashMap
介绍 该实现与HashMap不同的是它维护一个双向链表,可以使HashMap有序.与HashMap一样,该类不安全. 结构 和HashMap的结构非常相似,只不过LinkedHashMap是一个双向链 ...
- .NET的求复杂类型集合的差集、交集、并集
前言 如标题所述,在ASP.NET应用程序开发中,两个集合做比较时 我们使用微软IEnumerable封装的 Except/Intersect/Union 取 差集/交集/并集 方法是非常的方便的: ...
- 从零开始Blazor Server(10)--编辑角色
例图 目前的样式是这样的: 其中角色在一个table里,然后可以增删改查,并且可以给指定的用户分配权限. 创建文件 首先我们在Pages/Admin目录下新建一个Role.razor.因为我们的Adm ...
- JavaScript的入门
书写的三种方式 1. 书写在script标签里面(一般会用到的) 2.书写在js文件里面(推荐)定义一个js文件(xxx.js) 3. 书写对应的事件属性里面(比较少用) 初体验 1. 目前js的代码 ...
- Spring 05: 用DI(依赖注入)优化Spring接管下的三层项目架构
背景 用注解改造前面Spring博客集里(指 Spring 02)Spring接管下的三层项目架构 对前面Spring博客集里(指 Spring 04)@Controller + @Service + ...
- mac M1通过homebrew安装python3报错Error: Command failed with exit 128: git
fatal: not in a git directoryError: Command failed with exit 128: git 只需要运行 git config --global --ad ...