问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

保姆级教程:容器化部署Prometheus监控系统(含详细步骤与配置说明)

创作时间:
2025-03-10 13:07:46
作者:
@小白创作中心

保姆级教程:容器化部署Prometheus监控系统(含详细步骤与配置说明)

引用
CSDN
1.
https://blog.csdn.net/lwxvgdv/article/details/140407579

Prometheus是一个开源的监控系统,用于收集和存储来自各种服务和主机的性能数据。它会定期检查系统的状态,并把这些数据保存下来,方便以后查看和分析。Grafana是一个数据可视化工具,可以把 Prometheus 收集到的数据用图表的形式展示出来。Node Exporter是一个小工具,用来从服务器或主机上收集硬件和操作系统的性能数据,比如 CPU、内存、磁盘和网络的使用情况。

使用容器化部署Prometheus有以下几个简单易懂的好处:

  • 方便快速部署:容器化让部署 Prometheus 变得非常简单。你只需要一个命令就可以启动 Prometheus,而不需要手动配置各种依赖和环境。
  • 一致性和可移植性:容器化保证了 Prometheus 在不同环境中的运行效果一致。无论是在开发环境、测试环境还是生产环境,Prometheus 都能表现得一样好。
  • 隔离性和安全性:容器将 Prometheus 运行所需的所有东西都打包在一起,与其他应用隔离开来。这样可以减少不同应用之间的干扰,提高安全性。
  • 易于扩展和管理:使用容器编排工具(如 Kubernetes),可以很容易地扩展 Prometheus 的实例数量,处理更多的数据。此外,管理和更新也变得更加简单,可以自动处理。
  • 资源高效利用:容器可以在同一主机上运行多个实例,充分利用系统资源。而且容器启动和停止速度快,资源利用率高。

环境

虚拟机配置如下:

IP
主机名
CPU
内存
硬盘
192.168.10.16
prometheus-server
2c
2G
100G
192.168.10.17
node_exporter
2c
2G
100G

版本:CentOS 7.9
初始化已完成(防火墙、沙盒、主机名)

一、安装Docker

下载阿里Yum源并安装Docker社区版:

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable --now docker

二、容器化构建Prometheus监控系统

1. 部署Prometheus

创建持久存储目录:

mkdir -p /opt/prometheus/config
mkdir -p /opt/prometheus/data
mkdir -p /opt/prometheus/rules

准备Prometheus配置文件:

vim /opt/prometheus/config/prometheus.yml

配置文件内容:

global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
- static_configs:
- targets: ['192.168.10.16:9093']
rule_files:
- "/usr/local/prometheus/rules/*.yml"
scrape_configs:
- job_name: "prometheus"
    static_configs:
- targets: ["192.168.10.16:9090"]

使用Docker运行Prometheus:

docker run -d \
--privileged=true \
-u root \
--restart=always \
-p 9090:9090 \
-v /opt/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /opt/prometheus/data:/prometheus \
-v /opt/prometheus/rules:/usr/local/prometheus/rules \
prom/prometheus:latest \
--storage.tsdb.retention.time=100d \
--config.file=/etc/prometheus/prometheus.yml

查看容器是否创建成功:

docker ps

如果没有提前准备镜像,需要一定时间下载镜像,稍等几分钟后再查看即可。看到running后就可以在宿主机浏览器上查看页面了。

如果出现容器启动后马上停止,多半是端口被占用。查看是什么服务占用了9090端口,停止或在docker命令上更换映射的端口。

如果容器状态为err开头,查看容器日志:

docker logs 容器名

分析原因即可。

容器up了之后,在浏览器上搜索本机IP:9090端口,这里是:

192.168.10.16:9090

就可以看到页面了。

如果容器已经running了还是访问不到,查看防火墙等基础设置。

2. 部署Grafana

创建持久存储目录:

mkdir -p /opt/grafana/data
chmod 777 /opt/grafana/data

接下来直接使用Docker运行Grafana:

docker run -d \
-p 3000:3000 \
--name grafana \
-v /opt/grafana/data:/var/lib/grafana \
-v /etc/localtime:/etc/localtime \
grafana/grafana:latest

查看:

docker ps

up了即可。

查看图形化界面,在浏览器搜索:

192.168.10.16:3000

一般它都会先跳一会加载,等待半分钟刷新即可。

输入默认账户密码:

账户:admin
密码:admin

后面会让你重置密码,跳过或重置密码都行。这里跳过了。

后面就是添加Prometheus源的过程,跟着截图做就行,很详细。

如果已经展开就不用按home旁边的那三条杠了。

在Prometheus server URL后输入Prometheus访问地址,也就是:


http://192.168.10.16:9090

其他不用动,默认就行。翻到最下面,有对号就说明好了。

到这里Prometheus本机的一些配置就做好了。下面是关于Prometheus如何监控其他服务器的教程。

三、Prometheus监控其他主机

这里监视的服务器也就是IP为17的那台。操作也是在17上操作。

1. 部署Docker

下载阿里Yum源并安装Docker社区版:

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable --now docker

直接使用Docker运行Node Exporter:

docker run -d \
-p 9100:9100 \
--restart=always \
--name node-exporter \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
prom/node-exporter:latest

查看:

docker ps

up了即可。

访问,在浏览器访问:

192.168.10.17:9100

应该能看到收集到的日志。

在Prometheus.yml文件中添加otherhost主机:

vim /opt/prometheus/config/prometheus.yml

在最后面添加即可:

    # 要添加的部分
- job_name: "node-exporter-otherhost"
    static_configs:
- targets: ["192.168.10.17:9100"]

查看Prometheus容器的ID:

docker ps

重启Prometheus容器让配置生效。这里假设容器ID为93af35162346:

docker restart 93af35162346

在Grafana中展示otherhost主机监控dashboard:

主机浏览器访问:

192.168.10.16:3000

可以看到有两种方式添加仪表盘:一种是JSON格式,一种是ID。这里我们使用ID。这是一个关于Linux主机的仪表盘:

12633

注意:下面的那个Prometheus数据源的选择要和之前创建的名称一致,也就是这张图最上面的name。


最后就能看到17主机的监控画面了。

补充、如何查找仪表盘

浏览器搜索:

grafana.com

这里需要先注册账户。注册完毕之后再访问:

即可。然后就可以根据需要搜索仪表盘。搜索Linux主机,可以看到第一个就是我们使用的仪表盘模板:

点击它,在这个界面提供了两种使用方法:下载JSON文件或复制ID,也可以看到它的ID是多少。到这就算完成了。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号