本篇文章主要是对prometheus的一些原理进行解析。
本篇文章主要是对prometheus的一些原理进行解析。
Prometheus,它最早是借鉴了 Google 的 Borgmon 系统,完全是开源的,也是CNCF 下继 K8S 之后第二个项目。它们的开发人员都是原 Google 的 SRE,通过 HTTP 的方式来做数据收集,对其最深远的应该是其被设计成一个 self sustained 的系统,也就是说它是完全独立的系统,不需要外部依赖。
一个完整的监控体系包括:采集数据、分析存储数据、展示数据、告警以及自动化处理、监控工具自身的安全机制,我们来看看如何使用prometheus进行基础设施监控架构。
一个完整的监控体系包括:采集数据、分析存储数据、展示数据、告警以及自动化处理、监控工具自身的安全机制。我们来看看使用prometheus进行kubernetes的容器监控。
grok_exporter是基于logstash的grok的插件开发的日志分析工具,可以分析非结构化日志根据正则表达式进行匹配,然后生成适合prometheus的规则规范的metrics。
mtail是一个可以从应用程序日志中提取指标,并将其导出到时间序列数据库或时间序列计算器中,以便配置警报和仪表盘的工具。
提取由定义了模式和动作的mtail程序来控制。
blackbox主要是用这个探针去探测其他机器的网络情况,比如可以使用icmp协议来完成ping其他机器监控的任务,可以使用http协议来完成url探测的功能。
VictoriaMetrics是一个高性能的,长期存储的prometheus的远程解决方案,实现集群使用的federation的方式,只不过性能很优秀,包括write和query,聚合数据也解决了查询问题。
crotex是一个为了支持prometheus扩展的服务,支持水平扩展,高可用,多租户,长期存储。主要开发者也是promehteus的开发者
随着区块链、人工智能的盛行,越来越多的场景开始使用GPU,而其监控也随之受到重视。目前生产环境中大部分GPU为NVIDIA厂商,今天就聊聊NVIDIA如何进行GPU的监控。
Process-exporter 主要是对进程进行监控。
Uber开发了指标平台M3和分布式时间序列数据库M3DB。来解决Uber在发展过程当中遇到的问题:使用开源软件后,因为可靠性,成本等问题,在操做密集型方面没法大规模使用这些开源软件。因此Uber逐步构建了本身的指标平台。咱们利用经验来帮助咱们构建本地分布式时间序列数据库,高度动态和高性能的聚合服务,查询引擎以及其余支持基础架构。
redis探针主要是监控redis相关情况,比如内存,连接数等。
Alertmanager主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,而且很容易做到告警信息进行去重,降噪,分组,策略路由,是一款前卫的告警通知系统。
client_golang 是Prometheus client的使用,基于golang语言。提供了prometheus的数据规范。
Exporter 本质上就是将收集的数据,转化为对应的文本格式,并提供 http 请求。
Prometheus exporter for snmp server metrics.
Prometheus exporter for PostgreSQL server metrics.
Thanos,一组通过跨集群联合、跨集群无限存储和全局查询为Prometheus 增加高可用性的组件。
mysql监控指标采集探针:Prometheus exporter for MySQL server metrics.
nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server.关于nginx的介绍就不多谈了,这里主要聊下如何打造nginx集群的监控系统。
prometheus生态可以构建一个完整的监控平台,包括采集数据、分析存储数据、展示数据、告警等一系列操作,我们来看看他在原始的基础设施监控和新兴的容器监控中如何架构落地。
Prometheus-Operator是一套为了方便整合prometheus和kubernetes的开源方案,使用Prometheus-Operator可以非常简单的在kubernetes集群中部署Prometheus生态服务,用户能够使用简单的声明性配置来配置和管理Prometheus实例,这些配置将响应、创建、配置和管理Prometheus监控实例。
node_exporter 主要用于 LINUX 系统监控, 用 Golang 编写,是我们最常用于监控服务器资源的探针。