Prometheus是一个开源的系统监控和报警工具包,普罗米修斯在2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个项目。
普罗米修斯的主要特征是:
多维数据模型,时间序列数据由度量名称和键/值对标识
PromQL是一种灵活的查询语言,可以利用这种维度
不依赖分布式存储;单个服务器节点是自治的
时间序列收集通过HTTP上的拉模型进行
通过中间网关支持时间序列的推送
通过服务发现或静态配置发现目标
Prometheus生态系统包含多个组件,其中许多是可选的:
Prometheus主服务器,它会刮取并存储时间序列数据
客户端库,用于检测应用程序代码
一个支持短期工作的推送网关
诸如HAProxy,StatsD,Graphite等服务的专用出口商
一个alertmanager处理警报
各种支持工具
大多数Prometheus组件都是用Go编写的,因此易于构建和部署为静态二进制文件。
下图说明了Prometheus的体系结构及其某些生态系统组件:
Grafana或其他API使用者可以用来可视化收集的数据。
前提需要有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"
这里还需要修改Prometheus-server的Port类型为NodePort。
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
填入Prometheus的地址
则表示验证通过
导入grafana的模板
这里选择Prometheus
即可看到灰常华丽的仪表盘了
这里提供几个模板的编号:
10000,315,7249,5228,8685,8588
完美结束!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。