Prometheus概述及部署集成服务

1.普罗米修斯概述

Prometheus是一套开源的监控&报警&时间序列数据库的组合。适合监控Docker容器。因为Kubernetes的流行带动了Prometheus的发展
官网:https://prometheus.io/

2.时间序列数据

1.什么是序列数据

时间序列数据(TimeSeries Data):按照时间顺序记录系统、设备状态变化的数据被称为时序数据。
应用的场景很多:如

  • 无人驾驶车辆运行中要记录的经度、纬度、速度、方向、旁边的距离等。
  • 某一地区的各车辆的行驶轨迹数据
  • 传统证券行业实时交易数据
  • 实时运维监控数据等

2.时间序列数据特点

  • 性能好
    关系型数据库对于大规模数据的处理性能糟糕。NoSQL可以比较好的处理大规模数据,但依然比不上时间序列数据库。
  • 存储成本低
    高效的压缩算法,节省存储空间,有效降低IO

3.Prometheus的主要特征

  • 多维度数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以HTTP方式,通过Pull模型拉取时间序列数据
  • 也可以通过中间网关支持Push模型
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图标和界面展示

4.Prometheus原理架构图

服务部署步骤 (基于docker环境,部署监控本机容器及跨本机监控容器资源)

需要两台虚拟机

第一台

root@ubuntu20:~# docker pull google/cadvisor

运行容器

root@ubuntu20:~# docker run \

> --volume=/var/run:/var/run:ro \

> --volume=/sys:/sys:ro \

> --volume=/var/lib/docker/:/var/lib/docker:ro \

> --volume=/dev/disk/:/dev/disk:ro \

> --publish=8080:8080 \

> --detach=true \

> --name=cadvisor \

> --privileged \

> --device=/dev/kmsg \

> google/cadvisor

 查看端口状态

 浏览器访问

 来到第二台

root@ubuntu20:~# docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys/:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor --privileged --device=/dev/kmsg google/cadvisor

下载镜像

两台主机都要进行的操作

root@ubuntu20:~# docker pull prom/node-exporter

第一台:

下载镜像

root@ubuntu20:~# docker pull prom/Prometheus

root@ubuntu20:~# docker pull grafana/grafana

 root@ubuntu20:~# docker run -d -p 9100:9100 --volume /proc/:/host/proc --volume /sys:/host/sys --volume /:/roofs --name node-exporter prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($$|/)"

查看端口状态 

 第二台:

同样执行

docker run -d -p 9100:9100 --volume /proc/:/host/proc --volume /sys:/host/sys --volume /:/roofs --name node-exporter prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($$|/)"

 

 查看端口

 第一台

root@ubuntu20:~# vim prometheus.yml

添加:

global:

  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with  # external systems (federation, remote storage, Alertmanager).

  external_labels:

    monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:

# Here it's Prometheus itself.

scrape_configs:

  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.

  - job_name: 'prometheus'

    static_configs:

            - targets: ['192.168.0.143:9090','192.168.0.143:9100','192.168.0.143:8080','192.168.0.141:8080','192.168.0.141:9100']

运行

root@ubuntu20:~# docker run -d -p 9090:9090 --volume /root/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/Prometheus

 查看端口

浏览器访问

http://192.168.0.143:9090/

 

 

 构建成功

接下来我们继续部署图形化页面 (在第一台服务器上部署)

root@ubuntu20:~# docker run -d -p 3000:3000 -e "GF_SECURITY_ADMIN_PASSWORD=123456" grafana/grafana

 查看一下端口状态

 

默认的账号:admin   

密码为:123456

 

点击第一个prometheus进去配置

 

 

最底部保存

 然后进入到grafana官网 去下载监控表盘json文件

​​​​​​Dashboards | Grafana Labs

 

搜索dashboards

 

 

 

下载json文件到本地

回到prometheus 上方搜索import,配置加入json文件

 

 

 

ok 

猜你喜欢

转载自blog.csdn.net/weixin_53053517/article/details/132407447