Amazing Arch运维监控程序猿的进阶屋

小团队从0搭建devOPS平台-Prometheus监控报警系统

2019-08-14  本文已影响1555人  jerry的技术与思维

在当前微服务架构流行情况下,对于初创企业,可能就几个技术(2-20个不等),但是却要开发十多个应用,要维护几十台云机器,甚至可能是混合云的模式。由于业务变化迅速,应用需要采用敏捷开发,针对这十来个应用怎么快速高效无误的部署,出现系统异常能快速给出报警信息,快速定位问题并修复bug后重新部署上线,并且是在不影响线上服务的基础上,这对技术团队提出很高的要求。
传统的开发模式和流程里面,这些工作需要开发人员和运维人员一起配合协作才能完成。但是实际上的效果不少特别好,因为开发人员对操作系统优化,监控报警并不熟悉,而运维人员不懂业务逻辑,不懂具体应用开发。所以针对这样的情况,今年devOPS的概念和具体的实践不断被提出来。

行业内各巨头(比如BAT)的自动化运维架构都各种功能各种酷炫,功能复杂,但是开发工作难度和强度也非常大,需要消耗大量的人力和财力。那么小团队就没有实现自己的devOPS了吗?

答案当然是可以实现的。

笔者在一家小团队,有10几个开发人员,管理这几十台服务器和几十个应用,在初期代码的管理、应用的构建、部署发布、监控等都只能都人肉实现,需要不断的到处救火,消耗了大量的开发人员的精力。好在有opensource,我们借助开源的力量慢慢形成了自己的一套devOPS体系,总体效果还不错。

本文就是总结笔者在这方面一些经验和实践,希望对读者有帮助。

先上监控和告警。
现在市面上监控系统很多:Zabbix、Open-Falcon、Prometheus,但是最终我选择了 Prometheus。

Prometheus 简介

Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes 的项目。

作为新一代的监控框架,Prometheus 具有以下特点:

需要指出的是,由于数据采集可能会有丢失,所以 Prometheus 不适用对采集数据要 100% 准确的情形。但如果用于记录时间序列数据,Prometheus 具有很大的查询优势,此外,Prometheus 适用于微服务的体系架构。


Prometheus技术架构图.png

Prometheus基本原理

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

用Ansible 来Prometheus安装

Ansible是一个自动配置管理工具,本文先不介绍了,以后有空再来做下介绍,ansible也是小团队搭建devOPS的利器。
使用 Ansible 作为部署工具的一个好处是太多现成的 role 了,安装 Prometheus 时,笔者使用的是现成的:

安装所需各种exporter

比如需要采集操作系统系统,需要安装node_exporter,当然安装exporter也可以用ansible来实现。

安装和配置监控可视化Grafana

Grafana是用于可视化大型测量数据的开源程序,它提供了强大和优雅的方式去创建、共享、浏览数据。
Dashboard中显示了你不同metric数据源中的数据。
Grafana最常用于因特网基础设施和应用分析,但在其他领域也有用到,比如:工业传感器、家庭自动化、过程控制等等。
Grafana支持热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch、Prometheus等。
具体安装比较简单,参照官网安装即可。
安装结束后登录,默认用户名密码admin、admin

添加一个数据源


配置prometheus数据源.png

导入的模板会看到已经有各种图,下图笔者所在公司导入的node_exporter的监控图


屏幕快照 2019-08-14 22.58.15.png

好了,有了监控数据后,我们就可以对数据进行可视化了,是不是很炫酷呢?并且告诉你这些监控图是可以随意定制的哦!
可是,我们不可能 24 小时盯着屏幕看 CPU 负载有没有超吧?这时候就要上告警了。由于篇幅原因,下篇来说说告警。

上一篇下一篇

猜你喜欢

热点阅读