当前位置: 首页 > news >正文

通过Docker部署Prometheus + Grafana搭建监控平台【超详细版】

在这里插入图片描述

文章目录

  • 前言
  • 一、Prometheus、Grafana
    • 1.1 Prometheus简介
    • 1.2 Grafana简介
    • 1.3 Prometheus的核心组件
    • 1.4 Prometheus优点
    • 1.5 Prometheus缺点
  • 二、部署Docker
  • 三、主节点部署Prometheus+Grafana
    • 3.1 部署Prometheus
    • 3.2 防火墙开放端口
    • 3.3 访问服务
    • 3.4 安装Grafana
    • 3.5 防火墙开放端口
    • 3.6 访问服务
    • 3.7自定义账号/密码:admin/admin
  • 四、从节点部署Node_exporter
    • 4.1 被采集的主机节点上部署Node_exporter
    • 4.2 防火墙开放端口
  • 五、主节点配置Prometheus
    • 5.1 在主节点上修改Prometheus主配置文件
  • 六、配置Grafana监控界面
    • 6.1 添加Prometheus数据源
    • 6.2 选择Prometheus类型
    • 6.3 输入主节点PrometheusIP地址及端口
    • 6.4 点击sava保存
    • 6.5 新增Dashboard Linux基础数据展示
    • 6.6 填写模板id
    • 6.7 选择刚刚创建好的数据源
    • 6.8 查看Dashboard
  • 总结


前言

Prometheus(普罗米修斯R)是一套开源的监控&报警&时间序列数据库的组合,由SoundCloud公司开发。
Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker。
Prometheus应该是为数不多的适合Docker、Mesos、Kubernetes环境的监控系统之一。
Prometheus 号称下一代监控系统,已经成为主导及容器监控方面的标配,并且在未来可见的时间内被广泛应用


提示:以下是本篇文章正文内容,下面案例可供参考

一、Prometheus、Grafana

1.1 Prometheus简介

Prometheus是由SoundCloud公司开发的开源监控和警报工具包。其设计思想是通过时间序列数据库存储监控数据,并通过强大的查询语言PromQL对数据进行分析。Prometheus的架构高度模块化,易于扩展,特别适合云原生环境,如Kubernetes集群。

1.2 Grafana简介

Grafana是一个开源的数据可视化工具,广泛用于绘制图表和仪表盘。它可以与多种数据源配合使用,如Prometheus、Graphite等,并提供丰富的图表类型和插件支持。Grafana的用户友好界面使得自定义和共享仪表盘变得轻而易举。

通过将Prometheus的数据采集、存储与Grafana的可视化能力相结合,可以创建一套强大的监控系统,帮助维护和优化大规模的IT环境。
在这里插入图片描述

1.3 Prometheus的核心组件

Prometheus服务器:负责收集和存储时间序列数据。
exporters:用于将不同类型的监控指标转化为Prometheus格式,例如node_exporter用于收集主机级别的指标。
Pushgateway:允许短暂的生命进程将指标推送到Prometheus,适用于批处理作业。
Alertmanager:负责处理Prometheus服务器发出的警报。
各种客户端库:用于与被监控的程序集成,这些库可以帮助自动生成指标。
Prometheus服务器是架构中的关键组件,它通过拉取(Pull)的方式从配置的目标中收集指标数据,并存储在自身的时序数据库中。通过查询接口,用户可以实时获取监控数据,进行问题诊断和趋势分析。

1.4 Prometheus优点

(1)提供多维度数据模型和灵活的查询方式
通过将监控指标关联多个 tag,来将监控数据进行任意维度的组合,并且提供简单的 PromQL 查询方式,还提供 HTTP 查询接口,可以很方便地结合 Grafana 等 GUI 组件展示数据。

(2)基于时序数据库,支持服务器节点的本地存储
通过 Prometheus 自带的时序数据库,可以完成每秒千万级的数据存储;不仅如此,在保存大量历史数据的场景中,Prometheus 可以对接第三方时序数据库和 OpenTSDB 等。

(3)定义了开放指标数据标准
以基于 HTTP 的 Pull 方式采集时序数据,只有实现了Prometheus监控数据才可以被 Prometheus 采集、汇总、并支持 Push 方式向中间网关推送时序列数据,能更加灵活地应对多种监控场景。

(4)支持通过静态文件配置和动态发现机制发现监控对象
自动完成数据采集。Prometheus 目前已经支持 Kubernetes、etcd、Consul 等多种服务发现机制。

(5)易于维护
可以通过二进制文件直接启动,并且提供了容器化部署镜像。

(6)集群支持
支持数据的分区采样和集群部署,支持大规模集群监控。

1.5 Prometheus缺点

Prometheus 是基于 Metric 的监控,不适用于日志(Logs)、事件(Event)、调用链(Tracing)。
由于Prometheus采用的是Pull模型拉取数据,意味着所有被监控的endpoint必须是可达的,需要合理规划网络的安全配置。
指标众多,需进行适当裁剪。
本次部署Prometheus+Grafana需要两台服务器

主节点(10.10.10.65)主要负责部署Prometheus+Grafana,搭建监控server平台,并开启9090、3000端口
从节点(10.10.10.214)主要负责部署Node_exporter,主要在被采集的主机上部署插件服务,并开启9100服务端口,支持部署多台被采集的主机,由主节点统一管理

二、部署Docker

可以参考我之前部署docker教程,非常详细

三、主节点部署Prometheus+Grafana

3.1 部署Prometheus

#拉取镜像
docker pull prom/prometheus
#运行容器
docker run -itd --name=prometheus --restart=always -p 9090:9090 prom/prometheus

3.2 防火墙开放端口

#开放端口策略
firewall-cmd --zone=public --add-port=9090/tcp --permanent
#刷新防火墙配置
firewall-cmd --reload
#查看已开放端口
firewall-cmd --list-ports

在这里插入图片描述

3.3 访问服务

通过浏览器访问http://ip地址:9090
在这里插入图片描述

3.4 安装Grafana

#创建存储卷
docker volume create -d local grafana_storage
#查看存储卷
docker volume ls
#拉取镜像
docker pull grafana/grafana
#运行容器
docker run -itd --name=grafana \
--restart=always \
-p 3000:3000 \
-v grafana_storage:/var/lib/grafana \
grafana/grafana

3.5 防火墙开放端口

#开放端口策略
firewall-cmd --zone=public --add-port=3000/tcp --permanent
#刷新防火墙配置
firewall-cmd --reload
#查看已开放端口
firewall-cmd --list-ports

3.6 访问服务

通过浏览器访问http://ip地址:3000
在这里插入图片描述

3.7自定义账号/密码:admin/admin

在这里插入图片描述

四、从节点部署Node_exporter

4.1 被采集的主机节点上部署Node_exporter

Node_exporter收集机器的系统数据,这里采用prometheus官方提供的exporter,除node_exporter外,官方还提供consul,memcached,haproxy,mysqld等exporter,具体可查看官网。

#创建存储卷
docker volume create -d local node_proc
docker volume create -d local node_sys
#查看存储卷
docker volume ls
#拉取镜像
docker pull prom/node-exporter
#运行容器
docker run -itd --name=node-exporter \
--restart=always \
-p 9100:9100 \
-v node_proc:/host/proc:ro \
-v node_sys:/host/sys:ro \
-v "/:/rootfs:ro" \
prom/node-exporter

在这里插入图片描述

4.2 防火墙开放端口

#开放端口策略
firewall-cmd --zone=public --add-port=9100/tcp --permanent
#刷新防火墙配置
firewall-cmd --reload
#查看已开放端口
firewall-cmd --list-ports

五、主节点配置Prometheus

5.1 在主节点上修改Prometheus主配置文件

#复制文件
docker cp prometheus:/etc/prometheus/prometheus.yml $PWD#修改prometheus.yml文件
vim prometheus.yml#在Prometheus配置文件按以下内容修改:
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']labels:instance: prometheus- job_name: linuxstatic_configs:- targets: ['ip地址:9100']					#被监控端的IP地址和端口号(有多个被监控端可用 逗号 隔开)labels:instance: localhost#复制文件
docker cp $PWD/prometheus.yml prometheus:/etc/prometheus/prometheus.yml
#重启容器服务
docker restart prometheus

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、配置Grafana监控界面

6.1 添加Prometheus数据源

使用浏览器访问http:/ /10.10.10.65:3000监控平台,添加Prometheus数据源
在这里插入图片描述

6.2 选择Prometheus类型

在这里插入图片描述

6.3 输入主节点PrometheusIP地址及端口

在这里插入图片描述
在这里插入图片描述

6.4 点击sava保存

在这里插入图片描述

6.5 新增Dashboard Linux基础数据展示

在这里插入图片描述

6.6 填写模板id

更多grafana模板: https://grafana.com/grafana/dashboards 搜索 相应 dashboards的id如8919,12227
在这里插入图片描述

6.7 选择刚刚创建好的数据源

在这里插入图片描述

6.8 查看Dashboard

成功显示资源使用率可视化图形界面
在这里插入图片描述

总结

可以创建不同类型的数据源,比如MySQL、redis、MongoDB、PostgreSQL等等
在这里插入图片描述
选择不同数据源类型
在这里插入图片描述

可以在官网查看更多可视化模板
官网提供很多模板

相关文章:

  • 机器学习常用评价指标
  • 海外新版本开发高端Apple/科技汽车/共享投资理财平台系统
  • FastAPI系列14:API限流与暴力破解防护
  • 机器人编程基础---C语言中的表达式和求值
  • Docker Compose:服务编排:批量管理多个容器
  • QT中的JSON
  • MIT6.S081-lab8前置
  • 硬件零基础入门(尚硅谷)
  • 3392. 统计符合条件长度为 3 的子数组数目
  • UDP网络编程
  • python使用cv2在图片上话矩形框
  • 数据结构的基本概念以及算法的基本内容
  • [UVM]在SoC中用寄存器模型backdoor访问寄存器的案例
  • MaC QT 槽函数和Lambda表达式
  • 打印Activity的调用者
  • 2444. 统计定界子数组的数目
  • 简介QML中的Canvas
  • 【Mytais系列】SqlSession
  • 传奇各版本迭代时间及内容变化,屠龙/嗜魂法杖/逍遥扇第一次出现的时间和版本
  • JVM——JVM 是如何处理异常的?
  • 出口管制不能将民用技术泛安全化,也不能破坏全球供应链稳定
  • 最火“五一”预订!小长假前两日多地接待游客量两位数增长,出境游订单井喷
  • 缔造“水饺皇后”的香港,也是被移民塑造的香港
  • 全球最大汽车板供应商宝钢股份:汽车工业加速转型中材料商如何共舞?
  • 国铁集团:5月1日全国铁路预计发送旅客2250万人次
  • 市场监管总局出手整治涉企乱收费,聚焦政府部门及下属单位等领域