Prometheus 生态系统由多个组件组成,其中许多是可选的:

  • 抓取和存储时间序列数据的主要Prometheus 服务器
  • 用于检测应用程序代码的客户端库
  • 支持短期工作的推送网关
  • HAProxy、StatsD、Graphite 等服务的专用出口商
  • 一个警报管理器来处理警报
  • 各种支持工具

Promethues原理:

prometheus根据配置定时去拉取各个节点的数据,默认使用的拉取方式是pull,也可以使用pushgateway提供的push方式获取各个监控节点的数据。将获取到的数据存入TSDB,一款时序型数据库。此时prometheus已经获取到了监控数据,可以使用内置的PromQL进行查询。它的报警功能使用Alertmanager提供,Alertmanager是prometheus的告警管理和发送报警的一个组件。prometheus原生的图标功能过于简单,可将prometheus数据接入grafana,由grafana进行统一管理。如下图:

docker部署prometheus监控redis docker prometheus_数据


部署:docker安装:略过

docker版本:

docker部署prometheus监控redis docker prometheus_linux_02


docker镜像加速:

{
  "registry-mirrors": [
    "https://reg-mirror.qiniu.com"
  ]
}

安装完docker,配置好镜像加速之后,开始拉取所需镜像:

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

docker部署prometheus监控redis docker prometheus_数据_03


启动node-exporter

docker  run  -itd -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro"  -v "/:/rootfs:ro" --net="host"  prom/node-exporter

注意查看端口,或者docker ps 看看容器是否启动。
测试访问:

http://192.168.20.10:9100/metrics

如下图有数据显示表示成功:

docker部署prometheus监控redis docker prometheus_linux_04


启动prometheus

新建目录prometheus,编辑配置文件prometheus.yml

mkdir /opt/prometheus
cd /opt/prometheus/

vim prometheus.yml

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.20.100:9100']
        labels:
          instance: localhost

启动:

docker run  -d   -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

同样的方法测试是否正常:

浏览器访问http://192.168.20.10:9090/graph

docker部署prometheus监控redis docker prometheus_数据_05


访问targets:

docker部署prometheus监控redis docker prometheus_数据_06


接下来要启动grafana:

创建用来存储数据的目录:grafana-storage,并给权限:

mkdir /opt/grafana-storage
chmod 777 -R /opt/grafana-storage

启动grafana:

docker run -d -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

同上,docker ps可查看容器启动情况,注意查看端口是否启动,这里做url访问测试:

http://192.168.20.10:3000/

docker部署prometheus监控redis docker prometheus_linux_07


用户名密码均是admin,登录登录之后还会再次确认密码

docker部署prometheus监控redis docker prometheus_数据_08


登录后:

docker部署prometheus监控redis docker prometheus_用户名_09


docker部署prometheus监控redis docker prometheus_docker_10

搭建完成,里面监控模板自定义。
参考promethues官方文档:
https://prometheus.io/docs/introduction/overview/