五、关于生产环境下的MySQL(下)(生产环境监控)
- 虽然通过测压后,你大概能知道一个数据库能承受多少 QPS 和TPS等等。但是当我们在生成环境依然是需要对数据库进行监控。(虽然大部分人都没这么干)
- 可以利用 Prometheus和Grafana 系统
- Prometheus其实就是一个监控数据采集和存储系统,他可以利用监控数据采集组件从你指定的MySQL数据库中采集他需要的监控数据。
- Grafana 可视化界面
5-1 安装过程
5-1-0 所需软件
-
Prometheus是监控报警工具:用来拉取数据的。(采集的监控数据以指标(metric)的形式保存在内置的时间序列数据库)
-
Exporter,是Prometheus中一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。(与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。)
- node_exporter 用于 收集机器系统相关指标的Prometheus插件
- mysqld_exporter是用来收集Mysql或者MariaDB数据库相关指标的Prometheus插件
-
grafana 是可视化监控工具,是一个跨平台的开源的度量分析和可视化工具,可以做数据监控和数据统计,带有告警功能。支持许多不同的时间序列数据(数据源)存储后端。
5-1-1 node_exporter 安装
- 下载文件并解压
// 创建目录
cd /opt/
mkdir node_exporter
cd node_exporter
// 下载文件并解压
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.0/node_exporter-1.2.0.linux-amd64.tar.gz
tar -zxvf node_exporter-1.2.0.linux-amd64.tar.gz
mv node_exporter-1.2.0.linux-amd64/* ./
- 运行文件
//前台运行
./node_exporter
//后台运行指令
//nohup ./node_exporter &
(默认监听端口是9100,若需要自定义监听端口以及其他选项,可以使用 ./node_exporter --help)
(注意:涉及端口记得查看自己机器的防火墙哦 )
- 访问
5-1-2 mysqld_exporter
- 下载文件并解压
cd /opt/
// 下载文件并解压
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz
tar -zxvf node_exporter-1.2.0.linux-amd64.tar.gz
mv node_exporter-1.2.0.linux-amd64/* ./
- 创建 my.cnf
在mysql_exporter的目录下 创建 my.cnf文件,并编写内容
cd /opt/mysqld_exporter/
vim my.cnf
[client]
user=root
password=XXXi
- 运行文件
//前台运行
./mysqld_exporter --config.my-cnf="/opt/mysqld_exporter/my.cnf"
//后台运行指令
//nohup ./mysqld_exporter --config.my-cnf="/opt/mysqld_exporter/my.cnf" &
(默认监听端口是:9104,若需要自定义监听端口以及其他选项,可以使用 ./mysqld_exporter --help)
(注意:涉及端口记得查看自己机器的防火墙哦 )
- 访问
5-1-3 prometheus安装
- 下载文件并解压
// 创建目录
cd /opt/
// 下载文件并解压
wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz
tar -zxvf prometheus-2.28.1.linux-amd64.tar.gz -C /opt
mv prometheus-2.28.1.linux-amd64/ prometheus
- 修改 prometheus 配置文件
cd /opt/prometheus/
vim prometheus.yml
在文件末尾增加 以下文本
(每个 job_name代表一个监控的job,target是指明监听的地址和端口号)
- job_name: 'mysql'
static_configs:
- targets: ['localhost:9104']
labels:
instance: 'db0'
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
labels:
instance: 'db0'
- 运行prometheus
//前台运行
./prometheus
//后台运行指令
//nohup ./prometheus &
- 访问控制台 http://192.168.31.10:9090/(默认端口是9090)
5-1-4 Grafana 安装
- 进入官网 https://grafana.com/grafana/download, 根据官网提示招到对应的版本。
- 我的是 centos,所以运行 如下代码
wget https://dl.grafana.com/oss/release/grafana-8.0.6-1.x86_64.rpm
sudo yum install grafana-8.0.6-1.x86_64.rpm
3. 启动并查看控制台(初始账号密码都是admin)
systemctl start grafana-server.service
``
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c8a132e06544c4294035ff20dd5103f.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1OTIzODE4NDE=,size_16,color_FFFFFF,t_70)
4. 在选择data source type时选择Prometheus
![在这里插入图片描述](https://img-blog.csdnimg.cn/b84b07f13f0d4005ad19c31e8e690098.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1OTIzODE4NDE=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/69f60895d9ea4e20a91e2eef9613844f.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1OTIzODE4NDE=,size_16,color_FFFFFF,t_70)