Prometheus原理及节点发现方式

一、常用监控简介

1、cacti
Cacti(英文含义为仙人掌〉是一套基于 PHP、MySQL、SNMP和 RRDtool开发的网络流量监测/图形分析工具。
2、Nagios
Nagios是一款开源的免费网络监视工具,能有效监控windows、Linux和Unix的主机状态,交换机路由器等网络设备,包括打印机等。
3、Zabbix
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
4、open-Falcaon是小米开源的企业级监控工具,用GO语言开发,包括小米、滴滴、美团等在内的互联网公司都在使用它,是一款灵活、可拓展并且高性能的监控方案
夜莺
5、Prometheus
borg.kubernetes
borgmon(监控系统) 对应克隆的版本:prometheus(go语言)
所以prometheus 特别适合K8S 的架构上

二、特性

① 多维的数据模型(基于时间序列的Key、value键值对)
② 灵活的查询和聚合语言PromQL
③ 提供本地存储和分布式存储,高效的储存,不依赖分布式储存,支持单主节点工作
④ 通过基于HTTP和HTTPS的Pull模型采集时间序列数据(pull数据的推送,时间序列:每段
时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图)
⑤ 可利用Pushgateway (Prometheus的可选中间件)实现Push模式(只会对脚本执行或者一次性/短周期执行的任务,使用push方式)不适合通过/使用七层暴露的指标数据
⑥ 可通过动态服务发现或静态配置发现目标机器(通过consul自动发现和收缩)
⑦ 支持多种图表和数据大盘

三、运维监控平台设计思路

1.数据收集模块
2.数据提取模块 (prometheus-TSDB 查询语言是PromQL)
3.监控告警模块 (布尔值表达式判断是否需要告警 PromQ(CPU使用率)> 80%)
细化为
第六层——用户展示管理层——同一用户管理、集中监控、集中维护
第五层——告警事件生成层——实时记录告警事件、形成分析图表(趋势分析、可视化)
第四层——告警规则配置层——告警规则设置、告警伐值设置(定义布尔值表达式,筛选异常状态)
第三层——数据提取层——定时采集数据到监控模块
第二层——数据展示层——数据生成曲线图展示(对时序数据的动态展示)
第一层——数据收集层——(多渠道监控数据)——(网络,硬件,应用,数据,物理环境)

四、prometheus监控体系

1、系统层监控(需要监控的数据)

1.1 CPU、Load、Memory、swap、disk i/o、process等
1.2.网络监控:网络设备、工作负载、网络延迟、丢包率等

2、 中间件及基础应用监控

2.1.消息中间件:kafka、RocketMQ、等消息代理(redis 中间件)
2.2.WEB(应用)服务器:tomcat、weblogic、apache、php、spring 系列
2.3.数据库/缓存数据库:MySQL、PostgreSQL、MogoDB、es、redis
redis监控内容:
redis所在服务器的系统层监控
redis 服务状态
RDB AOF日志监控
日志——>如果是哨兵模式——>哨兵共享集群信息,产生的日志——>直接包含的其他节点哨兵信息及redis信息

key的数量
key被命中的数据/次数
最大连接数——》redis 和 系统 :
系统:ulimit -a
redis: redis-cli 登陆——》config get maxclients 查看最大连接

监控指标:我们如何选择我们需要监控的指标呢? ? ?数据流向——》
1)服务之间对接:服务数据流向
2)端口、模块、API之间的对接,业务数据流向
3 )网络层面,端口、设备的对接,网络流量/数据的流向
指标选择:(业务测、体验感、稳定/安全性我们关心的指标数据):
主机层面:服务器中影响应用状态的一些指标数据,比如基本的资源(“五大资源”+最大文件打开数+文件描述符+socket等)
网络层面:架构中,内、外网、网络流量数据(gPS TPs)以及延迟、丢包、效率性能、队列-》socket等指标数据
业务层面:在业务数据流向(数据链路线)进行追踪监控,API接口数据流量,
应用层面:示例: mysql,表的数量、总表的记录行,select语句数量、insert数量、慢查询语句,错误日志、主从复制状态,服务内内存,死锁,打开的线程数量、socket、文件描述符

3、应用层监控

用于衡量应用程序代码状态和性能
#监控的分类#:黑盒监控,白盒监控
PS:
白盒监控,自省指标,等待被下载 (cadvisor)
黑盒监控:基于探针的监控方式,不会主动干预、影响数据

4、业务层监控

用于衡量应用程序的价值,如电商业务的销售量,ops、dau日活、转化率等,业务接口:登入数量,注册数、订单量、搜索量和支付量

监控指标:我们如何选择我们需要监控的指标呢? ? ?数据流向—-》
1)服务之间对接:服务数据流向
2) 端口、模块、API之间的对接,业务数据流向
3)网络层面,端口、设备的对接,网络流量/数据的流向

指标选择(业务侧、体验感、稳定/安全性我们关心的指标数据):
主机层面:服务器中影响应用状态的一些指标数据,比如基本的资源(“五大资源”+最大文件打开数+文件描述符+socket等)
网络层面:架构中,内、外网、网络流量数据(QPS RPS)以及延迟、丢包、效率性能、队列-》socket等指标数据
业务层面:在业务数据流向(数据链路线)进行追踪监控,APr接口数据流量,
应用层面:示例:Aysql,表的数量、总表的记录行,select语句数量、insert数量、慢查询语句,错误日志、主从复制状态,服务内内存,死锁,打开的线程数量、socket、文件描述符

五、prometheus架构

在这里插入图片描述
1.prometheus-server:
retrieval(获取数据pull/discover),TSDB存储,HTTPserver 控制台接口,内建了数据样本采集器,可以通过配置文件定义,告诉prometheus到那个监控对象中采集指标数据,prometheus采集过后,会存储在自己内建的TSDB数据库中(默认为2个月时间)),提供了promQL支持查询和过滤操作,同时支持自定义规则来作为告警规则,持续分析一场指标,一旦发生,通知给alerter来发送告警信息,还支持对接外置的UI工具 (grafana)等来展示数据
2.pushgateway(短期周期任务)
允许短暂和批量作业将其指标暴露给普罗米修斯,由于这些类型的作业可能存在时间不足而被删除,因此他们可以将其指标推送到pushgateway,然后pushgateway将这些指标暴露给Prometheus-server端,主要用于业务数据汇报

3.exporters(常规任务—守护进程)
专门采集一些web服务,nginx,mysql服务。因为不适合直接通过

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值