如果你有若干台数据库服务器,突然你想知道它们当前的即时负载情况,你会怎么办?挨个登录上去uptime一下?感觉有点傻,写个shell?浪费时间,直接用ClusterShell吧!
ClusterShell的安装与配置
ClusterShell的安装很Easy,如果使用APT或YUM包管理方式的话,基本就是一条命令的事儿,我就不说了,这里说一下如何从源代码安装,需要在源代码目录执行如下命令:
shell> python setup.py install
为了使用的方便,还需要拷贝配置文件到指定目录:
shell> mkdir /etc/clustershell shell> cp conf/* /etc/clustershell
接着配置我们要管理的节点,假设我们配置了一个db组,包含db_[1-3]三个节点:
shell> cat /etc/clustershell/groups db: db_1 db_2 db_3
准备就绪,顺着文章开头的例子说:查询所有数据库服务器当前的负载情况:
shell> clush -g db "uptime"
注:前提是需要在被操作服务器上设置免密码登录,如果不清楚,请看下面的内容。
番外篇:如何配置服务器免密码登录?
如果没有事先生成ssh密匙的话,需要先生成:
shell> ssh-keygen
可选操作:为了方便,我们可以给需要登录的服务器起一个可读性更好的别名,如果你做了类似的操作,那么后面的<USER>@<SERVER>都可以换成对应的<HOST>:
shell> cat ~/.ssh/config Host db_1 Hostname <SERVER> User <USER> Port <PORT> Host db_2 Hostname <SERVER> User <USER> Port <PORT> Host db_3 Hostname <SERVER> User <USER> Port <PORT>
然后把生成的公钥添加到需要登录的服务器指定位置:
shell> cat ~/.ssh/id_rsa.pub | ssh <USER>@<SERVER> "cat - >> ~/.ssh/authorized_keys"
如果你和我一样总记不清如何正确拼写authorized_keys,可以接着学一下ssh-copy-id的用法,这个命令可以让操作更简单点:
shell> ssh-copy-id -i ~/.ssh/id_rsa.pub "<USER>@<SERVER>"
注:每配置好一台免密码登录的服务器,***手动实际操作一下,因为***次连接会要求手动确认是否保存信息到~/.ssh/known_hosts文件。
…
有的网友会说,监控服务器负载可以用Munin之类的工具。不错确实如此,不过Munin之类的工具无法给你一个及时数据,另外,ClusterShell并不局限在查询负载的功能上,跟上不同的命令,就可以查询不同的数据,而在Munin之类的工具里,如果你想监控某个数据,必须有对应的插件才行。ClusterShell是不可或缺的Linux运维利器!
原文: http://huoding.com/2011/11/12/133
【编辑推荐】