配置 Prometheus + Grafana.note

一、配置 Grafana + Prometheus:
·这里的docker容器,能够通过宿主机访问其他机器,并且能够使用宿主机的DNS
·拉取在线镜像(这一步比赛时无需我们操作):
# 先让 docker 走本机代理去访问docker官网:
vim /etc/systemd/system/docker.service.d/proxy.conf
# 拉取官方镜像:
docker pull grafana/grafana-oss:12.4.2
docker pull prom/prometheus:v3.10.0
# 查看镜像:
docker images
# 导出镜像:
docker save -o [导出后的文件名] [镜像名:版本]
docker save -o grafana-v12.4.2.tar grafana/grafana-oss:12.4.2
docker save -o prometheus-v3.10.0.tar prom/prometheus:v3.10.0
ls
1、在 被监控端安装 node-exporter(默认端口:TCP 9100):
# 第一张光盘中就有:
apt install -y prometheus-node-exporter安装后默认就有数据,并且能直接被获取:
curl localhost:9100/metrics

3、启用 docker 容器:
1)安装 docker、导入镜像:
apt install -y docker.io
# 导入镜像:
docker load -i prometheus-v3.10.0.tar
docker load < grafana-v12.4.2.tar
docker images
2)创建 容器网络(可选但是建议加):
# 创建一个 bridge 类型的网络,让 grafana 和 prometheus 都加入这个网络,这样他们之间就能够直接访问,而不需要访问宿主机的IP地址
## 虽然默认也有一个bridge网络,但是自定义的这个网络能支持更多功能
docker network create mo //mo是名称
# 查看已有网络:
docker network ls
3)配置 prometheus(TCP 9090):
3.1、获取 .yml 模板,并修改:
# 直接安装 prometheus,这样在 /etc/prometheus 目录中,就有 prometheus.yml 文件模板了
apt install -y prometheus
ls /etc/prometheus/prometheus.yml
# 然后停止并 disable prometheus:
systemctl stop prometheus
systemctl disable prometheus
# 然后修改它:
vim /etc/prometheus/prometheus.yml注意 yaml 缩进要使用空格不要使用 Tab

或者这样写:

·参数解释:
scrape_interval: 15s //每隔15秒采集一次数据
evaluation_interval: 15s //每隔15秒执行一次PromQL规则3.2、创建 docker volume(可选):
创建容器时调用 volume,将数据放到volume中,哪怕删除了容器,依旧能够保留数据
docker volume create prometheus-data
docker volume ls
4)创建 Prometheus容器:
# 先查看 images:
docker images
# 启动容器:
docker run -d --name prometheus --network mo --restart unless-stopped -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro -v prometheus-data:/prometheus prom/prometheus:v3.10.0 --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus·参数解释:
-d //后台运行
--network mo //指定容器运行网络为前面我们手动创建的mo(如果不指定就使用默认网络:bridge)(可选但是建议加)
--restart always //让容器永远保持启动状态(手动停止容器也依旧会自动启动)
# --restart unless-stopped //让容器永远保持启动状态,除非手动使用 docker stop ... 停止容器
-p 9090:9090 //宿主机端口:容器端口
-v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro //(文件映射)宿主机路径:容器路径:权限
-v prometheus-data:/prometheus //指定docker volume挂载路径(可选)
prom/prometheus:v3.10.0 //指定 docker 镜像名称:版本
--config.file=/etc/prometheus/prometheus.yml //指定prometheus配置文件路径
--storage.tsdb.path=/prometheus //定义prometheus数据库存储路径(可选)·然后就可以访问了:
http://192.168.1.1:9090

查看 监控机器状态:


可以看到状态都是 up 的
5)启动 Grafana(TCP 3000):
当 Prometheus 节点都 UP 之后就可以启动 Grafana了
5.1、创建 docker volume(可选):
docker volume create grafana-data
5.2、启动 Grafana 容器:
# 先查看 images:
docker images
docker run -d --name grafana --network mo --restart always -p 3000:3000 -v grafana-data:/var/lib/grafana grafana/grafana-oss:12.4.2
4、Web访问 grafana,并进行配置:
1)登陆 grafana,并修改默认密码:
# 默认用户/密码:
admin/admin
## 首次登陆会要求修改密码

2)添加 数据源为 Prometheus:


注意,地址这里填 http://prometheus:9090
不能填 localhost:9090,因为在容器网络中,localhost是grafana自己,只有通过容器网络用 prmetheus才能访问过去(docker内置了DNS能够访问这些容器名,只有自定义的docker network才能直接用容器名访问)

点击 save:
如果能够访问,就会显示 Successfully ....
