我为一家规模相对较小的软件开发公司工作,该公司在过去几年中发展迅速。然而,这也带来了许多成长的烦恼,尤其是在基础设施方面。目前,多个 ESX 服务器上的 VM 数量激增,服务器的可维护性和对服务器及其上运行内容的了解因服务器而异。大多数 VM 运行为客户内部开发的服务(Web、自定义 TCP 服务器等)。有些受到集中监控,大多数则没有,支持内部活动的服务器和为客户提供外部服务的服务器之间没有区别。所以我被赋予了清理这个问题的任务。
我对“真正的”系统管理员工作还很陌生,但基本的良好做法对我来说很清楚。对于大多数事情,我找到了很好的解决方案,例如 Puppet/Chef、Nagios/Icinga、用于中央用户管理的 LDAP、备份等……这些目前都在“待办事项”列表中,但首先要做的事情是。
我需要创建某种清单,了解服务器概况。我以为记录此类内容的工具会随时可用,但我的好朋友谷歌似乎在这方面让我失望了。我们目前的文档很乱,每个人的记录方式都不同,没有集中存储,布局不同,我遇到的几乎每份文档中都遗漏了关键信息。
那么我在寻找什么?一种记录服务器、服务、硬件并将这些项目链接到一个“项目”或多个项目的工具。我曾想过一些特殊的 wiki 页面模板或其他东西,但这会丢失大量信息或使信息变得模糊不清。例如,快速、正确且一致地概览运行特定应用程序或链接到特定项目的所有服务。
似乎很多应用程序需要一遍又一遍地提供完全相同的信息,从而重复了很多功能。目前,中央配置管理/配置和监控都是完全独立的,我认为没有任何东西可以管理所有这些公共信息并为此生成适当的配置,这很奇怪。我知道 Nagios 的 NConf,但这似乎太有限了。
在理想世界中,我会找到一个可以管理的工具:
- 硬件
- 生命周期管理
- 硬件规格
- 地点
- 主机类型(ESX/Xen/KVM/...)
- Wiki 风格的文档
- ...
- 服务器(链接到硬件)
- 主机名
- IP地址
- 管理登录
- 操作系统详细信息(版本、支持终止日期等)
- 与硬件链接
- 已配置的硬件(CPU/内存/磁盘)
- 备份策略,恢复文档
- Wiki 风格的文档
- ...
- 服务
- 姓名
- 类型
- 进程/可执行文件的名称
- 如何启动/停止
- 默认使用的 TCP/UDP 端口
- 需要数据库 + 类型
- Wiki 风格的文档
- ...
- 应用程序(服务的一个实例)
- 服务类型
- 运行应用程序的服务器
- 该实例所属的项目。
- 依赖关系(对其他应用程序)
- 服役日期。
- 主机名(用于虚拟主机等)
- 软件版本
- 角色:生产/质量保证/测试/开发
- 覆盖的 tcp/udp 端口
- Wiki 风格的文档
- ...
- 项目
- 联系人(技术、项目管理、商业联系人……)
- 客户
- 与问题跟踪器/票务系统的链接,......
- Wiki 风格的文档
- ...
我可能忘记了很多其他有用/必要的东西,但我认为像这样的系统会非常有用,例如,插件可以扩展信息量,添加“模板”,可以为其他服务生成配置文件,如监控的基本设置、配置供应的配置,...
也许这毕竟是个坏主意,也许有更好的解决方案,但我很高兴有人能指出正确的方向。我首先想到了 wiki,但当多个人访问时,它会变得一团糟,而且完整性会受到威胁。
有任何想法吗?
答案1
您可以尝试一些资产管理类型的软件来做您想做的事情。
我一直在使用胃肠道疾病很长一段时间,并做大部分你想要做的事情。