使用 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

相关文章
|
1天前
|
Prometheus 监控 Cloud Native
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
15 6
|
21天前
|
Prometheus 监控 Cloud Native
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
|
22天前
|
Prometheus 监控 Cloud Native
Prometheus监控平台配置--监控集群资源信息
在scrape_configs 配置项下添加Linux 监控的job,其中 IP 修改为上面部署node_exporter机器的ip,端口号为9100,需要注意缩进。
177 6
|
29天前
|
Prometheus 监控 Cloud Native
应用监控(Prometheus + Grafana)
应用监控(Prometheus + Grafana)
193 2
|
29天前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana+NodeExporter 打造一款出色的监控系统,帅呆了!
Prometheus+Grafana+NodeExporter 打造一款出色的监控系统,帅呆了!
96 2
|
29天前
|
存储 Prometheus Cloud Native
Grafana 系列 - 统一展示 -2-Prometheus 数据源
Grafana 系列 - 统一展示 -2-Prometheus 数据源
|
29天前
|
编解码 Prometheus 运维
Prometheus 的监控方法论
【1月更文挑战第24天】
|
29天前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
29天前
|
Prometheus 监控 Kubernetes
如何用 Prometheus Operator 监控 K8s 集群外服务?
如何用 Prometheus Operator 监控 K8s 集群外服务?
|
29天前
|
Prometheus 监控 Kubernetes
Prometheus Operator 与 kube-prometheus 之二 - 如何监控 1.23+ kubeadm 集群
Prometheus Operator 与 kube-prometheus 之二 - 如何监控 1.23+ kubeadm 集群