GPE系统监控

原文地址 https://www.cnblogs.com/smallSevens/p/7860461.html

GPE监控
ELK主要收集分析预警的是我们平台系统中各个服务的业务日志,一般通过日志组件(log4j 、log4j2 、logback)来收集并写入文本。但是对于系统本身以及一些应用软件的监控预警,这套方案显然是不合适的,这里推荐一下GPE三剑客,当然了GPE是我自己意淫出来的组合。

架构图
GPE系统监控_第1张图片

核心组件
Grafana、Prometheus、Exporter(一系列插件),自定义的三剑客,当然了为了使得整合监控程序更加流畅完整,我们加入了注册中心Consul做服务发现,实现动态添加服务,使用邮件、钉钉以及webhook实现异常告警。

GPE组件只是其中的一种实现方式罢了,Grafana配合InfluxData提供Telegraf也可以收集很多Metrics,实现更为丰富的大屏监控预警。

Grafana
Grafana 是一个开箱即用的可视化工具,具有功能齐全的度量仪表盘和图形编辑器,有灵活丰富的图形化选项,可以混合多种风格,支持多个数据源特点。

GPE系统监控_第2张图片

Prometheus
Prometheus是一个开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。

多维数据模型(时序列数据由metric名和一组key/value组成)
在多维度上灵活的查询语言(PromQl)
不依赖分布式存储,单主节点工作.
通过基于HTTP的pull方式采集时序数据
可以通过push gateway进行时序列数据推送(pushing)
可以通过服务发现或者静态配置去获取要采集的目标服务器
多种可视化图表及仪表盘支持
如架构图所示,Prometheus通过安装在远程机器上的exporter来收集监控数据。

GPE系统监控_第3张图片

Consul
Consul有多个组件,但是整体来看,它是你基础设施中用于发现和配置服务的一个工具。它提供如下几个关键功能:

服务发现: Consul的某些客户端可以提供一个服务,例如api或者mysql,其它客户端可以使用Consul去发现这个服务的提供者。使用DNS或者HTTP,应用可以很容易的找到他们所依赖的服务。
健康检查: Consul客户端可以提供一些健康检查,这些健康检查可以关联到一个指定的服务(服务是否返回200 OK),也可以关联到本地节点(内存使用率是否在90%以下)。这些信息可以被一个操作员用来监控集群的健康状态,被服务发现组件路由时用来远离不健康的主机。
键值存储: 应用可以使用Consul提供的分层键值存储用于一些目的,包括动态配置、特征标记、协作、leader选举等等。通过一个简单的HTTP API可以很容易的使用这个组件。
多数据中心: Consul对多数据中心有非常好的支持,这意味着Consul用户不必担心由于创建更多抽象层而产生的多个区域。
Consul被设计为对DevOps群体和应用开发者友好,他非常适合现代的、可伸缩的基础设施。

GPE系统监控_第4张图片

工作流程
Exporter组件注册到Consul注册中心
Prometheus拉取Consul注册中心的servers
Exporter组件获取服务器或者系统软件的metrics
Grafana配置Prometheus数据源获取其采集数据结合自定义面板实现监控大屏
Grafana通过设置Alerting实现监控预警

你可能感兴趣的:(架构设计)