前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Grafana+Prometheus+Mysqld-Exporter实现Mysql监控

Grafana+Prometheus+Mysqld-Exporter实现Mysql监控

作者头像
doper
发布2022-09-26 17:44:12
2.4K0
发布2022-09-26 17:44:12
举报

Grafana+Prometheus+Mysqld-Exporter实现Mysql监控(基于Docker)

使用Grafana+Prometheus+Mysqld-exporter实现Mysql监控的步骤

1. 简介

Granafa: 开源的数据可视化平台 Prometheus:监控系统,时序数据库 Mysqld-Exporter: mysql服务器prometheus metrics导出 在本文介绍如何在云服务器中实现腾讯云MySQL监控。Grafana+Prometheus的搭建可参考https://www.cnblogs.com/xiao987334176/p/9930517.html

2. 步骤

2.1. 安装Grafana

使用docker直接search并Pull,运行。

代码语言:javascript
复制
[root@VM-0-6-centos ~]# docker search grafana
NAME                                    DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
grafana/grafana                         The official Grafana docker container           2150
....

这里直接pull最新版的grafana即可。

代码语言:javascript
复制
[root@VM-0-6-centos ~]# docker pull grafana

拉取完毕后创建一个文件夹用来存放grafana数据,本例子中选择在云服务器的/opt目录下

代码语言:javascript
复制
[root@VM-0-6-centos ~]# mkdir /opt/grafana-storage

修改该目录权限

代码语言:javascript
复制
[root@VM-0-6-centos ~]# chmod 777 -R /opt/grafana-storage

启动grafana

代码语言:javascript
复制
docker run -d \
  -p 3000:3000 \
  --name=grafana \
  -v /opt/grafana-storage:/var/lib/grafana \
  grafana/grafana

随后访问{服务器ip}:3000 即可进入登录页,默认的登录用户名和密码都是admin。可以修改。

image-20220302102345533
image-20220302102345533

2.2. 数据库Metrics导出

这是用来导出mysql数据的,同样可以通过拉取镜像生成容器的方法运行。具体步骤如下:

2.2.1. 创建数据库账号

在安装Mysqld-Exporter之前,要先在数据库创建账号用来拉取数据库数据。首先进入数据库,创建账号并赋予权限。 需要注意的是,本例子中云服务器和数据库都在同一内网中,并且数据库只有内网ip没有公网ip,先看数据库操作命令。

代码语言:javascript
复制
create user 'exporter'@'{ip}' IDENTIFIED by '{password}' 
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'{ip}';

在这里中{ip}和{password}根据自己实际情况填,记得去掉大括号

ip: 这里的ip若想省事可以直接填*表示所有ip,若要严谨点则填指定机器的ip。在网上大多数教程中由于Mysql和Mysql-Exporter都是同一机器上所以教程里都填localhost,在本例子中由于云服务器和数据库在同一内网,并且·Mysql-Exporter·是在云服务器的Docker下运行并暴露端口到宿主机上。因此本例子中{ip}填了云服务器的内网ip地址。

password: 账号密码,待会配置Mysql-Exporter需要用到.

2.2.2 安装Mysql-Exporter

直接拉取Mysql-Exporter镜像运行即可。 具体命令如下:

代码语言:javascript
复制
docker search mysqld-export	# 查找镜像,一般这里搜索出来的第一个就是
docker pull prom/mysqld-exporter	# 拉取镜像
docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="exporter:{password}@({ip}:3306)/" --name mysqld_exporter prom/mysqld-exporter:latest

这里{ip}{password}要和上一步中的一样。 之后访问http://{ip}:9104/metrics查看是否导出成功(若是云服务记得配置安全组开放端口)。

注意!这里得通过网页数据长度来判断是否导出成功,因为即使Mysql-Exporter配置失败,数据库数据没导出metrics但它还是可以运行,并且同样可以访问该网页。具体表现为进入/metrics页网页内容很少,在下图中为导出成功的结果,数据量较大,可以根据右边的滚动条来判断。

image-20220302103801291
image-20220302103801291

2.3. 安装prometheus

本例子中同样使用Docker拉取镜像运行。

创建prometheus配置文件 本例子在云服务器的/opt目录下创建yml配置文件

代码语言:javascript
复制
mkdir /opt/prometheus
vim /opt/prometheus/prometheus.yml

配置文件的内容如下:

代码语言:javascript
复制
global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: mysql
    static_configs:
      - targets: ['{ip}:9104']

这里的ip为Mysql-Exporter容器的ip地址,可通过docker inspect containerID/containerName命令查看。

拉取prometheus镜像并启动 pull镜像

代码语言:javascript
复制
docker pull prom/prometheus #这里直接拉取这个即可,不通过search查看

启动

代码语言:javascript
复制
docker run  -d \
  -p 9090:9090 \
  -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  prom/prometheus

这里/opt/prometheus/prometheus.yml要改成自己机器配置文件的路径

检查是否成功 启动后检查一下是否配置成功,进入http://{ip}:9090/检查是否启动成功。若成功可以进入到prometheus ui界面,由于prometheus是基于时序数据库的,若页面提示时区不配则点一下Use local time即可。 进入ui界面,检查prometheus是否拉取到Mysql导出数据,点击上方status->Targets检查。

image-20220302105117121
image-20220302105117121
image-20220302105356278
image-20220302105356278

若如上图所示则说明成功了,若还没提示up则等一下即可,要是长时间没up可能就是配置错误,或者是端口没开启。

2.4. 配置Grafana

  1. 配置prometheus数据源
image-20220302110316752
image-20220302110316752

在界面左边设置中,点击Data sources,然后选择prometheus,填写相关信息,添加。

  1. 配置数据展示模板 首先下载Mysql数据展示的json模板,这里使用7362,网址如下 https://grafana.com/grafana/dashboards/7362 下载完成后,登录进Grafana界面,点击右边+号的import按钮,导入刚才下载的模板即可。
image-20220302105509721
image-20220302105509721
image-20220302110209940
image-20220302110209940

​ 完成!

image-20220302110245588
image-20220302110245588

3. 避坑

  1. 配置文件一定要写对。
  2. 数据库账号ip要填对,不然Mysql-Exporeter无法导出数据。
  3. 容器ip要写对
  4. 若是在云服务器部署,要设置安全组开放相关端口。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Grafana+Prometheus+Mysqld-Exporter实现Mysql监控(基于Docker)
  • 1. 简介
  • 2. 步骤
    • 2.1. 安装Grafana
      • 2.2. 数据库Metrics导出
        • 2.2.1. 创建数据库账号
        • 2.2.2 安装Mysql-Exporter
      • 2.3. 安装prometheus
        • 2.4. 配置Grafana
        • 3. 避坑
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档