worker321 发表于 2019-1-28 09:44:49

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

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

[*]  8个平台
[*]  100+台服务器
[*]  10+个集群分组
[*]  微服务600+
[*]  用户N+
面临问题
随着分布式微服务容器技术的发展,传统监控系统面临许多问题:

[*]  容器如何监控
[*]  微服务如何监控
[*]  集群性能如何进行分析计算
[*]  如何管理agent端大量配置脚本
这些都是传统监控所要面临的棘手问题,那么如何解决当前遇到的问题,GPE横空出世,后面会重点分析。
系统监控

[*]  目标群体:系统日志、服务器、容器、系统软件运行指标
[*]  日志架构:ELK (Elasticsearch+Logstash+Kibana+Redis)
[*]  监控架构:GPE (Grafana+Prometheus+Exporter+Consul)
[*]  报警方式:邮件、短信、钉钉以及自定义webhook,监控中心7x24小时
ELK日志
随着分布式微服务的盛行,功能模块的拆分细化,无论对于开发还是运维,日志的重要性都是不言而喻的,但是如何存储分析定位查看日志,一百个公司可能会有两百种做法。有的很少记录日志,有的日志等级都不分,有的写入文本然后就不管不问了,有的向MySql数据库一扔也没有了下文,等到用户投诉或者被发现问题,才会翻一翻。
那么如何正确优雅的记录日志呢?相信大家对于ELK并不陌生,可能不少小伙伴都接触过,对于中小型互联网创业公司来说,使用ELK搭建日志分析系统的确是一个不错的选择。
架构图
https://s3.运维网.com/oss/201711/19/896ec5132595a93576183b5563944912.png-wh_500x0-wm_3-wmp_4-s_550899520.png
核心组件
ELK由Elasticsearch、Logstash和Kibana三剑客组成,当然了以上是最基本的组件,为了使的架构流程更加丰满,我们加入了Redis做缓冲队列,配置了sendmail做异常日志告警。
https://s1.运维网.com/oss/201711/19/5c2f8d1013cbfa4e6fa1894dc40408bd.png-wh_500x0-wm_3-wmp_4-s_2813635903.png核心组件
Grafana、Prometheus、Exporter(一系列插件),自定义的三剑客,当然了为了使得整合监控程序更加流畅完整,我们加入了注册中心Consul做服务发现,实现动态添加服务,使用邮件、钉钉以及webhook实现异常告警。
GPE组件只是其中的一种实现方式罢了,Grafana配合InfluxData提供Telegraf也可以收集很多Metrics,实现更为丰富的大屏监控预警。
https://s5.运维网.com/oss/201711/19/96abede330f6fffdf1f10cba216e6e94.png-wh_500x0-wm_3-wmp_4-s_3574845172.pnghttps://s1.运维网.com/oss/201711/19/1fca5bbd2a5447c72fc24af574ccd38c.png-wh_500x0-wm_3-wmp_4-s_3870261698.pnghttps://s4.运维网.com/oss/201711/19/3d2a12ca9d79a09de81ace91f372facb.png-wh_500x0-wm_3-wmp_4-s_3662756924.png工作流程

[*]  Exporter组件注册到Consul注册中心
[*]  Prometheus拉取Consul注册中心的servers
[*]  Exporter组件获取服务器或者系统软件的metrics
[*]  Grafana配置Prometheus数据源获取其采集数据结合自定义面板实现监控大屏
[*]  Grafana通过设置Alerting实现监控预警
小结
如文章开头所述,本文并没有一步步详细记录安装使用教程,这些教程网上都有,即使有坑,相信作为程序员的你也能够解决。不才,在这里只是抛砖引玉,希望各位小伙伴可以学到更多知识。


声明:部分文字介绍来源于网络。
  

  
作者: 小柒
出处: https://blog.52itstyle.com
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(345849402@qq.com)咨询。



页: [1]
查看完整版本: 从零开始搭建ELK+GPE监控预警系统