一、 prometheus
prometheus本身为一种时序数据库(TSDB),还具备开源的监控、报警、时间序列、数据库的组合。其设计用于进行目标(target)监控的关键组件
- TSDB:prometheus通过采集的样本以时间序列的方式保存在内存(TSDB时序数据库)中并定时保存到硬盘中(持久化)
- target:主要指可输出、产生指标数据的组件/对象,包括但不限于主机、应用、服务、K8S ingress(逻辑组件)等(小结:能正常输出指标数据的对象称为target或网络端点)
- 时序数据:一段时间内通过《重复》测量而获得的观测值的集合,并且可将这些观测值绘制与图形之上,以数据轴(纵轴)和时间轴(横轴)来表示随着时间流逝而产生的“渐变”变化(类似于股票)
二、特性
① 多维的数据模型(基于时间序列的Key、value键值对) ② 灵活的查询个聚合语言PromQL ③ 提供本地存储和分布式存储 ④ 通过基于HTTP和HTTPS的Pull模型采集时间序列数据(pull数据的拉取,时间序列:每段时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图) ⑤ 可利用Pushgateway(prometheus的可选中间件)实现push模式 ⑥ 可通过动态服务发现或静态配置发现目标机器(通过consul自动发现和收缩) ⑦ 支持多种图表和数据大盘
三、场景
1、可用使用的场景
- prometheus可以很好的记录任何纯数字时间序列。它既适用于以机器为中心的监视,也适用于高度动态的面向服务的体系结构的监视。在微服务世界中,它对多维数据收集和查询的支持是一种特别的优势
- prometheus是为可靠性而设计的,它是您在中断期间使用的系统,可让您快速诊断问题。每个prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。当基础结构的其他部分损坏时,您可以依靠它, 并且无需设置广泛的基础结构即可使用它
2、不可使用的场景
- 普罗米修斯重视可靠性。即使在故障情况,可以查看有关系统的可用统计信息。如果需要100%的准确性(例如按请求计费),则prometheus并不是一个不错的选择,因为所收集的数据可能不会足够详细和完整。在这种情况下,最好使用其他系统来收集和分析数据以进行计费,并使用prometheus进行其余的监视
- 数据准确性要求极高的场景,不适合使用prometheus
四、Prometheus 安装部署
1、安装prometheus
2、宿主机查看
3、监控本机数据展示
通过http://192.168.159.150:9090/metrics可以查看到监控的数据 在web主界面可以通过关键字查看监控项
五、监控远程linux主机
1、监控端上安装node_exporter组件
2、查看浏览器监控的信息
3、回到prometheus服务器的配置文件添加被监控机器的配置段
4、回到web管理界面,可以看到多了两台监控主机
六、监控远程mysql
1、监控端上安装mysql_exporter组件
2、prometheus配置文件添加监控mariadb的配置段
3、查看监控mysql服务器
4、主界面搜索mysql相关参数
七、Grafana可视化图形工具
1、安装grafana服务器
2、登录grafana web界面
通过浏览器访问 http://grafana服务器ip:3000 进入之后就可以查看grafana主界面
3、在grafana上添加prometheus数据源
|