APP下载

智能运维平台解决方案探讨

2020-06-03王震

科学与信息化 2020年9期
关键词:日志开源运维

王震

摘 要 本文主要阐述了一种基于 Grafana、Elasticsearch 和 Zabbix 等开源软件搭建的一套运维监控及预警平台,致力于解决在应用平台部署后会出现各种各样的故障,类似但不限于:CPU 负载过高、磁盘容量使用超过指定阈值、内存使用超过阈值和系统进程死亡等场景的诸多事故问题。

关键词 Grafana;Elasticsearch;Zabbix;日志搜集;监控告警

1技术选型

构建一个智能的运维监控平台,必须以运行监控和故障报警这两个方面为重点,将所有业务系统中所涉及的网络资源、硬件资源、软件资源、数据库资源等纳入统一的运维监控平台中,并通过消除管理软件的差别,数据采集手段的差别,对各种不同的数据来源实现统一管理、统一规范、统一处理、统一展现、统一用户登录、统一权限控制,最终实现运维规范化、自动化、智能化的大运维管理。

1.1 利用 Zabbix搭建运维监控数据源

Zabbix是一个企业级的分布式开源监控解决方案。它能够监控各种服务器的健康性、网络的稳定性以及各种应用系统的可靠性。当监控出现异常时,Zabbix通过灵活的告警策略,可以为任何事件配置基于邮件、短信、微信等告警机制。而这所有的一切,都可以通过Zabbix提供的Web界面进行配置和操作,基于Web的前端页面还提供了出色的报告和数据可视化功能。这些功能和特性使其非常适合作为搭建运维平台监控的基础组件。

1.2 利用Grafana搭建统一的数据展示层和统一的 Dashboard UI

Zabbix 作为企业级的分布式开源监控平台,本身提供了一套简单的 UI 来供使用者查看Zab- bix  相关的监控数值以及曲线,但面对大型服务器集群以及应用集群的数据可视化,Zabbix本身自带的UI还是欠缺了许多。Grafana是一套开源的基于Golang和 Angular 构建的开源的度量分析与可视化软件,Grafana支持多种数据源类似但不限于:In?uxDB、Elasticsearch、KairosDB等等[1]。

1.3 基于MySQL、In?uxDB、Redis、Elasticsearch搭建数据存储层

运维平台的基础数据存储方面选择MySQL,MySQL作为市面上最流行的关系型数据库,支持多种存储引擎。

对于Zabbix 所采集的监控数据选择采用In?uxDB 来进行统计和记录,In?uxDB是一个由In?ux-Data开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。In?uxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,在运维平台的数据存储层的场景中主要负责临时性的数据存储。

对于日志数据,选择采用Elasticsearch 来做数据存储及搜索功能支持。

1.4 基于Elasticsearch、Logstash和Kafka来搭建日志采集系统

对于各种业务系统的日志采集,目前可以采用 Elasticsearch来做日志存储和搜索,使用Logstash来做日志采集,以Java应用举例,Java 常用的一些日志库类似但不限于 Log4J、Log- back 等都支持对接Logstash,将日志内容直接发送给Logstash,从而避免每台应用机上去安装Logstash的烦琐操作,避免多余的资源利用。Kafka在这套体系之中主要承担者“Data Transfer”的作用,Logstash 来采集和过滤日志发送给Kafka 的消息队列,Kafka 将数据异步交给Elasticsearch做處理。

2平台架构

我们将整个运维平台分为如下几层:

(1)统一展示层;

(2)运维平台支持层;

(3)数据存储层。

统一展示层主要负责统一风格的UI管理台和Dashboard 提供给用户使用,并对业务集群内其他应用开放Open API;运维平台支持层主要集成一些基本的运维平台支撑组件:Kafka消息队列服务、Logstash日志采集& 处理服务、Zabbix资源监控系统、Grafana后端服务;在数据存储层包括了四种平台支撑用数据库:Redis、Elasticsearch、MySQL、In?uxDB[2]。

3一期平台目标

项目一期主要实现如下目标,平台应该具有如下特征:

(1)支持多种类型的用户鉴权机制(如LDAP、API Key、Bearer Token 和Basic Auth),方便已有业务系统及未来业务系统的接入;

(2)安全审查包括登录鉴权记录、用户操作记录、访问记录;

(3)业务运行关键指标报警及监控;

(4)灵活告警通知配置,支持系统消息、邮件、短信、微信的告警通知方式;

(5)自动服务器和虚拟云资产、应用服务的信息及关联关系抓取及资产、资源的生命周期管理;

(6)快速智能的日志文本搜索,友好的日志文本展示;

(7)丰富的可视化数据展示,如直方图、曲线图、散点图、扇形图、热力图、仪表盘。

4结束语

企业需要一个相对完整的监控体系可以24小时针对内网各种应用进行监控,一旦发生异常,通过各种渠道通知预警;在此之上建立起一套日志收集和查询平台,来归纳各个应用日志以供问题排查。

参考文献

[1] 彭睿,成经纬,秦勤.自动监测站第三方运维管理的思考[J].中国环境监测,2016,32(3):21-24.

[2] 孙联.关于提高会计信息质量的若干思考[J].中国乡镇企业会计,2009,(1):128-129.

猜你喜欢

日志开源运维
校园武术“学、练、赛”一体化实践探索
高效管理日志文件用命令行就可以
读扶贫日志
基于GPS的电力运维轨迹定位系统
IT运维管理系统的设计及应用
五毛钱能买多少头牛
2019(第十四届)开源中国开源世界
2019开源杰出贡献奖
雅皮的心情日志
雅皮的心情日志