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

本文涉及的产品
可观测可视化 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

相关文章
|
5天前
|
关系型数据库 MySQL Shell
4.Docker 应用部署
4.Docker 应用部署
|
15小时前
|
存储 Cloud Native 文件存储
云原生之使用Docker部署Nas-Cab个人NAS平台
【5月更文挑战第2天】云原生之使用Docker部署Nas-Cab个人NAS平台
14 1
|
23小时前
|
安全 Java Docker
|
1天前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署RSS阅读器Huntly
【5月更文挑战第1天】云原生之使用Docker部署RSS阅读器Huntly
21 4
|
5天前
|
负载均衡 Cloud Native Linux
Docker部署Traefik结合内网穿透远程访问Dashboard界面
Docker部署Traefik结合内网穿透远程访问Dashboard界面
|
5天前
|
存储 Linux 文件存储
Linux使用Docker部署Traefik容器并实现远程访问管理界面-1
Linux使用Docker部署Traefik容器并实现远程访问管理界面
|
5天前
|
存储 Shell Docker
docker 部署单节点的etcd以及 常用使用命令
在 Docker 中部署单节点的 etcd 以及一些常用命令的操作,可以按照以下步骤进行: ## 一、部署单节点 etcd 1. **拉取 etcd Docker 镜像**:您可以从 Docker Hub 拉取 etcd 的官方镜像。 ```shell docker pull quay.io/coreos/etcd:latest ``` 2. **启动 etcd 容器**:使用 `docker run` 命令来启动 etcd 容器。以下是一个示例命令,其中将容器的 2379 端口映射到主机的 2379 端口: ```shell docker run -d \
|
5天前
|
弹性计算 Shell 数据安全/隐私保护
自动化构建和部署Docker容器
【4月更文挑战第30天】
9 0
|
7天前
|
运维 Prometheus 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第29天】在微服务架构日益普及的当下,Docker作为轻量级容器的代表,被广泛应用于服务部署与管理。然而,随之而来的是复杂化的服务监控问题。本文旨在探讨如何构建一个高效且稳定的Docker容器监控体系,确保服务的高可用性。我们将从监控工具的选择、关键监控指标的确定,以及告警机制的设计等方面进行详细阐述,并提供一系列优化实践,以期为运维人员提供参考和指导。
|
7天前
|
关系型数据库 分布式数据库 PolarDB
PolarDB产品使用合集之关于在Docker环境中部署和维护PolarDB-X,有相关文章可以参考吗
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。