系统巡检对于系统管理员并不陌生,日常工作是离不开它的。笔者记得进入运维岗位的第一天,学习的第一课就是如何系统巡检:首先远程登陆各服务器,然后通过执行命令或操作页面查看系统内存、CPU和磁盘利用率等情况,最后将相应的数值填写入系检表格。看似几步下来很简单,其实当你发现巡检的服务器不是一台两台而是二十多台甚至更多时,花费的时间也在线性增长,不禁会感叹自己变成了流水线上的工人。不过庆幸的是笔者一直自诩为Java工程师,何不利用之前工作的经验和技术通过Java也实现自动化巡检呢。一不做二不休,经过笔者不断的开发、测试,最后在生产环境运行一年后,自动巡检工具虽然称不上完美,但从系统管理员角度来说,的确从繁琐和重复性的工作中解脱了出来。在此笔者总结下该工具的设计和实现,以飨读者。
1. 工具的实现关键技术
1.1 Ganymed SSH-2 for Java
http://www.ganymed.ethz.ch/ssh2/网站是这么介绍Ganymed SSH-2 for Java的:
Ganymed SSH-2 for Java is a library which implements the SSH-2protocol in pure Java (tested on J2SE 1.4.2 and 5.0). It allows one to connectto SSH servers from within Java programs. It supports SSH sessions (remotecommand execution and shell access), local and remote port forwarding, localstream forwarding, X11 forwarding, SCP and SFTP. There are no dependencies onany JCE provider, as all crypto functionality is included.
<