У нас есть несколько серверных стоек, за которыми следит nagios. Теперь мы хотим контролировать температуру внутри стоек с помощью установки Nagios за пределами стоек. Температура внутри серверных стоек измеряется серверами, работающими в стойке, которые обеспечивают температуру через http. Запрос http://serverinrack12/temp
доставляет один из четырех Командные сообщения, совместимые с Nagios:
OK - temp 25 °C
WARNING - temp 45 °C
CRITICAL - temp 65 °C
UNKNOWN - cannot read temp
Код ответа HTTP всегда HTTP/1.1 200 OK
.
Как Nagios может проанализировать этот HTTP-ответ, если на сервере ничего нельзя изменить?
Есть ли команда Nagios для чтения состояний службы по http? Как можно интегрировать эту команду Nagios в определение команды, например так как
define command {
command_name check_http_temp
command_line .... -H $HOSTADDRESS$
}
В идеале есть команда для вызова этих временных проверок, добавляя идентификатор для поддержки нескольких термометров, подключенных к этому серверу:
http://serverinrack12/temp?id=1
Последний вопрос: как мы можем получить данные о температуре с Nagios через http?
Вам нужно либо написать плагин, либо найти тот, который будет анализировать содержимое веб-страницы. Nagios все равно вообще какая строка возвращается (поскольку она предназначена для потребления человеком). Nagios заботится только о коде выхода (возвращаемое значение AKA).
Вы можете сделать это, ничего не устанавливая на серверах. Вы можете, например, написать сценарий bash, который извлекает /temp
content через curl, а затем выполняет сопоставление строк. Подложка "bash" для выбранного вами языка сценариев.
Акция check_http
плагин может искать определенную строку, но, насколько я вижу, он не может возвращать разные значения статуса для разных строк.
Если вы не хотите что-то писать, покопайтесь в Nagios Exchange и / или Monitoring Exchange.
Похоже, что вы выполняете проверку, чтобы увидеть, активна ли служба http. Это не пытается анализировать контент.
Взгляните на плагин check_http_content от Вот
Попробуйте этот сценарий Perl с параметрами -C и -W: check_http_enhanced