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

Nagios создает предупреждение только для службы http

Я хотел бы также отслеживать второстепенные службы с помощью nagios, например, нашего GitLab-сервера или экземпляра phpMyAdmin. Есть ли способ просто создавать предупреждения вместо критических ошибок для некоторых служб?

На данный момент я использую следующее:

define service {
    host_name localhost
    use generic-service
    service_description HTTP GitLab
    check_command check_www!git.example.com!'/users/sign_in'
}

define command {
    command_name check_www
    command_line /usr/lib/nagios/plugins/check_http -H '$ARG1$' -I '$HOSTADDRESS$' -e 'HTTP/1.1 200 OK' -u '$ARG2$'
}

В плагин отрицания существует именно по этой причине.

Используя параметр -c, вы можете изменить CRITICAL на WARNING. Например, вы можете сделать это:

define command {
    command_name check_www_no_crit
    command_line /usr/lib/nagios/plugins/negate -s -c WARNING /usr/lib/nagios/plugins/check_http -H '$ARG1$' -I '$HOSTADDRESS$' -e 'HTTP/1.1 200 OK' -u '$ARG2$'
}

Проблема в том, что вы используете check_http с -e флаг, чтобы проверить код возврата. Этот плагин, похоже, не предлагает вариант возврата ПРЕДУПРЕЖДЕНИЯ (а не КРИТИЧЕСКОЙ) ошибки, если -e проверка не удалась.

Вам нужно будет написать небольшую оболочку сценария оболочки вокруг check_http который передал вывод без изменений, но проверил код возврата плагина, выполнил exit 1 если код возврата плагина был 2, и передал код возврата без изменений в противном случае.