1、特征

普罗米修斯的主要特点是:

  • 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据

  • PromQL,一种灵活的查询语言 ,可利用此维度

  • 不依赖分布式存储;单服务器节点是自治的

  • 时间序列收集通过HTTP上的拉模型进行

  • 通过中间网关支持推送时间序列

  • 通过服务发现或静态配置发现目标

  • 多种图形和仪表板支持模式

2、组件

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

  • Prometheus服务器,它会刮取并存储时间序列数据

  • 客户端库,用于检测应用程序代码

  • 一个支持短期工作的推送网关

  • 诸如HAProxy,StatsD,Graphite等服务的专用出口商

  • 一个alertmanager处理警报

  • 各种支持工具

大多数Prometheus组件都是用Go编写的,因此易于构建和部署为静态二进制文件。

3、架构

下图说明了Prometheus的体系结构及其某些生态系统组件:

Prometheus监控k8s集群_第1张图片

        Prometheus直接或通过中介推送网关从已检测作业中删除指标,以用于短期作业。它在本地存储所有报废的样本,并对这些数据运行规则,以汇总和记录现有数据中的新时间序列,或生成警报。Grafana或其他API使用者可以用来可视化收集的数据。

4、安装

前提需要有helm环境:

image-20191226101438796.png

helm  install  prometheus   stable/prometheus

Prometheus监控k8s集群_第2张图片

安装成功,查看pod状态会发现有两个处于pending状态,是因为需要请求pv

image-20191226102456756.png

这里使用hostPath来创建pv

apiVersion: v1
kind: PersistentVolume
metadata:
  name: prometheus-pv1
spec:
  capacity:
    storage: 2Gi
  volumeMode: Filesystem
  accessModes:
  -  ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: /app/prometheus/pv1

image-20191226104015715.png

查看pod状态会发现有个pod会报错,并查看日志是报错是容器名不同

image-20191226110521033.png

真正的原因是因为使用的hoatPath,pvc请求的权限不够,到worker节点给对应的hostpath加777的权限即可,这是我通过rancher查看到的报错

msg="Error opening query log file" file=/data/queries.active err="open /data/queries.active: permission denied"

5、访问web界面

Prometheus监控k8s集群_第3张图片

这里还需要修改Prometheus-server的Port类型为NodePort。

Prometheus监控k8s集群_第4张图片

6、安装grafana

helm  pull  stable/grafana

tar xvf grafana-4.2.2.tgz

vim grafana/values.yaml    #设置admin的密码为admin123

Prometheus监控k8s集群_第5张图片

helm  install grafana  ./grafana

Prometheus监控k8s集群_第6张图片

由于grafana没有使用持久存储,根据需求修改为hostpath持久存储,需要注意的是,宿主机目录也需要777的权限

Prometheus监控k8s集群_第7张图片

还需要需改grafana的svc类型为NodePort

Prometheus监控k8s集群_第8张图片

访问web界面,用户admin,密码:admin123

Prometheus监控k8s集群_第9张图片

7、导入Prometheus

Prometheus监控k8s集群_第10张图片

Prometheus监控k8s集群_第11张图片

填入Prometheus的地址

Prometheus监控k8s集群_第12张图片

则表示验证通过

Prometheus监控k8s集群_第13张图片

导入grafana的模板

Prometheus监控k8s集群_第14张图片

Prometheus监控k8s集群_第15张图片

Prometheus监控k8s集群_第16张图片

这里选择Prometheus

Prometheus监控k8s集群_第17张图片

即可看到灰常华丽的仪表盘了

Prometheus监控k8s集群_第18张图片

这里提供几个模板的编号:

10000,315,7249,5228,8685,8588

完美结束!