最近闲下来,把之前写的运维平台推到重新整理了一下,把表结构重新规划和代码重写,写了个很Low的系统,主要是结合saltstack来实现;把原先的监控给砍掉,改用zabbix监控的方式,后期会加上调用zabbix随意出图的功能。前端的模板用的是reboot老师给的,我html比较差就没做继承之类的:
主要实现了:机房的管理、机器管理和搜索、软硬件资产的收集和审计、文件上传和批量推送、命令的批量推送返回结果。
所使用技术要点:
(1)开发的语言:python
(2)框架:python:Django框架
(3)前端bootstrap,html,js,css,jquery。
(4)db databases:mysql
(5)自动化软件:saltstack
功能说明:
一、机房管理:主要是机房的添加删除操作。
二、机器管理:新机器上架后台管理员可以登录系统,资产的录入,主机名定义为唯一值(为了保证saltstack的采集),可以增删改查和搜索相关信息。
三、资产收集:主要采用salt-api的方式调用管理接口,对grains进行收集,部分不带有的插件如:硬盘大小和内存信息可以自己定义插件收集。
四、资产的收集、展示和删除。
五、文件的上传、入库和批量推送;推送选择的是salt/minion的实现方式,通过分组进行推送管理;然后通过salt 的even机制找到返回的记录并统计显示。
六、批量命令也是通过salt/minion的方式执行;通过分组管理的方式对命令进行推送和通过salt事件监听机制返回是否成功执行操作,并记录数据。
1、机房管理:
2、机器管理:
3、资产收集:
4、资产审计:
6、文件的上传、推送、查看结果:
推送结果:
##备注:
之前用过paramiko等方式来实现自己写接口调用执行批量操作,后面发现saltstack后觉得自己不用重复造轮子;还有前期也开发过监控,通过highcharts出图的方式,遇到各种bug。感觉自己多开发一些zabbix插件已经非常完美的执行监控操作了。