要解决的问题
传统上,对于VLAN和私网IP地址这些资源与配置的使用管理上面我们多是事前规划、事中实施、事后登记,对于一个持续运营中的系统与网络,各种资源数量的变更,总是让我们会有很多机会反反复复做这些事。但时间长了就会出问题,会有不登记的情况、登记错的情况,以及登记的信息过时的情况。然后,我们系统与网络的最新最准确的信息就一般都留在了某个或几个人的脑袋里了。不幸的是,我们的管理员们容易记错或忘记一些关键使用信息。
需求分析
当需要管理的资源信息增多,配置变更增多,我们无法继续记在脑袋里,或使用几个或十几个Excel表格来管理好这些信息了,因为会乱会错,况且知识的使用与共享也不方便。
那么,我们是不是选择使用一个类似于iTop这样的资产与配置管理系统就能解决这些问题?
答案是否定的。单纯的做信息化,全部的工作内容基本上就是各种资源信息与变更信息手工的增、删、改操作,这和手工维护几个Excel表格无异,甚至遇到的挑战与问题也相似,始终要和数据的准确性做斗争,使用成本很高。
所以,我们仍然是采取信息化+部分自动化运维的技术实现,借助于信息化为自动化的功能提供必要的元数据信息基础,通过自动化运维手段去处理一些脏活累活,去帮我们为各个资源之间建立起必要的依赖关系或是关联关系,最终达到既解决问题,又提高工作效率的目的。
这里面有两个比较关键的两个诉求是:
- 汇总VLAN和私网IP资源使用信息,让大家便于检索使用,并对这部分知识保持一个相同认知,任哪一个系统或网络管理员,都可以依托于这些信息,为一个网段或一个私网IP的使用给出完整且准确的使用信息;
- 需要一个信息化的系统,但不能是一个完全依赖于手工增、删、改维护资源使用信息的系统,最好是我们手工录入一些关键的管理元数据后,让系统自己去发现、登记与展示我们需要的数据,没问题时就默默干活,有问题时再通知我们处理一下或确认一下;
VLAN资源管理设计
从实践中我们归纳出管理VLAN资源,至少会包含以下相对重要的属性信息。
属性设计:
- 名称【唯一标识】
- 网段信息
- 网络性质【生产网络/办公网络/测试网络/客户侧网络】
- 所属机房
- 创建时间
- 状态【已确认/未确认】
- 查看维护日志
- 备注
围绕一个使用中的VLAN,我们还会关心以下信息:
- 该网段中哪些IP地址是活跃的;
- 这些活跃IP的身份是什么;
- 使用这些IP的主机上运行的应用是哪些;
我们设计一些自动化运维的技术手段来采集并管理这些信息:
- 设计一个功能,可以点击vlan名称进入展示该vlan中活跃状态的ip address信息的列表页,这些ip要经由自动发现的方法进行周期性地获取并更新,新写入的ip地址记录默认为未确认的状态。
- 为VLAN指定一个可以用于该VLAN下活跃ip自动发现服务的探针节点,我们使用该探针节点,执行对其所在VLAN的一个网段地址的探活任务。
- 增加一个自动为 ip address与现有应用进行关联链接的功能,点击链接后可进入相关应用的列表页。
私网IP地址资源管理
我们在这里主要是从网络资源的角度去理解和管理私网IP地址的信息,这包括以下关注点:
- ip地址
- 所属VLAN
- 创建时间
- 是否确认
- 备注信息
这里有一个潜在的条件是,我们管理和展示的主要是那些活跃状态的ip地址,而技术实现的手段应该是由程序自动化地完成的。
功能开发
库表建模
NetworkVLAN表,用于维护VLAN资源信息
VLANIPAddress表,维护私网IP资源信息
主要功能函数
1)VLAN资源的增删改功能
这里有一点需要特别说明的是,如果需要启动下一步的自动发现功能,则需要在定义一个VLAN时就指定一个符合使用要求的探针节点主机。
2)VLAN内活跃ip的自动发现功能
我们在底层是使用SaltStack通过调用一些远程执行功能的接口,完成我们希望达到的远程执行命令、返回数据结果等管理功能。
在探测VLAN中的活跃ip地址时,则是使用了一个linux小工具fping v4.0+版本。这个工具通过附带简单的参数就可以直接给我们返回一个指定网网中的那些活跃状态的ip地址信息。
每次执行自动发现任务时,都会将新增ip写入库表中,也会对库表中原有记录进行一次是否仍然活跃的验证。如果未通过验证,则直接删除该记录并在配置变更记录表中写入一条操作记录。如果需要关注和掌握这类事件,可以进一步通过zabbix配置一个监控项和触发器,及时把新增ip记录、删除ip记录的事件报警出来。
3)定时任务周期性地调用自动发现功能函数,对数据进行持续的更新
这里是直接使用的Django crontab功能做的实现。
WEB页面展示
1)VLAN资源管理
2)一个VLAN网段内的活跃ip信息
该表中的信息均是通过自动发现功能维护的,需要人工处理的工作就是,对自动发现结果进行下确认,填写必要的备注说明。
3)点击私网ip可以查看该ip地址所关联的应用
[完]