作为运维人员,其中最基本一项职能职责针对网络、服务器等进行服务周期内的维护。维护过程中,巡检是一项必不可缺少的工作。看似简单的巡检动作,在日常工作中尤为重要。“日常巡检”是对相关设备进行日常的巡视和检查,发现隐患及时尽可能的去进行安全处理,尽可能的将该隐患处理在萌芽状态,就可以最大限度的减少该隐患带来不必要的损失。本文主要介绍基于智慧运维平台(AMP)将日常巡检以及简单故障恢复实现自动化处理,并可在流程图上直观地看到是哪一步流程出错,从而进一步快速精准定位问题。
日常巡检之微服务和组件状态巡检以及故障恢复
日常巡检自动化前:
对于平台的各个微服务状态进行巡检需要登录服务器,进入指定目录,执行命令,查看各个微服务状态:如果发现有服务状态时 No running状态还需要人工执行重启脚本进行针对性启动。平台的kafka部署在三台服务器中,如果想要巡检三个kafka的状态时,最基础的方法是登录到每一个服务器上查看kafka的进程是否存在:另外方法可以通过查看kafka组件信息和消费信息来确认三台kafka是否都属于正常状态:1. 查看kafka组信息
./bin/kafka-consumer-groups.sh --bootstrap-server ip:prot --list
2. 查看消费信息
./bin/kafka-consumer-groups.sh --describe --bootstrap-server ip:prot --group 7a4f66af-a983-4a10-9a0c-19424ffcab3d
如果发现某一个kafka进程挂掉,需要登录到该服务器上执行重启脚本进行进程启动。同时平台部署依赖的组件还有zookeeper、redis、Elasticsearch、nginx等。他们巡检的操作都和kafka 的巡检步骤相同或者类似。如果按照最原始的巡检步骤进行巡检,那么将上述的所有微服务、组件巡检完成,费时费力。且是由于人工操作,会出现巡检漏掉、或者未注意等等问题。所以为了减轻人工巡检时间,提高巡检效率,减少由人工巡检带来的问题。于是使用到了平台的调度功能来实现自动化巡检。- 将微服务、组件所在服务器安装Agent并且纳入运维由平台进行管理;
- 将各个微服务、组件的启动、查看状态等脚本分别配置在平台的操作中,即将服务器上的脚本复制到平台上一份,由平台来进行执行脚本;
- 通过平台的调度功能进行将各个操作,通过逻辑关系串联在一起,即可形成上图的结构。
从该流程图上可以很明确清晰的看到在巡检过程中Elasticsearch、nginx两个组件进程异常,并通过了人工审核的步骤,再执行重启,重启完毕之后再次执行集群巡检,指导正常才通过。日常巡检自动化后:
在巡检过程中不需要人工登陆服务器,完全在平台进行操作,避免巡检人员巡检不到位、误操作等问题,解决了传统巡检方式的弊端,在此优势之上,自动化巡检更能将每次巡检记录进行导出,为巡检人员制作巡检报告提供了可视化数据,使巡检报告脱离了繁琐单一的文字描述的层次。