一、自动化监控
常见的有nagios和zabbix,外面已经用得很多了,网上文档也很多。这些软件,根据bash过滤业务日志监控某个指标很容易,但画出的监控图往往不太理想,很多时候,写技术分析报告需要参考过去一段时间的历史数据,有图是最好的了。公司如果有专门的运维开发人员,也可以用插件在java下自己开发出一些监控界面,如(同事wt开发):
另外,推荐百度的开源图表库ECharts(http://www.oschina.net/p/echarts?fromerr=GMUsF6Vg),利用这东西,应该可以开发出很绚丽的业务数据监控界面。
二、自动化配置
重点推荐ansible,不用折腾被控机,相对简单,但实用性很强。puppet对于很多公司都太“重”了,毕竟大部分公司的配置管理都不会到那个程度。
最常见的一个demo,批量部署一个ntp定时任务:
[[email protected] ansible]# ansible webservers -m cron -a ‘name="ntp" minute="*/5" job="/usr/sbin/ntpdate 192.168.153.136"‘
SSH password:
192.168.153.137 | success >> {
"changed": true,
"jobs": [
"ntp"
]
}
192.168.153.135 | success >> {
"changed": true,
"jobs": [
"ntp"
]
}
当然了,配置管理不只是批量部署定时任务,批量分发文件这么简单,ansible的playbook和saltStack的sls文件一样,要充分理解并在复杂业务环境中灵活使用,还是需要自己琢磨一段时间。
三、自动化报表
1、运维人员一般都知道rrdtool这个老牌画图工具,结合html和sendmail服务,可以定期形成邮件报表。如:
2、用java和python画图,控制更灵活漂亮。
四、自动化知识库
除了自动化监控、配置管理和报表输出,还可以与案例库进行关联。在某个告警出现的时候,自动关联到知识库,给出处理tips