写点什么

如何将运维的报警做成运营的报警

  • 2017-03-02
  • 本文字数:1684 字

    阅读完需:约 6 分钟

做运维的同学都知道,运维一定离不开 Zabbix、Nagios 之类的监控软件。目前,类似的软件在监控和数据采集方面已经做到了极致,但是在报警处理上并没有很完美的解决方案,比方说,经常出现高质量报警湮没在海量报警之中等情况。本文不探讨监控系统的配置优化,只探讨监控系统按照它的逻辑发出报警之后我们该做点什么。

报警遇到的痛点

报警风暴,高质量报警湮没在海量报警之中;

出现报警后没人认领,需要在在工作的 IM 群中沟通;

运维人员进行运维操作必定会引起某些报警,会给不知道真相的同学带来困惑;

海量报警恢复之后,运维人员很难在第一时间知道还剩下哪些报警没有恢复;

MySQL 出现了慢查询报警,DBA 还需要登录数据库去查看;

有些报警优先级不高,明明可以白天处理的,却在晚上第一时间发出来;

同一个报警会反复报出来。

背景现状

云极星创作为综合性云服务提供者,既要做公有云的监控,也要负责私有云的监控。我们的研发团队已经建立了比较完善的 OpenStack 监控体系,并且使用了多种监控工具;因为云极星创的运维团队和客户分布在全国各地,所以该监控体系的物理位置也是分散。在公有云场景下,报警需要按照物理位置或者应用类型发给不同的运维同学、运营同学和管理层。在私有云场景下,报警也需要推送给相应的客户。当前,我们主要采用微信为主,短信为辅的报警方式。

使用微信的优缺点

使用微信的优点:

  • 基本免费;
  • 图文并茂、字节数限制较为宽裕;
  • 微信客户端和服务器端交互方便。

使用微信的缺点:

  • 可用度依赖腾讯的服务器,因此特意增加了对微信服务器接口的监控,发现接口有问题之后会发短信报警;
  • 客户端需要保持联网,没有送达报告,因此系统提供汇总表功能。

优秀报警处理系统的三要素

  • 在合适的时间发给合适的人;
  • 尽可能的提供更多的信息,使得接警人员在不开电脑情况下第一时间能大概知道哪里出了问题;
  • 减少围绕报警的人员沟通成本。

实施方案

架构概览

报警分类

普通报警:根据排班表发送给值班的运维同学,低级别的报警会延时发给对应的应用开发。

ELK 日志报警:用户在微信端可以查看

收到报警:确认、反馈和汇总

报警确认:当用户点击确认按钮之后,对应的人会收到确认信息。

报警处理结果反馈

汇总表:提供批量确认功能

报警收敛

基于关键字、主机名、Tag 的复合报警收敛

报警升级

如果报警在一定时间没被确认也没有自动回复,会有一个报警升级动作

微信 vs 短信 两个平台

所有微信接口做了加密处理,防止非授权用户访问和关注公众号。

短信平台主要用来发送灾难级别的报警、微信 API 接口的报警,系统本身可用度的报警。

总结

1、系统使用的成果

云极星创之前使用的报警方案是邮件加短信的方式,在报警触发之后,运维交流群会有大量围绕报警的沟通,并且经常发生报警风暴,将短信发送平台堵塞,在本系统投入使用之后,基本上所有的沟通都在系统内进行。随着丰富的报警附加信息,减少了二线运维工程师在处理故障时候开机登录系统的次数。

2、研发历程

本系统开发历时半年左右,基本上随着云极星创的发展而发展壮大起来,初期的想法是因为各家短信发送平台随着国家打击电信诈骗的政策影响,变得越来越不好用,所以诞生了使用普及率非常高的微信来替代短信的想法。

第一个版本就是原封不动的推送 Zabbix 报警信息,随着公有云规模的不断扩大,报警不断增多,另外私有云客户也在不断的增加,需要接受报警的人员也越来越分散,围绕报警的沟通成本越来越高。

因此本系统的功能点都是围绕着我们运维同学在处理报警时候遇到的痛点进行开发而成。经过半年的发展,在我们内部已经将运维报警做成了运营的报警。

3、未来发展:

(1)、报警系统和工单系统以及 CMDB 做关联;

(2)、快速实现故障根因定位;

(2)、告警排行分析报表;

(备注:文中截图来自于预发布环境下的运维测试)

作者简介

安新海,云极星创高级运维工程师。十年军旅生涯,曾在解放军某部负责过大型云平台建设。退役后一直从事互联网云平台运维工作,擅长 Zabbix、OpenStack、VMware 等系统的运维、调优。


感谢木环对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-02 16:234921

评论

发布
暂无评论
发现更多内容

DockerCompose部署es和kibana

百度搜索:蓝易云

Docker Linux 运维 ES 云服务器

ETL中如何执行Python脚本

RestCloud

Python 脚本 ETL 数据集成工具

Spring与Docker:如何容器化你的Spring应用

百度搜索:蓝易云

Java Docker spring Linux 运维

智谱AI亮相2024 ICLR,分享面向AGI的三大技术趋势

Geek_2d6073

捷途山海T2省油王者,续航新篇章

Geek_2d6073

什么是云原生架构,我们该如何做好云原生安全,引领云计算时代的应用程序革新

德迅云安全杨德俊

低代码技术赋能未来乡村建设:创新与实践

快乐非自愿限量之名

低代码 信息化 乡村振兴

手把手系列!使用 Zilliz Cloud 和 AWS Bedrock 搭建 RAG 应用

Zilliz

AWS Zilliz zillizcloud Amazon Bedrock

智能助手上线,大模型提供云服务专属顾问

Baidu AICLOUD

大模型 Copilot AI智能客服

苹果再失资深设计师,Jony Ive 团队基本离开;OpenAI 或于下周发布 AI 搜索丨 RTE 开发者日报 Vol.201

声网

IBM发布开源AI编程模型Granite Code

算AI

人工智能 AI AI编程

SVN 合并到 Git 时有文件大于 100 M 被限制 Push

HoneyMoose

详解GaussDB(DWS)中的行执行引擎

华为云开发者联盟

数据库 华为云 华为云开发者联盟 华为云GaussDB(DWS) 企业号2024年5月PK榜

2023年TCL实业营收突破1,200亿元,同比增长13%

Geek_2d6073

爆爽,英语小白怒刷 50 课!像玩游戏一样学习英语~

Immerse

英语 学英语

3个免费图片网站,助你轻松创建PPT素材库!

彭宏豪95

职场 PPT 在线白板 效率软件 素材库

金融大模型,要听见远方的风

脑极体

AI

出海企业必备神器:海外云手机的秘密你了解多少?

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 跨境云手机

Spring如何控制Bean的加载顺序

快乐非自愿限量之名

Java spring 后端

服务器托管与租赁的有什么区别

Finovy Cloud

服务器 服务器托管 服务器租

克服 Prometheus 单值数据模型的局限性:GreptimeDB 的新路径

Greptime 格睿科技

数据库 sql Prometheus PromQL

当AI遇见低代码:数智化时代发展新趋势

不在线第一只蜗牛

人工智能 低代码 数智化

智慧公厕案例-深圳大梅沙海滨公园

光明源智慧厕所

智慧公厕

Mybatis-Plus常见注解

百度搜索:蓝易云

sql 云计算 Linux 云服务器 Mybatis-Plus

聊聊微软Power平台

这届南京码农

低代码 SaaS Power Platform

Ubuntu系统编译OpenCV4.8源码

梦笔生花

ubuntu 操作系统 编译

inBuilder 低代码平台新特性推荐 - 第十八期

inBuilder低代码平台

低代码

MySQL面试二之binlog日志

Hunter熊

MySQL Binlog

Linux中的chsh命令及示例

百度搜索:蓝易云

云计算 Linux 运维 Shell 云服务器

浅析Jetty与tomcat区别

百度搜索:蓝易云

Java tomcat 运维 Web jetty

如何将运维的报警做成运营的报警_语言 & 开发_安新海_InfoQ精选文章