С помощью cURL я могу успешно войти на веб-сайт, на котором я хочу пройти тест Nagios, указав --cookies.
Примерно так: curl --cookie "user = 4reqrerqwr; userlogin = 123adsfjlk324" http://mysite.com/home/index.aspx -v | grep Добро пожаловать
Я знаю, что это успешно, потому что, 1, я могу визуально видеть отрисованный код и 2, поиск grep для Welcome будет виден только в том случае, если аутентификация прошла успешно.
Я пытаюсь имитировать это в Nagios с помощью check_http следующим образом:
./check_http -H mysite.com -u http://mysite.com/home/index.aspx -f follow
-s Welcome -k 'Cookie: user=4reqrerqwr;userlogin=123adsfjlk324' -v
Одно большое различие, которое я вижу, заключается в том, что в cURL cookie устанавливается в одной строке, но подробный ответ от check_http показывает cookie в двух строках.
Cookie: user=4reqrerqwr;userlogin=123adsfjlk324
vs.
Cookie: user=4reqrerqwr
userlogin=123adsfjlk324
Я открыт для предложений и, конечно, альтернатив. Я проверил WebInject, но, похоже, это НАСТОЛЬКО близко, я ненавижу его бросать.
Наконец, я попробовал check_curl и расширил его для поддержки файлов cookie. Это ДЕЙСТВИТЕЛЬНО работает, но я получаю (null) в ответах, и grep никогда не приводит к сбою Nagios, независимо от возвращаемого действительного результата.
Попробуйте пройти
check_http ... -k "Cookie: user=4reqrerqwr" -k "Cookie: userlogin=123adsfjlk324"