其他
背景最近晚上23:00甚至是凌晨总收到告警通知:磁盘可用量低于20%,这个时候不得不爬起来处理告警。当然这里要提醒大家:对于小问题,运维也绝不要抱着侥幸的心理,因为只有痛过才知道。磁盘类告警只是我们诸多告警中的冰山一角,虽然我们有值班人员甚至是运维团队支撑,但是也不能因为这种小问题就分散注意力,这时我们就需要考虑如何通过自动化实现。针对这种情况,我们通常会想到以下几点:在告警机器上设置定时任务;编写脚本压缩日志或清理磁盘空间;这种方案虽然可行,但是试想下:如果我们管理的是上千台机器且目录结构混乱,那么我们面临的将是上千个脚本及定时任务,这个工作量是非常大的。运维累都是有原因的,此时就可以轮到故障自愈出场了。故障自愈如图所示,对于生产故障,运维标准的处理流程是收到告警、登录跳板机、故障处理、故障恢复,整个过程都是通过人工手动处理。而故障自愈则是接受监控平台的告警定位,匹配预设的故障处理流程,进而通过自动化手段实现故障的自动恢复。在认识故障自愈后,我们需要考虑的就是如何让运维管理的生产环境更广泛的接入故障自愈,而不是只针对单一的机器或某一类故障。因此在正式接入故障自愈前,我们还有很多的工作要做。1.前提为满足故障自愈通过自动化手段处理故障,我们必须提前制定一系列的流程规范:目录管理规范标准的目录结构,接入故障自愈后可以用一套自动化脚本管理所有文件资源;应用标准规范标准应用规范,接入故障自愈后可以用一套自动化脚本管理所有应用;监控告警规范标准的监控告警规范,通过告警通知,无论是运维团队或自愈平台,都能通过告警通知更快速的定位问题;标准的故障处理流程标准的故障处理流程,不仅可以帮助我们更快速的解决问题,而且可以帮助我们建立起运维团队的知识库;这些流程规范不仅是故障自愈,也是我们日常运维工作过程中需要持续关注的,这也意味着这些基础性的工作是多么的重要。2.监控平台监控平台作为整个故障自愈的源头,必须满足快速准确定位故障的要求,因此就需要在多个维度提供可靠的监控。硬件监控维度此类监控故障自愈一般无法接入,仅作为辅助手段帮我们及时发现问题;基础监控维度基础监控主要是对CPU、内存、磁盘等资源使用情况进行监控,接入故障自愈后可发送占用资源的top10进程及自定义的磁盘清理策略;应用监控维度应用监控主要是对应用状态进行监控,如健康检查、端口、其他自定义告警,接入故障自愈后可对应用进行重启;中间件维度中间件维度主要是对集群的健康状态进行监控,如