共计 1869 个字符,预计需要花费 5 分钟才能阅读完成。
一、Prometheus 概述
1.prometheus 概念:开源的系统监控和告警系统,在 k8s 分布式的容器化管理系统当中,一般都是搭配 promethuse 来进行监控;是一个服务监控系统,同时也可以监控主机,自带数据库,名字叫时序数据库,数据库提供了 promql 语句用来采集和统计指标项、以及存储和查询接口。
2.prometheus 组件:
nodeexporter(数据采集):在 k8s 集群当中部署在 node 节点上,用来收集节点上的数据(数据包括 CPU、硬盘及 pod 的使用情况,需要部署在每个节点上),再通过 pushgateway 把数据上传到 prometheus 的时序数据库,然后根据 promql 语句来进行分类展示。
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa563038.png)
3.promethues 特点:
- 多维的数据模型,按照时间的顺序记录系统,以及设备状态的变化,容器化的数据,为每个数据指定一个样本。比如服务器指标数据、应用程序的性能监控、网络数据都是一个时间序列数据
- 内置时间序列数据库 —-TSDB
- promql 查询语句
- 根据 http 协议拉取数据
- 自带服务自动发现功能
- Prometheus 自带的原生数据展示不是很优化,有专门为他数据展示的工具,Grafana 插件
4、prometheus 的存储引擎:TSDB
- 能够存储的数据量很庞大
- 大部分都是写入操作
- 写入操作时一个时序性添加,大多数情况下都是按照时间排列
- 很少更新数据,采集到的数据在秒级或者分钟级就会被写入数据库
- 基本数据大,一般超过了内存大小。数据按照一定的时间区间展示,缓存在这里不起作用
- 读操作,一般都是高并发的操作。
- 就是为了大数据、高并发而生的
5、Altermanager:
独立的告警模块,从 Prometheus server 收到告警通知之后,Altermanager 进行重组、分类、发送到对应的接收方,电子邮件、钉钉、企业微信
6.prometheus 和 zabbix 区别:
二者之间功能的比较:
指标收集方式:
zabbix:基于 server 和 agent,agent 部署在客户端,然后把数据传送到服务器,基于 tcp 协议 ip+ 端口进行通信。四层。
Prometheus:基于客户端进行数据收集,服务端会定时与客户端交互,通过 pull 拉取方式获取监控指标,基于 http 协议通信,七层。
数据存储:
zabbix:使用外部的数据库来保存数据(mysql、oracle、postgreSQL 等关系型数据库)
Prometheus:存储在内置的 TSDB(时间序列数据库),只支持存储时间序列的值
查询性能:
zabbix:查询性能较弱,只能在 web 界面做一些有限的操作
Prometheus:查询功能强大,自带查询语句。查询结果都是以图形或者表格数据展示的
监控内容:
zabbix 主要为了监控服务器的状态,cpu— 内存 — 硬盘 —- 网络流量 — 自定义监控项(非虚拟化部署的程序),zabbix 的时间更长,更加成熟,使用监控方面要求不高,只需要对服务设备监控的场景。可以监控容器,但是容器的兼容性差,反应会特变慢。
prometheus:专门为 K8s 定制的监控软件,对于容器产品兼容度更好,定制化程序更高,更适合微服务场景。
告警功能:
二者都是内置告警功能,但是 peometheus 不能打电话。
7. 总的来说,zabbix 更成熟,上手难度低,对于传统的服务器,系统和网络都有优秀的监控能力。但是他不适配云原生,不适配容器监控,而 Prometheus 就是容器化监控,支持 K8S 的监控功能。但是难,promQL 不好学。
二、二进制部署
1.K8s 集群三台主机全都拉取 node-exporter 软件包,主节点再拉 prometheus-2.45.0 和 grafana-enterprise-7.5.11-1
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa5e34ea.png)
解压 prometheus 及改名
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa619da3.png)
将 prometheus 添加到系统管理服务当中后进行重启,并且查看 prometheus9090 端口是否起来
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa660cdf.png)
修改 prometheus 的配置文件 vim prometheus.yml,添加各个节点 IP 地址以及采取数据的默认路径
安装 node-export 数据采集器,三台主机同步解压、改名,并且把 node_exporter 添加到系统识别项 /usr/local/bin
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa7d0ebc.png)
添加到系统服务当中,启动 nodeexporter 并且查看端口,三台主机同步
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa814a83.png)
完了主节点重启 prometheus
主节点安装 grafana 并且重启检查端口
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa8cb0b7.png)
访问 prometheus
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8fa92ed1d.png)
访问 grafana
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8faa09caa.png)
grafana 的模板地址:Grafana dashboards | Grafana Labs
![prometheus 概念 prometheus 概念](https://yojack.cn/wp-content/uploads/2024/09/prometheuse6a682e5bfb5_66eb8faac8c84.png)
文章来源: prometheus 概念