我们经常需要编写内容重复的脚本,使用大同小异的正则表达式,解析花样百出的各种命令输出。我们为了实现操作审计,建立了命令行监控系统,但实际上只能起到事后追查责任的作用。我们想要监控所有新增系统,但完全依靠人执行的制度流程,难免会出现疏漏。
这 些令系统管理员头疼不已的问题,可能已经有了终极解决方案。Red Hat 最近正式发布的 Fedora 统一网络控制器 Func(Fedora Unified Network Controller ),就是为了解决这一系列统一管理监控问题,而设计开发的系统管理基础框架。
Func 有一个长长的功能特性列表,大致要点如下:
• Func 可以让你在主控机上一次管理任意多台服务器,或任意多个服务器组。
• Func 基于 Certmaster()建立了 Master - Slaves 主从 SSL 证书管控体系,可以将证书自动分发到所有受控服务器。新装服务器也可以在 Kickstart 文件中自动安装 Func,自动注册到主控服务器。
• Func 命令行可以直接发送远程命令或者远程获取数据。
• Func 开发者已经完成了大多数常用任务模块的开发:CommandModule、FileTrackerModule、JBossModule、 IPtablesModule、HardwareModule、MountModule、NagiosCheck、NetappModule、 NetworkTest、ProcessModule、ServiceModule、SysctlModule、RebootModule、 RpmModule、VirtModule、YumModule 等等,这些模块的作用都可以顾名思义,或者参考: /wiki/ModulesList 。
• 任何人都可以通过 Func 提供的 Python API 轻松编写自己的模块,以实现具体功能扩展。而且任何 Func 命令行能完成的工作,都能通过 API 编程实现。
• Func 通讯基于 XMLRPC 和 SSL 标准协议。
为了测试 Func,我使用三台测试服务器搭建了一个简单环境:
• Master: blade-4
• Minions(Slaves): blade-5/6
参照安装文档:/wiki/InstallAndSetupGuide ,完成 Master 和 Minions 相应的安装配置工作,然后就可以开始动手尝试了:
• 查看当前有哪些服务器注册到主控机: func '*' ping
• 查看所有服务器的硬件信息: func '*' call hardware info
• 查看所有服务器上的 80 端口是否开启: func '*' call networktest isportopen localhost 80
• 查看 blade-5 上的系统负载: func 'blade-5' call command run /usr/bin/uptime
• 启动 blade-6 上的 httpd 服务: func 'blade-6' call service start httpd
• 在所有服务器上统一挂载某个存储目录: func '*' call mount xxx:/yyy/zzz /path/to/dir
不必再手工维护新增服务器列表,不必再与 ssh 纠缠不清,不必再重新发明轮子,一切尽在 Func !
阅读(547) | 评论(0) | 转发(0) |