Appearance
1.概述
1.1 简介
prometheus是由谷歌研发的一款开源的监控软件,它通过安装在远程机器上的exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上 同时Prometheus后端用 golang语言开发,前端是 Grafana。
1.2 服务规划
- 规划如下
IP地址 | 端口 | 服务描述 |
---|---|---|
1.1.1.1 | 9100 | 被监控服务器1,安装 Prometheus Exporter (客户端) |
1.1.1.2 | 9110 | 被监控服务器2,安装 Prometheus Exporter (客户端) |
1.1.1.3 | 9090 | Prometheus Server (服务器端) |
1.1.1.4 | 3001 | Grafana 用于展示图表 |
- 概览图
2.安装
为了方便同学们实验,这里我们的 prometheus-exporter、prometheus-server、grafana 服务可以都安装在1台节点上面, 其中地址是实际内网ip地址,例:192.168.10.49
2.1 目录初始化
# /opt/prometheus/data目录,准备用来挂载放置prometheus的数据
# /opt/prometheus/config目录,准备用来放置prometheus的配置文件
# /opt/prometheus/rules目录,准备用来挂载放置prometheus的规则文件
mkdir -p /opt/prometheus/{data,config,rules}
# 授权相关文件夹权限
chmod -R 777 /opt/prometheus/
2.2 安装 prometheus-exporter
确保本地 网络代理就绪
部署 & 启动
# 拉取镜像
% docker pull prom/node-exporter
# 启动服务
% docker run --name=node-exporter -p 9100:9100 -itd prom/node-exporter
# 查看服务
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7d0ac963sss0 prom/node-exporter "/bin/node_exporter" 2 seconds ago Up 2 seconds 0.0.0.0:9100->9100/tcp node-exporter
访问 http://localhost:9100/ 或者 http://192.168.10.49:9100/,出现以下界面表示成功,点击 Metrics 查看上报指标
上报指标如下,后续 prometheus-exporter 会将这些指标上报到 prometheus-server
2.3 安装 prometheus-server
添加: /opt/prometheus/ 为共享目录,进入docker下的file setting配置下,添加共享 -》 保存并重启
添加:prometheus.yml 文件,添加1.1.1.3_prometheus、1.1.1.1_exporter 实例
# 编辑,确保填写真实内网ip地址:192.168.10.49
vim /opt/prometheus/config/prometheus.yml
# 添加以下内容
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: '1.1.1.3_prometheus'
static_configs:
- targets: ['192.168.10.49:9090']
labels:
instance: '1.1.1.3_prometheus'
- job_name: '1.1.1.1_exporter'
static_configs:
- targets: ['192.168.10.49:9100']
labels:
instance: '1.1.1.1_exporter'
检查启动是否成功, 这里发现是yaml 格式有问题
检验 prometheus.yml 是否符合格式,修改成符合格式 访问:https://www.bejson.com/validators/yaml_editor/#google_vignette
直到修改正确
- 部署 & 启动
# 拉取
docker pull prom/prometheus
# 启动
docker run --name prometheus -p 9090:9090 --restart=always \
-v /opt/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /opt/prometheus/rules/rules.yml:/etc/prometheus/rules.yml \
-itd prom/prometheus --config.file=/etc/prometheus/prometheus.yml --web.enable-lifecycle
# 查看服务
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b362bfcss9 prom/prometheus "/bin/prometheus --c…" 40 minutes ago Up 2 minutes 0.0.0.0:9090->9090/tcp prometheus
7d0ac963ssc0 prom/node-exporter "/bin/node_exporter" About an hour ago Up About an hour 0.0.0.0:9100->9100/tcp node-exporter
2.4 安装 grafana
- 拉取镜像
docker pull grafana/grafana
- 创建grafana 目录
mkdir -p /opt/prometheus/grafana/
chmod -R 777 /opt/prometheus/grafana/
- 临时启容器拷贝grafana.ini
# 先临时启动一个容器
docker run --name grafana-tmp -d -p 3001:3001 -itd grafana/grafana
# 将容器中默认的配置文件拷贝到宿主机上
docker cp grafana-tmp:/etc/grafana/grafana.ini /opt/prometheus/grafana/grafana.ini
# 移除临时容器
docker stop grafana-tmp
docker rm grafana-tmp
- 启动镜像
# 以root启动,这里将外部3001端口映射成内部3000端口提供grafana服务(因为:外部3000端口已经被ruoyi-vue-pro app端程序应用)
docker run -d -p 3001:3000 --name grafana --restart=always \
-v /opt/prometheus/grafana/grafana.ini:/etc/grafana/grafana.ini \
-v /opt/prometheus/grafana/data:/var/lib/grafana \
-e "GF_SECURITY_ADMIN_PASSWORD=admin" \
--user root \
grafana/grafana
访问 http://localhost:3001/login 或 http://192.168.10.49:3001/login,输入 admin/admin 进行登录
会提示是否更换密码,这里选 skip
登录成功页面