配置 Prometheus + Grafana.note

noteId: WEB29696c99856ad4db27f64b0cc591b8d9 · 原始路径:/ALL/1-世赛Docker/配置 Prometheus + Grafana.note · 图片:24 · 附件待处理:1

 
 
 
一、配置 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 ....