珠海网站建设外包,临沂公司做网站,苏州加基森网站建设,宁波专业网站营销#xff08;一#xff09;Prometheus的相关概念
1、Prometheus#xff1a;是一个开源的系统监控以及报警系统#xff0c;整合zabbix的功能、系统、网络、设备
2、Prometheus可以兼容网络、设备#xff0c;进行容器监控、告警系统
3、因为Prometheus和k8s是一个项目基金…一Prometheus的相关概念
1、Prometheus是一个开源的系统监控以及报警系统整合zabbix的功能、系统、网络、设备
2、Prometheus可以兼容网络、设备进行容器监控、告警系统
3、因为Prometheus和k8s是一个项目基金开发的产品天生匹配k8s的原生系统容器化和云原生服务适配性很高
4、Prometheus是一个服务监控系统和时序数据库提供了通用的数据模型和快捷数据采集存储和接口查询
1核心组件Prometheus server定期从静态配置的监控目标或者基于服务发现的自动配置目标中进行拉取数据拉取到数据会持久化的保存到存储设备之中
①先拉取数据纳入到监控系统当中才能进行时序数据采集、存储、告警和展示
②能够直接把apiserver作为服务发现系统使用实现动态监控、动态发现
5、Prometheus的特点
1多维的数据模型根据不同的函数计算方法对同一数据可以作为不同的结论
①promQL是难点
2时间序列的数据按照时间的顺序记录系统设备变化的数据、容器化的数据每个数据都是一个样本
①服务器指标数据、应用程序的性能监控、网络数据都是时间序列数据
3通过静态也可以通过服务自动发现收集数据
4Prometheus自带的原生数据展示不是很友好专门的数据化展示工具grafana
6、Prometheus的存储引擎TSDB
1能够存储的数据量很庞大
2大部分都是写入操作
3写入操作是一个时序添加大多数情况下都是按照时间排列
4很少更新数据采集到的数据在秒级或者是分钟级后就会被写入数据库
5基本数据大一般超过了内存的大小数据按照一定的时间区间展示缓存在这里不起作用
①Prometheus展示实时数据对持久化要求不是很高
6读操作一般都是高并发的操作
7就是为了大数据高并发而生的
7、Prometheus的组件 * 服务核心组件采用pull方式采集监控数据通过http协议进行传输存储时间序列的数据基于告警规则生成告警通知 Prometheus server 核心组件核心分为三个部分 retrieval 负责在目标主机抓取监控指标数据 storage 存储把采集的数据保存在磁盘当中默认只保存15天 promQL 负责把数据按照一定的规则通过指定的语法形成结果最后展示出来grafana exports 负责在节点收集数据 node-exports负责收集服务器节点的状态数据、CPU、内存、网络、磁盘等等都是其收集 默认端口9100 client-library 客户端库用于应用程序的内部测量系统内部测试 cadvisor 监控容器内部的资源信息但是k8s从1.20之后自带这个组件 blackbox-exporter 监控业务容器的存活性一般不用 altermanager 独立的告警模块从Prometheus server收到告警通知之后从altermanager进行重组、分类发送到对应的接受方 电子邮件、钉钉、企业微信 pushgateway 类似于一个中转站server端只会使用pull的方式拉取数据节点的数据只能以push的方式上传先把数据源保存在pushgatewayPrometheus server统一从pushgateway拉取数据 grafana 图形化工具
8、Prometheus的工作流程
1Prometheus server为核心收集和存储数据时间序列数据从监控目标中通过pull方式拉取数据或者通过pushgateway把采集到的数据拉取到server当中
2拉取到的数据保存到本地的磁盘当中监控指标数据
3如果监控的指标数据触发了告警发送到altermanager模块然后根据规则发送告警信息
4通过Prometheus的自带UI的web页面通过promQL可以查询出监控的数据
5grafana可以介入Prometheus数据源把监控数据以图形化的方式展示出来
9、Prometheus的局限
1只是一款指标监控系统不适合存储时间、也不适合保存日志更多的是一种趋势性的监控和展示并非是一个精准的数据
2认为只有最近的数据才有查询的需要保存在本地的数据默认只有15天不支持大量的历史数据进行存储也不支持查询过往的历史数据。基于远端存储上传到influxDB或者openTSDB系统
3集群化程度不高一般都是单节点部署
10、Prometheus和zabbix的对比重 zabbix Prometheus 特性 ①优点大而全的系统而且功能非常完善机制非常成熟具有完善的web页面可视化和告警在界面可以满足绝大部分的操作上手难度很低可以快速掌握 ②缺点高度集成导致其定制比较难扩展也比较差 ①优点近几年比较火的监控系统基于go语言开发的只是专注于监控的功能提供一个简单的UI界面供用户查询可视化——grafana——altermanager第三方程序实现比较小巧灵活 ②缺点自带promQL语言门槛高学习难度大上手难 功能 指标收集方式 ①zabbix指标收集方式server、agent ②agent部署在目标服务器数据传送到server基于tcp协议进行通信 ③agent把数据推送到server或者server主动发起请求获取agent的数据 ①基于客户端进行数据收集server端定时与客户端交互通过pull的方式获取监控数据 查询性能 ①查询的性能较弱只能在web界面进行一些有限的操作 ②查询功能强大自带查询语句查询结果都是以图形、表格数据展示 zabbix更成熟上手难度低对于传统的服务器、系统和网络都有优秀的监控能力不适配云原生、不适配容器监控 Prometheus就是容器化监控支持k8s的监控功能查询语句难、不好学
二Prometheus基于二进制部署
1、部署压缩包 ①配置文件的格式cat prometheus.yml | grep -v ^# 2、添加到系统服务vim /usr/lib/systemd/system/prometheus.service
systemctl daemon-reload
systemctl restart prometheus.service
systemctl enable prometheus.service 3、访问20.0.0.71:9090 4、配置时间同步 5、加入node节点配置所有节点
tar -xf node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64 node_exporter
mv node_exporter /usr/local/bin/ ①添加至系统服务vim /usr/lib/systemd/system/node_exporter.service ②查看端口netstat -antp | grep 9100 ③静态方式添加指定节点 6、配置grafana配置在一个节点即可
rpm -ivh grafana-enterprise-7.5.11-1.x86_64.rpm
systemctl start grafana-server.service
systemctl enable grafana-server.service
netstat -antp | grep 3000 ①访问http://20.0.0.71:3000/ 7、网页配置 1下载模版https://grafana.com/grafana/dashboards
2删除模版 8、总结
1Prometheus就是一个监控时序数列的图形化监控的工具不在意数据的持久化只关注最近的需要查询的数据
2更适配k8s集群也可以对服务器进行一般监控内存、CPU、硬盘、读写、网络等
3数据要复现每天都会出现某种特定情况例如占了大量CPU等等这种情况需要关注但是不是复现情况可以不管比如某时刻突然增高但可以下降如无特殊需求也可以不管但必须记录在案