使用 Docker 部署 Prometheus + Grafana 监控平台

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Prometheus(普罗米修斯R)是一套开源的监控&报警&时间序列数据库的组合,由SoundCloud公司开发。

Prometheus + Grafana监控平台



—、Prometheus简介


1.Prometheus特点

2.Prometheus架构


二、部署Prometheus + Grafana监控平台


1.安装Docker

2安装 Prometheus

3.安装 Grafana

4.安装 Node_exporter

5.配置Prometheus 监控Node节点

1)修改Prometheus主配置文件

2)重启Prometheus容器

6.配置Prometheus + Grafana


一、Prometheus简介



Prometheus(普罗米修斯R)是一套开源的监控&报警&时间序列数据库的组合,由SoundCloud公司开发。


Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker。


Prometheus应该是为数不多的适合Docker、Mesos、Kubernetes环境的监控系统之一。


1.Prometheus特点


  • 多维数据模型(有metric名称和键值对确定的时间序列)
  • 灵活的查询语言
  • 不依赖分布式存储。
  • 通过pull方式采集时间序列,通过http 协议传输。
  • 支持通过中介网关的 push时间序列的方式。
  • 监控数据通过服务或者静态配置来发现。
  • 支持图表和dashboard等多种方式。


2.Prometheus 架构


image.png


  • Prometheus主程序:主要是负责存储、抓取、聚合、查询方面。
  • Alertemanager程序:主要是负责实现报警功能。
  • Pushgateway程序:主要是实现接收有Client-push过来的指标数据,在指定的时间间隔,有主程序来抓取。
  • *_exporter程序:主要是负责采集物理机、中间件的信息。


二、部署Prometheus + Grafana监控平台



准备工作:


image.png


1.安装Docker


1)安装需要的软件包


[root@Docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2


2)设置Docker的yum源


[root@Docker ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@Docker ~]# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo


image.png


3)安装 Docker


  • 可使用yum list docker-ce --showduplicates | sort -r命令来查看Docker的所有版本。


[root@Docker ~]# yum -y install docker-ce-17.12.1.ce        #安装Docker


4)启动Docker并设置开启自启


[root@Docker ~]# systemctl start docker
[root@Docker ~]# systemctl enable docker


5)验证Docker是否安装成功


[root@Docker ~]# docker version                   #查看Docker版本


image.png


6)配置Docker加速器


[root@Docker ~]# cat <<END > /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://1nj0zren.mirror.aliyuncs.com",
        "https://docker.mirrors.ustc.edu.cn",
        "http://f1361db2.m.daocloud.io",
        "https://registry.docker-cn.com"
    ]
}
END
[root@Docker ~]# systemctl daemon-reload              #重新加载systemd配置
[root@Docker ~]# systemctl restart docker               #重启Docker


image.png


2.安装Prometheus


[root@Docker ~]# docker pull prom/prometheus
[root@Docker ~]# docker run -itd --name=prometheus --restart=always -p 9090:9090 prom/prometheus


image.png


容器创建成功后,即可通过浏览器访问http: / /192.168.1.1:909o来进行验证


image.png


3.安装Grafana


  • Grafana是一个跨平台开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。


[root@Docker ~]# docker pull grafana/grafana
[root@Docker ~]# docker run -itd --name=grafana \
--restart=always \
-p 3000:3000 \
-v $PWD/grafana-storage:/var/lib/grafana \
grafana/grafana


image.png



容器创建成功后,即可通过浏览器访问http:/ /192.168.1.1:3000来进行验证


image.png


image.png


4.安装Node_exporter


  • 因为Prometheus 本身不具备监控功能,所以想要通过Prometheus 收集数据的话,需要安装对应的exporter。


[root@Docker ~]# docker pull prom/node-exporter
[root@Docker ~]# docker run -itd --name=node-exporter \
--restart=always \
-p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
prom/node-exporter


image.png


容器创建成功后,即可通过浏览器访问http://192.168.1.1:9100/metrics来查看监控收集的数据


image.png


5.配置 Prometheus 监控Node节点


1)修改Prometheus主配置文件


[root@Docker ~]# docker cp prometheus:/etc/prometheus/prometheus.yml $PWD
[root@Docker ~]# 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: linux
    static_configs:
    - targets: ['192.168.1.1:9100']         #被监控端的IP地址和端口号(有多个被监控端可用 逗号 隔开)
      labels:
        instance: localhost
[root@Docker ~]# docker cp $PWD/prometheus.yml prometheus:/etc/prometheus/prometheus.yml


2)重启Prometheus容器


[root@Docker ~]# docker restart prometheus


6.配置prometheus+Grafana


使用浏览器访问http:/ /192.168.1.1:3000来将Node节点监控


image.png


image.png


image.png


image.png



image.png


image.png


image.png


image.png

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
6天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
54 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
17天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
56 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
7天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
7天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
17 1
|
17天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
51 2
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
46 2
|
7天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
27 0
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
22 2
|
监控 Cloud Native 数据库
|
3天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!