霜天部落 | 专注PHP研发,研究LAMP高性能架构部署与优化

Linux运维利器之ClusterShell

如果你有若干台数据库服务器,突然你想知道它们当前的即时负载情况,你会怎么办?挨个登录上去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

可选操作:为了方便,我们可以给需要登录的服务器起一个可读性更好的别名,如果你做了类似的操作,那么后面的@都可以换成对应的:

shell> cat ~/.ssh/config
Host db_1
Hostname 
User 
Port 

Host db_2
Hostname 
User 
Port 

Host db_3
Hostname 
User 
Port

然后把生成的公钥添加到需要登录的服务器指定位置:

shell> cat ~/.ssh/id_rsa.pub | ssh @ "cat - >> ~/.ssh/authorized_keys"

如果你和我一样总记不清如何正确拼写authorized_keys,可以接着学一下ssh-copy-id的用法,这个命令可以让操作更简单点:

shell> ssh-copy-id -i ~/.ssh/id_rsa.pub "@"

注:每配置好一台免密码登录的服务器,最好手动实际操作一下,因为第一次连接会要求手动确认是否保存信息到~/.ssh/known_hosts文件。

有的网友会说,监控服务器负载可以用Munin之 类的工具。不错确实如此,不过Munin之类的工具无法给你一个及时数据,另外,ClusterShell并不局限在查询负载的功能上,跟上不同的命令, 就可以查询不同的数据,而在Munin之类的工具里,如果你想监控某个数据,必须有对应的插件才行。ClusterShell是不可或缺的Linux运维 利器!