软件简介
BigOps是由北京运维帮科技有限公司研发的自动化运维管理平台,我们响应国家「信创」号召自主研发,平台融入了ITIL、DevOps、SRE等多种运维思想,通过自动化、标准化、可视化、智能化的管理协助企业提供运维效率、降低人力成本。
BigOps分为社区版和商业版。社区版已有超过300家企业使用,通过社区用户使用反馈,我们不断的完善软件功能,形成良性的社区生态。商业版可以为客户提供更多的定制开发和专业技术支持服务,帮助企业快速提高运维服务水平,当前已为多家金融和互联网企业提供服务。
通过不断的积累和发展,BigOps自动化运维管理平台已经成为运维人身边最好的运维工具。
开发工具
功能 | 工具 |
---|---|
前端 | iView、Vue |
后端 | JAVA、Shell |
数据存储 | MySQL、ElasticSearch |
SQL审核 | goInception |
配管工具 | Ansible |
平台功能
设计原则:围绕「运维即服务」进行整体设计,内置管控及轻量流程。
设计依据:参考ITIL、DevOps、SRE等方法论,具备ITSM软件能力。
整体目标:提高运维效率、提升运维质量、保障运维安全、降低运维成本。
平台架构
平台采用分布式架构,由SSO、WORK、BigServer、Proxy等组件构成,支持上万台客户端主机的统一管理。
平台组件
组件 | 端口 | 用途 |
---|---|---|
SSO+WORK+BigServer | 30001、30003、60001 | 用户统一认证、Web管理页面、日常数据处理 |
Proxy | 60001 | 代理服务器 |
MySQL | 3306 | 数据存储 |
ElasticSearch+Kibana+Logstash+Cerebro | 9200、9300、5601、6514(tcp/udp)、6515(tcp)、9000 | 数据存储 |
Ansible | 无 | 主机连接通道 |
BigServer组件
功能 | 执行时间 |
---|---|
测试ES连接状态 | 每分钟(延迟) |
把网络主机id复制到net_conf表 | 每分钟(延迟) |
测试Proxy服务器网管用户密钥 | 每5分钟(延迟) |
置空IPAM里不容许扫描和发现的IP的扫描时间、扫描状态和端口、mac地址 | 每10分钟(延迟) |
计算es里监控历史数据的最大值、平均值、最小值,放趋势索引 | 每小时(整点) |
清除数据库脏数据clean_duty | 每30分钟(延迟) |
清除数据库指定的历史数据clean_history | 每30分钟(延迟) |
IPAM里检查IP和主机绑定 | 每30分钟(延迟) |
删除SSO、WORK、BigServer、logs、yml目录1天以前日志 | 每天凌晨1点 |
主机费用 | 每天凌晨1点 |
删除es设置里保留天数以前的数据 | 每天凌晨1点 |
删除es过期索引 | 每天凌晨1点 |
备份数据库到目录/opt/bigops-bak | 每天凌晨1点 |
清理3天内没更新的软件版本 | 每天凌晨1点 |
多云导入 | 2个定时:每分钟,处理更新时间为空的(延迟)、每30分钟(延迟) |
主机发现 | 2个定时:每分钟,处理更新时间为空的(延迟)、每10分钟(延迟) |
bigops主机和zabbix主机自动绑定 | 每30分钟(延迟) |
Proxy组件
功能 | 执行时间 |
---|---|
上报proxy版本和时间,检查nmap、fping路径等路径 | 每分钟(延迟) |
IPAM扫描信息 | 每2分钟(延迟) |
更新bigagent.conf | 每10分钟(延迟) |
删除hostmon_plugins、hostinfo_plugins、hoststatus_plugins插件temp目录下3天以上文件,同时删除logs下1天以上的文件。 | 每天凌晨1点 |
备份网络设备配置 | 2个定时:每分钟处理ctime为空的,每30分钟处理所有(延迟) |
密码测试和snmp测试 | 2个定时:每分钟处理测试时间为空的,每10分钟处理所有(延迟) |
主机运行状态采集(ps、netstat、crontab) | 2个定时:每分钟处理更新时间为空并,每10分钟处理所有机器(延迟) |
主机信息采集 | 2个定时:每分种处理测试时间为空,每12小时处理所有机器(延迟) |
监控信息采集 | 每分钟 |
Ansible组件
开源的配置管理工具有很多,比如Puppet、SaltStack、Ansible等,在对比了这三个运维管理工具之后,我们发现Ansible更加轻量化,更容易被广泛使用起来。
从上述对比表中可以看出,Ansible的优势包括:
无客户端
这是Ansible被广泛应用的一个最大原因,被管设备上(如交换机)只需要支持SSH和Python2.5以上版本即可,不需要额外按照Ansible的客户端进行适配;
模块化
Ansible也可以视作没有服务端,我们可以通过调用特定模块,完成特定任务;
安全
基于OpenSSH的实现,加密远程传输中的数据;
支持Playbooks编排任务
这个是Ansible的最大特色,Playbooks可以帮助运维人员将复杂任务碎片化,且能够进行批量地部署复杂任务。Playbooks的编写也基于易读的YAML语法,操作容易。