如何編寫 Nagios 插件
Nagios 插件可以由自己編寫,就不用在網(wǎng)上找了,具體工作過程如下:
Nagios 的最激動人心的方面是可以輕松地編寫您自己的插件,只需要了解一些簡單的指導原則即可。為了管理插件,Nagios 每次在查詢一個服務的狀態(tài)時,產(chǎn)生一個子進程,并且它使用來自該命令的輸出和退出代碼來確定具體的狀態(tài)。退出狀態(tài)代碼的含義如下所示:
OK —退出代碼 0—表示服務正常地工作。
WARNING —退出代碼 1—表示服務處于警告狀態(tài)。
CRITICAL —退出代碼 2—表示服務處于危險狀態(tài)。
UNKNOWN —退出代碼 3—表示服務處于未知狀態(tài)。
最后一種狀態(tài)通常表示該插件無法確定服務的狀態(tài)。例如,可能出現(xiàn)了內(nèi)部錯誤。
下面提供了一個 Python 示例腳本,用于檢查 UNIX® 平均負載。它假定 2.0 以上的級別表示警告狀態(tài),而 5.0 以上的級別表示危險狀態(tài)。這些值都采用了硬編碼的方式,并且始終使用最近一分鐘的平均負載。
#p#
清單 5. Python 插件—示例工作插件
- #!/usr/bin/env python
- import os,sys
- (d1, d2, d3) = os.getloadavg()
- if d1 >= 5.0:
- print "GETLOADAVG CRITICAL: Load average is %.2f" % (d1)
- sys.exit(2)
- elif d1 >= 2.0:
- print "GETLOADAVG WARNING: Load average is %.2f" % (d1)
- sys.exit(1)
- else:
- print "GETLOADAVG OK: Load average is %.2f" % (d1)
- sys.exit(0)
在編寫了這個小的可執(zhí)行插件之后,接下來是使用 Nagios 注冊該插件,并創(chuàng)建一個檢查平均負載的服務定義。
這項工作也是非常簡單的:使用下面的內(nèi)容創(chuàng)建一個名為 /etc/nagios-plugins/config/mygetloadavg.cfg 的文件,根據(jù)下面的示例,向 services.cfg 文件添加一個服務。請記住,必須在 hosts.cfg 配置文件中定義 localhost。
清單 6. 示例插件—使用 Nagios 進行注冊
- define command{
- command_name check_mygetloadavg
- command_line /path/to/check_getloadavg
- }
清單 7. 創(chuàng)建一個使用示例插件的服務
- define service{
- use service-template
- host_name localhost
- service_description LoadAverage
- check_period 24x7
- contact_groups server-admins
- notification_options c,r
- check_command check_mygetloadavg
- }
通過閱讀文章,你只要按上面步驟一步一步來,就能為自己的 Nagios 做幾個有用插件!
【編輯推薦】