使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql
相关博文原文地址:
简书:test小星星:使用docker部署prometheus监控系统
Prometheus监控系统(6)使用mysqld_exporter监控MySQL
CSDN:woqutechteam:prometheus监控多个MySQL实例
一、docker部署prometheus监控系统
1.1 配置安装环境
1.1.1 安装prometheus
docker pull prom/prometheus
1.1.2 安装grafana
docker pull grafana/grafana
1.1.3 安装node_exporter
下载node_exporter,然后解压:
tar -xvzf ****.tar.gz
启动:
nohup ./node_exporter >> node_exporter.log 2>&1 &
1.2 运行环境
1.2.1 配置prometheus
vim prometheus-config.yml
# 全局配置
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
# 监控prometheus本身
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
# 通过node_exporter将监控数据传给prometheus,如果要监控多台服务器,只要在每个服务器上安装node_exporter,指定不同多ip地址就好了
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
# 监控mysql
- job_name: 'mysql'
static_configs:
- targets: ['localhost:9104']
1.2.2 启动 prometheus
docker run --name prometheus -d -p 9090:9090 \
-v /root/prometheus/prometheus-config.yml:/etc/prometheus/prometheus.yml \
prom/prometheus --config.file=/etc/prometheus/prometheus.yml
1.2.3启动 grafana
docker run --name grafana -d -p 3000:3000 grafana/grafana
在浏览器中输入:服务器ip地址:3000进入到Grafana界面。
添加监控数据源选择 prometheus。
输入prometheus的访问地址,并保存。注意不能使用localhost。
这个地方注意踩坑,prometheus.yml的配置文件,Ip尽量不要写localhost,写ip地址。
二、Prometheus使用mysqld_exporter监控MySQL
2.1官网下载mysqld_exporter并进行解压
2.2登录MySQL为exporter创建一个用户并进行授权(我直接使用root进行操作了,有风险,尽量不要使用)
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
2.3配置mysql_exporter
vi /usr/local/mysqld_exporter/my.cnf
[client]
host=192.168.21.xx
port=3306
user=exporter #这里的用户就是第二步设置的用户
password=123456
2.4启动mysqld_exporter,默认监听在9104端口
/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/my.cnf
2.4.1 通过Docker启动mysqld_exporter
docker run -d --restart=always --name mysqld-exporter -p 9104:9104 -e DATA_SOURCE_NAME="user:password@(hostname:port)/" prom/mysqld-exporter
docker run -d --restart=always --name mysqld-exporter -p 9104:9104 -e DATA_SOURCE_NAME="exporter:123456@(192.168.1.82:3306)/" prom/mysqld-exporter
要查看容器是否报错, 主要是验证exporter与mysql服务端之间正常连接和获取数据;
docker logs -f mysqld-exporter 看有没有报错
2.5为mysqld_exporter创建一个启动脚本,内容如下(可做可不做)
[Unit]
Description=mysqld_exporter
[Service]
Type=simple
Restart=on-failure
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/my.cnf
[Install]
WantedBy=multi-user.target
2.6使用systemctl管理mysqld_exporter
systemctl daemon-reload
systemctl start mysqld_exporter.service