`

从零开始搭建ELK+GPE监控预警系统

阅读更多

摘要: 前言 本文可能不会详细记录每一步实现的过程,但一定程度上可以引领小伙伴走向更开阔的视野,串联每个环节,呈现予你不一样的效果。 业务规模 8个平台 100+台服务器 10+个集群分组 微服务600+ 用户N+ 面临问题 随着分布式微服务容器技术的发展,传统监控系统面临许多问题: 容器如何监控 微服务如何监控 集群性能如何进行分析计算 如何管理agent端大量配置脚本 这些都是传统监控所要面临的棘手问题,那么如何解决当前遇到的问题,GPE横空出世,后面会重点分析。

前言

本文可能不会详细记录每一步实现的过程,但一定程度上可以引领小伙伴走向更开阔的视野,串联每个环节,呈现予你不一样的效果。

业务规模

  • 8个平台
  • 100+台服务器
  • 10+个集群分组
  • 微服务600+
  • 用户N+

面临问题

随着分布式微服务容器技术的发展,传统监控系统面临许多问题:

  • 容器如何监控
  • 微服务如何监控
  • 集群性能如何进行分析计算
  • 如何管理agent端大量配置脚本

这些都是传统监控所要面临的棘手问题,那么如何解决当前遇到的问题,GPE横空出世,后面会重点分析。

系统监控

  • 目标群体:系统日志、服务器、容器、系统软件运行指标
  • 日志架构:ELK (Elasticsearch+Logstash+Kibana+Redis)
  • 监控架构:GPE (Grafana+Prometheus+Exporter+Consul)
  • 报警方式:邮件、短信、钉钉以及自定义webhook,监控中心7x24小时

ELK日志

随着分布式微服务的盛行,功能模块的拆分细化,无论对于开发还是运维,日志的重要性都是不言而喻的,但是如何存储分析定位查看日志,一百个公司可能会有两百种做法。有的很少记录日志,有的日志等级都不分,有的写入文本然后就不管不问了,有的向MySql数据库一扔也没有了下文,等到用户投诉或者被发现问题,才会翻一翻。

那么如何正确优雅的记录日志呢?相信大家对于ELK并不陌生,可能不少小伙伴都接触过,对于中小型互联网创业公司来说,使用ELK搭建日志分析系统的确是一个不错的选择。

架构图

elk

核心组件

ELK由Elasticsearch、Logstash和Kibana三剑客组成,当然了以上是最基本的组件,为了使的架构流程更加丰满,我们加入了Redis做缓冲队列,配置了sendmail做异常日志告警。

ElasticSearch

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口等。

Logstash

Logstash数据分析工具,它可以对系统生成的的日志进行采集、分析,存储。2013 年,Logstash 被 Elasticsearch 公司收购,ELK Stack 正式成为官方用语。

kibana

Kibana是一个开源的分析与可视化平台,用来搜索、查看存储在Elasticsearch索引中的数据。

工作流程

  • logstash(shipper) 实时监控并过滤收集每个服务的日志信息
  • logstash(shipper) 把收集来的日志(INFO 、DEBUG 、RROR 、WARN等)分别发送到Redis
  • logstash(indexer) 按照日志分类分别从Redis读取日志信息并发送给ElasticSearch
  • logstash(indexer) 过滤出RROR日志通过邮件或者其它webhook方式告警开发运维人员
  • Kibana读取ElasticSearch数据结合自定义搜索进行页面展示

GPE监控

我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。

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

架构图

GPE

核心组件

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

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

Grafana

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

109211_20171108195226841_772465907

Prometheus

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

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

如架构图所示,Prometheus通过安装在远程机器上的exporter来收集监控数据。

440956_20161222225523854_188246022

Consul

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

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

阅读全文请点击

分享到:
评论

相关推荐

    ELK+Filebeat+Kafka+ZooKeeper构建日志分析平台

    ELK+Filebeat+Kafka+ZooKeeper构建日志分析平台,架构图解

    Centos7搭建ELK+filebeat.docx

    【Centos7搭建ELK+filebeat】 ELK(Elasticsearch、Logstash、Kibana)是一个流行的...通过以上步骤,你可以成功在CentOS7上搭建ELK+filebeat系统,解决开发团队查看线上日志的权限问题,实现日志的高效管理和分析。

    CentOS7安装Docker并发布项目和搭建ELK+Elasticsearch1

    CentOS7安装Docker并发布项目和搭建ELK+Elasticsearch1

    基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.docx

    基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.docx基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.docx基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.docx基于SpringBoot+Dubbo...

    适合java web全栈学习的博客项目(ssm+redis+elk+layui+jsp).zip

    适合java web全栈学习的博客项目(ssm+redis+elk+layui+jsp) 适合java web全栈学习的博客项目(ssm+redis+elk+layui+jsp) 适合java web全栈学习的博客项目(ssm+redis+elk+layui+jsp) 适合java web全栈学习的博客...

    基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.pdf

    基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.pdf基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.pdf基于SpringBoot+Dubbo+React+ELK+区块链的阿梨房屋中介系统.pdf基于SpringBoot+Dubbo+...

    ELK+FileBeat+Kafka分布式系统搭建图文教程.docx

    ELK+FileBeat+Kafka分布式系统搭建图文教程 本教程详细记录了ELK+FileBeat+Kafka分布式系统的搭建流程和步骤,为大家快速上手提供了详细的指导。本系统由FileBeat、Kafka、Logstash、Elasticsearch、Kibana五个组件...

    ELK+Zabbix+TimesacleDB+Grafana.docx

    ELK+Zabbix+TimesacleDB+Grafana.docx ELK(Elasticsearch、Logstash、Kibana)是一种流行的日志管理解决方案,Zabbix 是一个流行的网络监控工具,而 TimescaleDB 是一个基于 PostgreSQL 的时间序数据库,Grafana ...

    linux平台centos7系统 - ELK+logback+kafka+nginx 搭建分布式日志分析平台.doc

    【Linux平台CentOS7系统 - ELK+logback+kafka+nginx搭建分布式日志分析平台】 在复杂的IT环境中,日志管理和分析对于诊断问题、优化性能以及确保系统稳定性至关重要。ELK栈(Elasticsearch、Logstash、Kibana)正是...

    ELK+kafaka日志集群项目.zip

    总结来说,ELK+kafka日志集群项目提供了一套完整的日志管理解决方案,从数据采集、处理、存储到分析和可视化,覆盖了日志生命周期的各个环节。在运维实战中,理解并掌握这一系统的架构和运作原理,对于提升企业的...

    suricata+elk+kibana+logstash安装手册.docx

    Suricata+ELK+kibana+logstash 安装手册是网络安全领域中构建入侵检测系统(IDS)和入侵防御系统(IPS)的关键步骤。这个文档详细介绍了如何在CentOS 7环境下设置一套完整的监控解决方案,包括 Suricata 作为核心的...

    Elk+filebeat搭建日志系统1

    在IT系统监控和故障排查中,ELK扮演着至关重要的角色。它能够帮助开发人员和运维团队实时地分析和理解应用程序的运行状态。 1. Filebeat: Filebeat是ELK栈中的轻量级日志代理,主要用于收集和转发应用程序产生的...

    elk+springboot+kafka日志跟踪配置1

    ELK+SringBoot+Kafka 日志跟踪配置详解 ELK(Elasticsearch、Logstash、Kibana)是一款流行的日志分析平台,SpringBoot 是一个流行的 Java 框架,Kafka 是一个流行的消息队列系统。本文将详细介绍如何将 SpringBoot...

    ELK+Kafka+Filebeat日志系统.md

    ELK+Kafka+Filebeat日志系统.md

    ELK+filebeat

    "ELK+filebeat"是一个常见的日志管理和分析解决方案,由Elasticsearch、Logstash、Kibana以及Filebeat这四个组件组成。这个组合在IT领域中被广泛应用于收集、处理、存储和可视化大量日志数据,对于系统监控、故障...

    elk+filebeat+kafka日志系统搭建.docx

    本文将详细介绍如何在Linux环境下搭建ELK(Elasticsearch、Logstash、Kibana)+Filebeat+kafka日志系统。这个系统能够有效地收集、处理、存储和分析系统的日志数据,帮助监控和排查问题。 1. **Elasticsearch**:...

    elk+beat搭建

    根据提供的文件信息,我们可以整理出一系列关于如何搭建ELK(Elasticsearch, Logstash, Kibana)堆栈以及Filebeat日志管理系统的详细步骤与关键知识点。 ### 一、安装Elasticsearch #### 1. 环境准备 - **目标...

    debj_SpringBoot_ELK+Kafka_resources.zip

    《SpringBoot整合ELK+Kafka的资源集合详解》 在现代微服务架构中,日志管理和实时数据流处理是至关重要的。SpringBoot作为一个轻量级的Java开发框架,广泛应用于构建可快速启动的独立应用。而ELK(Elasticsearch、...

Global site tag (gtag.js) - Google Analytics