使用docker部署Prometheus和Grafana
1. 场景说明
想要对192.168.10.1、192.168.10.2、192.168.10.3这几台虚拟机进行主机性能监控,对192.168.10.2、192.168.10.3的MySQL占用进行监控。
创建新的虚拟机192.168.20.9,准备部署Prometheus和Grafana。配置是2核6G,50G磁盘大小,绰绰有余,可请酌情增减。
2. 安装docker
3. 下载镜像
# 监控性能指标
docker pull prom/node-exporter
# 监控MySQL性能指标
docker pull prom/mysqld-exporter
# Prometheus监控系统
docker pull prom/prometheus
# 可视化和分析监控指标的开源平台
docker pull grafana/grafana
4. 启动容器
4.1 安装node-exporter
如果想要监控主机资源(CPU/内存/磁盘等),则需要对每个设备安装node-exporter,即四台虚拟机都需要安装;请确保每台设备都安装了docker,并拉取了node-exporter镜像。
# 运行node-exporter容器
docker run -d --name node-exporter \
--restart=always -p 9100:9100 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /:/rootfs:ro prom/node-exporter
访问【IP地址: :9100/metrics】查看效果,如果出现如下的效果图,则说明启动成功。
【效果图片】
4.2 安装mysqld-exporter
如果想要监控主机MySQL的占用情况,则需要对每个设备安装mysqld-exporter,即192.168.10.2、192.168.10.3这两台需要安装;请确保每台设备都安装了docker,并拉取了mysqld-exporter镜像。
建议在需要被监控主机的MySQL中添加专门的监控账号。
# 创建专门的监控账号
create user 'exporter'@'%' identified by 'yourpassword';
# 授予账号权限并刷新
grant process, replication client, select on *.* to 'exporter'@'%';
flush privileges;
# 创建配置文件,并进行配置,创建容器需要对该文件进行挂载
mkdir /path/to/
touch .my.cnf
vim .my.cnf
将下面的内容CV到.my.cnf中
[client]
user = exporter
password = yourpassword
host = localhost
port = 3306
# 运行mysqld-exporter容器
docker run -d --name mysqld_exporter \
--restart=always -p 9104:9104 \
-v /path/to/.my.cnf:/.my.cnf \
mysqld-exporter
访问【IP地址:9104/metrics】查看效果,如果出现如下的效果图,则说明启动成功。
4.3 安装prometheus
在192.168.20.9上部署Prometheus
# 创建Prometheus配置文件,并进行配置,创建容器需要对该文件进行挂载
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
将下面的内容CV到prometheus.yml中
global:
# 默认抓取间隔
scrape_interval: 60s
# 告警规则评估间隔
evaluation_interval: 60s
# 抓取超时时间
# scrape_timeout: 10s
# 抓取配置
scrape_configs:
# prometheus自身监控
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
# node-exporter监控,对每个需要进行监控的设备安装
- job_name: node
static_configs:
# 172.17.0.1是docker0的IP地址,可以通过ip addr show进行查询
# 也可以将其替换成本机的实际IP地址
- targets: ['172.17.0.1:9100']
labels:
instance: localhost
- targets: ['10.8.100.7:9100','10.8.100.81:9100']
# mysqld-exporter监控,对每个需要进行监控的设备安装mysqld-exporter
- job_name: mysqld
static_configs:
- targets: ['10.8.100.92:9104','10.8.100.93:9104','10.8.100.91:9104','122.112.197.7:9104']
# windows-eporter监控,对每个需要进行监控的设备安装windows-eporter
# 这个是监控windows系统的,需要在官网下载专门的安装包,此处不做说明,插入本段代码时可以将本段删除
- job_name: windows
static_configs:
- targets: ['10.8.100.139:9182','10.8.100.102:9182']
# 运行prometheus容器
docker run -d --name prometheus \
--restart=always \
-p 9090:9090 \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
访问【192.168.20.9:9090/graph】查看效果,如果出现如下的效果图,则说明启动成功。
4.4 安装grafana
在192.168.20.9上部署Grafana
mkdir /opt/grafana-storage
chmod 777 -R /opt/grafana-storage
docker run -d --name grafana --restart=always \
-p 3000:3000 --name=grafana \
-v /opt/grafana-storage:/var/lib/grafana grafana/grafana
访问【192.168.20.9:3000】查看效果,如果出现如下的效果图,则说明启动成功。
grafana初始账号密码为admin/admin