在nagios3.2.0版本,曾将nagios、saltstack、Thinkphp进行整合。在整合的基础之上,进行了二次开发,新增分组出图、资产管理、服务器批量管理等功能。资产的增删改查借助的是Thinkphp框架;分组出图单独写分组页面,调用pnp的接口;服务器的批量管理,依靠的是saltstack的强大的API,如下图:
图1 按业务分组出图
图2 资产管理和服务器批量管理
上述系统已应用到线上环境。接下来我们要讲述的“依据分组绘制服务图”是在nagios 4.1.1的基础之上进行的二次开发。一、需求
依据分组绘制服务图
二、效果图
图三 分组复选框
图四 按业务分组出图
三、实现过程1)修改nagios的status.cgi原文件,增加复选框及对应的实现全选的js代码。
2)切换到pnp4nagios安装目录,新增graphview.php文件,同时追加处理分组出图的php代码。
四、总结
1)相比nagios3.2.0版本的二次开发,本次分组出图功能的实现只依赖于nagios+pnp4nagios,未借助thinkphp进行分组
2)有nagios3.2.0的开发铺垫,再次修改nagios4.1.1的时候,可直接修改源代码,降低了复杂度,同时加快了项目进度
4)无论哪一种开源软件,只要结合自己的业务需求用心钻研,总会有闪光点!