Prometheus的安装配置
更新:HHH   时间:2023-1-7


1、简介

Prometheus是一个开源的系统监控和报警工具包,普罗米修斯在2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个项目。

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

多维数据模型,时间序列数据由度量名称和键/值对标识

PromQL是一种灵活的查询语言,可以利用这种维度

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

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

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

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

2、组件

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

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

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

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

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

  • 一个alertmanager处理警报

  • 各种支持工具

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

3、架构

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

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

4、安装

前提需要有helm环境:

helm  install  prometheus   stable/prometheus

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

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


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

真正的原因是因为使用的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-server的Port类型为NodePort。

6、安装grafana

helm  pull  stable/grafana

tar xvf grafana-4.2.2.tgz

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

helm  install grafana  ./grafana

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

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

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

7、导入Prometheus

填入Prometheus的地址

则表示验证通过

导入grafana的模板

这里选择Prometheus

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

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

10000,315,7249,5228,8685,8588

完美结束!

返回云计算教程...