Назад | Перейти на главную страницу

Nagios проверяет наличие файла на веб-сайте

Я хочу создать проверку nagios, которая проверяет, доступен ли определенный файл на общедоступном веб-сайте и содержит ли этот файл определенную строку текста.

Из командной строки я выполнял:

./check_http -H 192.168.1.2 -u http://192.168.1.2/index.html -t 5 -s "Company Name"

Что проходит нормально и терпит неудачу, если я удалю файл или изменю текст, который он ищет.

Теперь я хочу включить это в мои файлы конфигурации nagios.

Я создаю хост с адресом указанного выше IP-адреса и создаю сервис следующим образом.

check_command check_http!-u /index.html -t 5 -s "Company Name"

Но если я изменю имя файла, которое он проверяет, или текст, который он проверяет, он все равно проходит, даже если я знаю, что они не существуют на веб-сайте.

Что я делаю не так? Я думаю, что должен тестировать другой файл или что-то еще, чтобы он всегда проходил.

Сначала вам нужно определить команду:

define command {
    command_name    check_http
    command_line    $USER1$/check_http -H $HOSTADDRESS$ \
                    -u $ARG1$ -t $ARG2$ -s $ARG3$
}

Затем для записи вашего хоста определите check_command следующим образом:

check_command    check_http!/index.html!5!"Company Name"

Вы можете установить следующее в конфигурации Nagios, чтобы увидеть, какая команда на самом деле будет выполняться (см. Расширение полной команды):

debug_level=-1
debug_verbosity=2
debug_file=/usr/local/nagios/var/nagios.debug

Когда вы выполняете команду вручную, вы вызываете / usr / lib / nagios / плагины / check_http верный?

Когда ты звонишь check_http из конфигурации nagios он смотрит на /etc/nagios-plugins/config/http.cfg определить check_http аргументы команды.

Что вам нужно сделать, так это создать настраиваемую проверку, например:

define command {
    command_name                   check_web_content
    command_line                   $USER1$/check_http -H $HOSTADDRESS$ -t 60 -w 15 -c 45 -u $ARG1$ -s $ARG2$

}

Тогда в конфигурации вашей службы ваша команда check_command должна выглядеть примерно так:

check_command check_web_content!http://www.domain.com/index.html!"Text on site"