Linux運(yùn)維利器之ClusterShell
如果你有若干臺(tái)數(shù)據(jù)庫服務(wù)器,突然你想知道它們當(dāng)前的即時(shí)負(fù)載情況,你會(huì)怎么辦?挨個(gè)登錄上去uptime一下?感覺有點(diǎn)傻,寫個(gè)shell?浪費(fèi)時(shí)間,直接用ClusterShell吧!
ClusterShell的安裝與配置
ClusterShell的安裝很Easy,如果使用APT或YUM包管理方式的話,基本就是一條命令的事兒,我就不說了,這里說一下如何從源代碼安裝,需要在源代碼目錄執(zhí)行如下命令:
shell> python setup.py install
為了使用的方便,還需要拷貝配置文件到指定目錄:
shell> mkdir /etc/clustershell shell> cp conf/* /etc/clustershell
接著配置我們要管理的節(jié)點(diǎn),假設(shè)我們配置了一個(gè)db組,包含db_[1-3]三個(gè)節(jié)點(diǎn):
shell> cat /etc/clustershell/groups db: db_1 db_2 db_3
準(zhǔn)備就緒,順著文章開頭的例子說:查詢所有數(shù)據(jù)庫服務(wù)器當(dāng)前的負(fù)載情況:
shell> clush -g db "uptime"
注:前提是需要在被操作服務(wù)器上設(shè)置免密碼登錄,如果不清楚,請(qǐng)看下面的內(nèi)容。
番外篇:如何配置服務(wù)器免密碼登錄?
如果沒有事先生成ssh密匙的話,需要先生成:
shell> ssh-keygen
可選操作:為了方便,我們可以給需要登錄的服務(wù)器起一個(gè)可讀性更好的別名,如果你做了類似的操作,那么后面的<USER>@<SERVER>都可以換成對(duì)應(yīng)的<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>
然后把生成的公鑰添加到需要登錄的服務(wù)器指定位置:
shell> cat ~/.ssh/id_rsa.pub | ssh <USER>@<SERVER> "cat - >> ~/.ssh/authorized_keys"
如果你和我一樣總記不清如何正確拼寫authorized_keys,可以接著學(xué)一下ssh-copy-id的用法,這個(gè)命令可以讓操作更簡單點(diǎn):
shell> ssh-copy-id -i ~/.ssh/id_rsa.pub "<USER>@<SERVER>"
注:每配置好一臺(tái)免密碼登錄的服務(wù)器,***手動(dòng)實(shí)際操作一下,因?yàn)?**次連接會(huì)要求手動(dòng)確認(rèn)是否保存信息到~/.ssh/known_hosts文件。
…
有的網(wǎng)友會(huì)說,監(jiān)控服務(wù)器負(fù)載可以用Munin之類的工具。不錯(cuò)確實(shí)如此,不過Munin之類的工具無法給你一個(gè)及時(shí)數(shù)據(jù),另外,ClusterShell并不局限在查詢負(fù)載的功能上,跟上不同的命令,就可以查詢不同的數(shù)據(jù),而在Munin之類的工具里,如果你想監(jiān)控某個(gè)數(shù)據(jù),必須有對(duì)應(yīng)的插件才行。ClusterShell是不可或缺的Linux運(yùn)維利器!
原文: http://huoding.com/2011/11/12/133
【編輯推薦】
























