这周主要做了监控的功能以及对LB发布的优化(支持串并行执行)。之所以做了这两个比较实用的功能点,主要是基于以下的考虑:
1.支持串并行执行。之前的重载的执行方式统一都是并行执行的,即一点击重载按钮,马上对所有LB进行了重载。但在实际测试过程中,我们发现假如线上有业务的时候,同时重载LB(主要是quagga)会导致网络不通的情况,原因是重载quagga后,ospf需要重新收敛,建立彼此的邻居关系,据我们观察大概会持续60秒左右。所以,此次开发中,添加了对串行执行功能的支持,即每重载一台LB,暂停60s。同时也保留了原来的并行重载功能,对于新上线的业务,无需确保业务不掉线,则通过并行执行重载速度会快很多。(大概5,6s就能搞定)。
2.告警。实际上接入这个LVS管理系统后,我们希望以这个系统作为管理的统一入口,而不希望还人为的介入其中,即我们希望所有新增、修改配置都通过管理系统来完成,而不要到系统上手动变更配置(因为其他系统希望从我们这个系统调用接口,准确的知道VIP绑定在哪些机器上),因此开发了这个针对配置文件变更的监控。其主要工作原理是,在发布LB配置的同时下发一个监控脚本,通过配合crontab 10分钟探测一次,对比keepalived.conf 和最新发布的keepalived.conf 是否一致,若不一致则上报到LVS管理系统,并通过手机短信、邮件的方式告警。另外,若配置被修改,在系统上可以看到已被修改的提示,即修改时间。后期做权限控制的时候会逐渐完善这一功能,包括记录操作日志,记录操作人等等。
邮件告警
手机短信告警