我们公司现在有大概10台服务器,amazon ec2, 阿里云,以及自有的服务器。我现在的困难是不知道如何去系统化的管理这些服务器,基本上我都是ssh连接,然后查看服务器的当前运行情况。或者需要升级系统的时候也是一个一个ssh进去然后去升级软件包。有没有系统化的管理工具来同时管理这么多服务器,同时有可视化的监控界面,很容易的知道当前的系统运行情况。
- 首先10台真的不算多,不过你的意识是很好的.
- 再就,首先这10台服务器一定要标准化才能够进行统一管理,越多的标准化越好,像相同的软件安装在哪,开什么样的端口,等等(一定要注意扩展,不要让标准束缚了扩展,多思考为什么这样,这样有什么好处等)
- 再,如果是10台直接统一管理完全完全可以使用cssh这样的多窗口工具,或者一些pssh批量执行工具,同时进行操作管理,这个不需要任何成本代价.
- 再,你说到系统情况,应该是监控这一块的,用一个开源工具来集中查看,像ganglia nagios这些开源工具完全够用.
- 再,系统的配置是在你的服务器标准化后,可以自己写脚本完成,或者复杂点使用开源的puppet也可以满足.
- 最后,如果你实力很强,或者觉得现在的工具太不紧凑了你可以自己写些管理平台,这个看你具体的需求了.
- END,需求带动生产吧,细节有很多需要思考.
PS:一般出于安全考虑,还会有统一的管理入口服务器,这样你的管理结构就又要发生一些变化了,安全和效率的取舍关系.
在写毕业论文的时候研究过hadoop,大概是意思是master管理者你设置一台主机,然后其余的都是slave奴隶,配置ssh无密码链接。然后配置一下hadoop分布式存储hdfs,在主机修改的 分发给slave,这样可以实现你的需求吧。可能需要适当的编写下shell
监控采用nagios,可能需要自己下点功夫;或者new relic,最近比较有名的创业公司,专门做监控的,界面也很炫~ 系统管理,有两类,走ssh通道的包括pssh,SSH::Batch,Rex,Capistrano,Func;需要提前在所有设备上部署agent的包括puppet、chef,saltstack,cfengine等。最好各掌握一样。
xshell上打开所有ssh窗口,然后xshell最下方命令输入框选择'同时发送到所有窗口'。
最简单的方式是把你的ssh换成pssh
tools = ['func','capistrano','fabric','puppet','salt','chef']
我感觉 集中管理配置文件不是常规的事情 或者是经常发生的事情。 实时观察监控状态但是会很频繁 尤其是业务量上去以后。 配置脚本自动发动邮件 报告机器运行状态倒是可以提前先做起来。
Rundeck fabric ansible 都是用ssh的
如果是配置管理的话, Puppet, Chef, Salt