Nagios監控虛擬主機的http服務

在nagios中提供有check_http命令模版,用來監控http服務是否存在。

這個命令模版的定義如下:

# 'check_http' command definition
define command{
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}

可以看出,-I參數是基於主機的HOSTADDRESS(即IP地址)來監測,那麼就有了這樣一個問題:如果是虛擬主機,IP不可訪問,只能用域名訪問,如何監測?

運行check_http腳本

#/usr/local/nagios/libexec/check_http
check_http: Could not parse arguments
Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
[-w <warn time>] [-c <critical time>] [-t <timeout>] [-L]
[-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>]
[-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string]
[-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string]
[-k string] [-S] [-C <age>] [-T <content-type>]

可見check_http中存在有 -H <vhost> ,用以監測虛擬主機。

具體實現方法如下:

1. vi commands.cfg
添加一個新的command:check_http_by_domain
去除-I $HOSTADDRESS參數,保留ARG1用以傳遞域名參數

define command{
command_name check_http_by_domain
command_line $USER1$/check_http $ARG1$
}

2. 編輯主機配置文件<yourhost>.cfg
修改check_http服務中的check_command
check_command check_http_by_domain!-H test.dbalife.com
通過在command name後追加“!”提示符來傳遞參數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章