Nagios - 附加元件/外掛
外掛幫助使用 Nagios 監控資料庫、作業系統、應用程式、網路裝置和協議。外掛是編譯後的可執行檔案或指令碼(Perl 或非 Perl),它擴充套件了 Nagios 的功能以監控伺服器和主機。Nagios 將執行外掛以檢查服務或主機的狀態。Nagios 可以編譯為支援嵌入式 Perl 直譯器以執行 Perl 外掛。如果沒有,Nagios 將透過 fork 並將外掛作為外部命令執行來執行 Perl 和非 Perl 外掛。
Nagios 外掛型別
Nagios 提供以下外掛:
官方 Nagios 外掛 - 有 50 個官方 Nagios 外掛。官方 Nagios 外掛由官方 Nagios 外掛團隊開發和維護。
社群外掛 - 有超過 3000 個由數百名 Nagios 社群成員開發的第三方 Nagios 外掛。
自定義外掛 - 您也可以編寫自己的自定義外掛。編寫自定義外掛必須遵循某些準則。
編寫自定義 Nagios 外掛的指南
在 Nagios 中編寫自定義外掛時,您需要遵循以下準則:
- 外掛應提供“-V”命令列選項(驗證配置更改)
- 僅列印一行文字
- 列印診斷資訊和幫助訊息的一部分
- 網路外掛使用 DEFAULT_SOCKET_TIMEOUT 來超時
- “-v”或“--verbose”與詳細程度級別相關
- “-t”或“--timeout”(外掛超時);
- “-w”或“--warning”(警告閾值);
- “-c”或“--critical”(嚴重閾值);
- “-H”或“--hostname”(要檢查的主機名稱)
多個 Nagios 外掛同時執行並執行檢查,為了使所有外掛都能順利一起執行,Nagios 外掛遵循狀態程式碼。下表列出了退出程式碼狀態及其描述:
| 退出程式碼 | 狀態 | 描述 |
|---|---|---|
| 0 | OK | 工作正常 |
| 1 | WARNING | 工作正常,但需要關注 |
| 2 | CRITICAL | 工作不正常 |
| 3 | UNKNOWN | 外掛無法確定主機/服務的狀態時 |
Nagios 外掛使用選項進行配置。以下是 Nagios 外掛接受的一些重要引數:
| 序號 | 選項和描述 |
|---|---|
| 1 | -h, --help 提供幫助 |
| 2 | -V, --version 列印外掛的精確版本 |
| 3 | -v, --verbose 使外掛提供關於其正在執行的操作的更詳細資訊 |
| 4 | -t, --timeout 提供超時時間(以秒為單位);超過此時間後,外掛將報告 CRITICAL 狀態 |
| 5 | -w, --warning 提供外掛特定警告狀態的限制 |
| 6 | -c, --critical 提供外掛特定嚴重狀態的限制 |
| 7 | -H, --hostname 提供主機名、IP 地址或與之通訊的 Unix 套接字 |
| 8 | -4, --use-ipv4 允許您使用 IPv4 進行網路連線 |
| 9 | -6, --use-ipv6 允許您使用 IPv6 進行網路連線 |
| 10 | -p, --port 用於連線到 TCP 或 UDP 埠 |
| 11 | -s, --send 提供將傳送到伺服器的字串 |
| 12 | -e, --expect 提供伺服器應發回的字串 |
| 13 | -q, --quit 提供傳送到伺服器以關閉連線的字串 |
Nagios 外掛包提供了許多可用於主機和服務的檢查,以監控基礎設施。讓我們嘗試使用 Nagios 外掛執行一些檢查。
SMTP 是一種用於傳送電子郵件的協議。Nagios 標準外掛具有用於執行 SMTP 檢查的命令。SMTP 的命令定義:
define command {
command_name check_smtp
command_line $USER2$/check_smtp -H $HOSTADDRESS$
}
讓我們使用 Nagios 外掛監控 MySQL。Nagios 提供 2 個外掛來監控 MySQL。第一個外掛檢查 mysql 連線是否正常工作,第二個外掛用於計算執行 SQL 查詢所需的時間。
兩個外掛的命令定義如下:
define command {
command_name check_mysql
command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
$ARG3$ -S –w 10 –c 30
}
define command {
command_name check_mysql_query
command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
$ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}
注意 - 使用者名稱、密碼和資料庫名稱在兩個命令中都需要作為引數。
Nagios 提供外掛來檢查安裝在所有分割槽上的磁碟空間。命令定義如下
define command {
command_name check_partition
command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}
大多數檢查可以透過標準 Nagios 外掛完成。但是,有些應用程式需要特殊的檢查來監控它們,在這種情況下,您可以使用第三方 Nagios 外掛,它將提供對應用程式更復雜的檢查。在使用 Nagios exchange 上的第三方外掛或從其他網站下載外掛時,瞭解安全和許可問題非常重要。