[原創]Zenoss配置入門--通過SSH遠程監控Linux

前言:

如 果Linux系統沒有SNMP的環境,如何來使用Zenoss進行監控呢?Zenoss提供了基於SSH的遠程命令方式,基本工作原理是Zenoss通過 SSH向遠程主機發送執行命令,運行位於主機上的Plugin來收取數據。這裏要求被監控主機上必須安裝Zenoss Plugin(安裝plugin是花我最多時間的地方)。

測試環境:
Zenoss box:openSUSE11 (hostname:zenoss ip: 192.168.2.10)
被監控Linux:openSUSE11 (hostname:linux11 ip:192.168.2.11)

在Linux上安裝Zenoss Plugin:

Zenoss Plugin可在這裏下載
在下載之前請先檢查你的python版本:rpm -q python,如果已經是2.5了,那就請下載源碼包。

在linux11上安裝zenoss-plugin (可以使用root)
wget [url]http://downloads.sourceforge.net/zenoss/Zenoss-Plugins-2.0.4.tar.gz[/url]
tar zxvf Zenoss-Plugins-2.0.4.tar.gz
cd Zenoss-Plugins-2.0.4
python ./setup.py build
python ./setup.py install


如果出現下面的錯誤請安裝python-devel
error: invalid Python installation: unable to open /usr/lib/python2.5/config/Makefile (No such file or directory)

zenoss plugin還需要setuptools,否則運行zenplugin.py時會出現ImportError: No module named pkg_resources

wget [url]http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c7.tar.gz#md5=dedbf6a4f71cd6deaf13ee885054f16b[/url]
tar zxvf setuptools-0.6c7.tar.gz
cd setuptools-0.6c7
python ./setup.py instal
l

測試zenoss plugin是否工作正常
zenplugin.py --list-plugins
platform 'linux2' supports the following plugins:
uptime
intf
process
tivo
mem
io
mysql
apache
disk
cpu
smart

運行正常,plugin安裝完畢,可以執行zenplugin.py cpu來查看CPU的信息(--help看幫助)。如果zenoss plugin的安裝還有問題的請給我留言。

配置Zenoss:

在配置開始之前先將linux11的SNMP關掉。#rcsnmpd

點擊Add Device,輸入:rcsnmpd stop
Device Name: 192.168.2.11
Device Class Path: /Server/Cmd //這裏不能選擇/Server/Linux,後面有解釋
Discovery Protocol: none
點擊下方Add Device

這時設備192.168.2.11已經添加,但沒有任何信息,我們需要修改zenoss的收集數據的方式:
點擊標籤欄左側下拉菜單->More->zProperties,依次修改下面內容:
zCommandPassword:xxxxxx //填寫你用戶的密碼
zCommandPath:/usr/local/bin //這是被監控的linux11上zenplugin.py所在的目錄
zCommandUsername: root //指定zenoss用什麼用戶連接被監控主機,我就直接用root了,也可是系統內的其他用戶,但會不會有權限問題我沒測試過。
(看出zenoss有什麼問題了吧,你見過密碼在用戶名之前輸入的嗎,而且兩者還隔得老遠,不得不BS一下)

點擊Save。留意一下Save下方的
這裏會出現所有用戶已修改過的項,通過Delete可以將其值恢復爲默認,這個設計不錯。

下面需要進行兩次Model Device的操作,根據文檔上的說法是第一次Model是獲取platform信息,以決定使用何種plugin,第二次才能獲得系統的詳細信息,如interface,filesystem等等。(很雷人的設計,嘿嘿)

如果兩次Model Device都沒有錯誤的話,就能看到系統和性能信息了。

Device Class和Templates

爲什麼在配置SSH方式監控的時候要將Device放入/Server/Cmd而不是/Server/Linux呢?我們去看看這兩個Device Class的Templates有什麼不同。

點擊Devices -> Server -> Linux -> Templates
點擊Devices -> Server -> Cmd-> Templates
可以看出/Server/Cmd的模板在Device, FileSystem和ethernetCsmacd這三個組件的數據採集上使用了完全不同的方法。
在/Server/Linux模板中點擊Device可以看到每個Data Source的Source Type是SNMP,而/Server/Cmd爲COMMAND

到 這裏我們應該對Zenoss的Class,Path和zProperties,Templates之間的關係有個初步的認識了,建議大家仔細讀一下 Administration的Chapter 8. Organizers and Path Navigation in Zenoss。

用 戶可以在任一Class上設置zProperties和Templates,該變化會影響其子分類。例如在上述的例子中,linux11被放入 /Server/Cmd,那它就將使用/Devices/Server/Cmd的zProperties和Templates,如果我們將關閉了snmp 的linux11移到/Server/Linux中會有什麼後果呢?默認情況下將無法採集和監控linux,除非我們手工將/Server/Cmd的 zProperties和Templates的各項配置在/Server/Linux/192.168.2.11上都做一遍,這樣的改變只對 192.168.2.11這一個設備有效。

Zenoss中的Templates是可以用戶自定義的,更方便的是可通過已有的Zenpack來進行功能的擴展,開源的zenpack也有很多,[url]http://www.zenoss.com/community/projects/zenpacks/[/url]

在Zenoss中,SNMP還是占主導地位,絕大多數的PerformanceTemplates都是基於SNMP的,這種基於SSH的命令方式只適合在沒有SNMP環境中使用。

Zenoss 計劃在下一個版本(Blue Grab)中提供新的基於SSH的Monitor和Model的方法,不再使用zenplugin。所以的數據均通過遠程SSH命令調用直接從操作系統中 獲取。這也同樣會帶來問題,就是各種不同的類Unix的發行版的命令或者是輸出結果有可能不一樣,Zenoss看來需要做大量的平臺兼容性的測試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章