Linux运维利器之ClusterShell
2016-07-07 14:50
435 查看
Linux运维利器之ClusterShell
发表于2011-11-12如果你有若干台数据库服务器,突然你想知道它们当前的即时负载情况,你会怎么办?挨个登录上去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 -b -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运维利器!
此条目由老王发表在Technical分类目录,并贴了Linux标签。将固定链接加入收藏夹。
《LINUX运维利器之CLUSTERSHELL》上有12条评论
halfbloodrock在2011-11-1302:09:30说道:我们线上的服务器是solaris的,不给装工具,只能写shell
for i in `cat servers`
do
ssh $i “uptime”
done
回复 ↓
张星在2015-05-2020:35:14说道:
for i in `cat servers`
do
ssh $i “uptime” &
done
tontinme在2011-11-1310:45:01说道:
不知道有没有什么并发执行的工具或方法,for循环是顺序执行机器列表的,如果机器多了的话会很慢
回复 ↓
老王在2011-11-1310:58:49说道:
ClusterShell就是并发执行的,参见文档介绍:ClusterShell allows for running commands in parallel on very large Linux clusters using present remote shell facilities on your cluster like SSH.
fcicq在2011-11-1321:12:18说道:
why not gnu parallel?
回复 ↓
神仙在2011-11-1409:21:49说道:
比起 dsh 来如何
回复 ↓
michael在2011-11-1409:52:30说道:
为什么不用omnitty呢??
回复 ↓
Pingback引用通告: flykobe的技术与生活杂谈
» Blog Archive » 使用clustershell上线代码,并管理服务器
老王在2011-11-1522:29:03说道:
感谢大家反馈,可怜我截至目前只实际用过ClusterShell,至于大家提到的软件,我大概看了看,感觉各有千秋,GNU Parallel强大但也复杂;DSH简单易用;OmniTTY操作上稍显繁琐。
回复 ↓
im@sorry.com在2011-11-1811:25:29说道:
好像还有个pssh .
另外collectl可以监控多台 http://collectl-utils.sourceforge.net/colmux.html
回复 ↓
winneryong在2011-12-2720:02:58说道:
用Fabric好了啊,比这个简单啊
回复 ↓
bugbeta在2012-02-1712:18:53说道:
Fabric是不错,不过不支持并行执行。
相关文章推荐
- Linux中的shell函数编写
- oozie案例——自定义shell workflow
- Linux中shell变量
- shell直接退出后 后台进程关闭的原因和对处
- LFCS 系列第十讲:学习简单的 Shell 脚本编程和文件系统故障排除
- Retrieve file from Microsoft SharePoint
- shell 语法与C语言对比
- Linux使用Shell脚本实现ftp的自动上传下载
- Linux开发工具(gcc gdb make shell)——GCC中-I -L -l区别
- Shell 数组的定义和使用
- 【Shell】shell study 日期格式和数字运算
- Linux开发工具(gcc,gdb,make,shell)——linux中静态库和动态库的区别(三)(2)
- Linux开发工具(gcc,gdb,make,shell)——linux中静态库和动态库的区别(三)
- 【Shell】删除指定时间之前的文件
- objdump命令的使用
- HBase 常用Shell命令
- Centos命令行报bash:.....:command not found的解决办法
- shell bash dash切换
- linuxshell脚本获取并进入当前目录
- shell编程之if判断