Nagios, check_http - а что оно хочет-то?
Жил-был у меня блок управления вытяжкой на esp8266 с самописной прошивкой. В Nagios'e через check_http дергалась страничка на предмет наличия определенной строки (в стиле «Fan: OK» или «Fan: FAIL»), о чем мне и сигналило в случае чего на почту и в jabber.
В последнее время делаю унификацию всех подобных девайсов, поэтому прошивку сменил на ESP Home. К самой прошивке вопросов нет, но вот с проверкой состояния вышла загвоздка:
rain@walkbook:/tmp/1231231/usr/lib/nagios/plugins$ ./check_http -I 192.168.1.232 -v
GET / HTTP/1.0
User-Agent: check_http/v2.3.1 (monitoring-plugins 2.3.1)
Connection: close
CRITICAL - Socket timeout after 10 seconds
Если дернуть что-то другое - плагин работает:
rain@walkbook:/tmp/1231231/usr/lib/nagios/plugins$ ./check_http -I 192.168.1.200 -s Bitcoin
HTTP OK: HTTP/1.1 200 OK - 4267 bytes in 0,107 second response time |time=0,107245s;;;0,000000;10,000000 size=4267B;;;0
rain@walkbook:/tmp/1231231/usr/lib/nagios/plugins$ ./check_http -I 192.168.1.200 -s Bitc123oin
HTTP CRITICAL: HTTP/1.1 200 OK - string 'Bitc123oin' not found on 'http://192.168.1.200:80/' - 4273 bytes in 0,099 second response time |time=0,099289s;;;0,000000;10,000000 size=4273B;;;0
При этом контент вполне себе забирается curl'ом и wget'ом:
$ curl -v http://192.168.1.232/text_sensor/fan_state
* Trying 192.168.1.232:80...
* Connected to 192.168.1.232 (192.168.1.232) port 80 (#0)
> GET /text_sensor/fan_state HTTP/1.1
> Host: 192.168.1.232
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Length: 56
< Content-Type: application/json
< Access-Control-Allow-Origin: *
< Connection: close
< Accept-Ranges: none
<
* Closing connection 0
{"id":"text_sensor-fan_state","value":"OK","state":"OK"}
$ wget -qO- http://192.168.1.232/text_sensor/fan_state | awk -F',|:' '{gsub(/"/, ""); if ($3=="value") print $4}'
OK
Глянул только что в процессе написания всего этого tcpdump - ответ приходит.
Собственно, а что ему надо-то? Пересмотрел параметры check_http, но вроде ничего, что могло бы дать ответ на вопрос или как-то поменять ситуацию. Простейший ведь запрос.
А, да. Поведение одинаковое как на nagios-plugins 1.4.16-1 из Debian 9, так и на monitoring-plugins 2.3.1 из Debian 11 (с 12-го хочет либу, не пробовал).