2.5 监控和预警
监控和预警存在于数据闭环的各个阶段,在所有的自动执行环节均可以植入监控和预警点。前期对ETL所做的规范,现在是体现其应用价值的时候了。可以利用这些满足规范的日志记录进行自动监控和预警。
如果有专职的运维人员负责作业的运行监控,使用专门的监控工具,运维工程师可以监控各个服务器的运行信息,并通过监控工具发送预警邮件。
如果仅仅是ETL工程师负责监控自己的ETL作业,那么可以使用BI工具进行监控和预警。
2.5.1 使用监控工具进行监控
有众多的开源监控工具可供使用,如Zipkin、Ramona、zabbix、Ganglia、Nagios等,这些监控工具提供了许多定制的监控和预警服务,但它们通常比较偏于底层日志,如Zabbix主要用来监控CPU负荷、内存使用、磁盘使用、网络状况、端口监视和日志监视。这些监控信息对于保证数据环境的健康运行至关重要,可以根据CPU负荷、内存和磁盘的使用情况进行预警,比如在CPU负荷持续达到90%时进行预警,或者在磁盘使用90%时进行预警等。
监控工具专注于系统可用性方面的监控,如果要专注于ETL作业的运行情况,那么可以使用BI报表工具进行监控。
2.5.2 使用BI工具进行监控
BI(business intelligence)工具是企业环境中广泛使用的数据可视化工具,它可提供丰富的数据可视化能力,同时可提供短信、邮件等通知服务。
鉴于数据的监控和预警本身是基于日志信息的,因此可以使用BI工具丰富的展示和通知服务进行数据系统的监控和预警。
基于图2-12中的ETL作业日志表,BI工具可以定制图形化监控报表,并以Web页面的形式展示出来。作业负责人或者运营人员可以登录该BI系统,查看监控相应的页面,便可以监控作业是否正常。
例如,近期表现抢眼的BI工具Tableau,可以设置每15分钟扫描一下ETL作业日志表,一旦发现有作业异常,就自动发送邮件通知作业负责人。
通过BI工具实现ETL作业的监控和预警,这种方式可以推广到整个数据闭环,其图形化的界面让监控变得简单明了。