У меня есть установка Shinken, которая тестирует 2 домена, которые находятся за HTTP-аутентификацией. Для этого я использую следующий настраиваемый макрос:
define command {
command_name new_check_http
command_line /opt/shinken/libexec/check_http $ARG1$ --warning $ARG2$ --critical $ARG3$
}
Команда называется так
check_command new_check_http!-I my_host -H my_website -p 80 -a "http_user:http_password"!10!30
Когда я пытаюсь /opt/shinken/libexec/check_http -I my_host -H my_website -p 80 -a "http_user:http_password --warning 10 --critical 30
, Я получаю 302, как я должен. Однако Shinken продолжает сообщать о 401 каждый час. В чем может быть проблема? Как я могу увидеть, что на самом деле делается?
Я думаю, это может быть проблема с пробелами и кавычками. Попробуйте разделить его на большее количество переменных, например:
define command {
command_name new_check_http
command_line /opt/shinken/libexec/check_http -I $ARG1$ -H $ARG2$ -p $ARG3$ -a $ARG4$ --warning $ARG5$ --critical $ARG6$
}
check_command new_check_http!my_host!my_website!80!http_user:http_password!10!30
Или, что еще лучше, используйте пользовательские переменные:
define command {
command_name new_check_http
command_line /opt/shinken/libexec/check_http -I $_IP$ -H $_HOSTNAME$ -p $_PORT$ -a $_AUTH$ --warning $ARG1$ --critical $ARG2$
}
Затем в определении вашего хоста:
define host{
host_name test
address 127.0.0.1
_IP 127.0.0.1
_HOSTNAME test
_PORT 80
_AUTH http_user:http_password
}