IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Linux运维利器之ClusterShell

火丁笔记 2011-11-13 21:31:45 累计浏览 2,909 次
本机暂存

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

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Bash的模式和配置文件加载 (累计阅读 24,410)
  2. 28个Unix/Linux的命令行神器 (累计阅读 16,791)
  3. Linux如何统计进程的CPU利用率 (累计阅读 16,308)
  4. 我的 RHCA 之路 (累计阅读 14,013)
  5. 我常用的主机监控shell脚本 (累计阅读 13,435)
  6. Linux内存点滴 用户进程内存空间 (累计阅读 13,232)
  7. 给程序员新手的一些建议 (累计阅读 13,090)
  8. Linux 性能监控、测试、优化工具 (累计阅读 13,013)
  9. 关于linux内存free的一些事情 (累计阅读 12,870)
  10. ps - 按进程消耗内存多少排序 (累计阅读 12,690)