Как определить, какая команда выполняется в услугах Nagios?

Я пытаюсь отладить, почему услуги Nagios перестали работать; AFAIK, это начало перестать работать внезапно без любого изменения, внесенного, что мы знаем. Я пытаюсь найти принципиальный способ пойти от сервиса до "команды, которую это выполняет, который перестал работать", чтобы отладить это.

Сервис называют "NTP"; в моем /etc/nagios3/conf.d, Я имею,

define service {
    use                         service-passive-critical
    hostgroup_name              web-internal
    service_description         NTP
}

Нет check_command. Взгляд затем на serivce-passive-critical,

define service {
    name                        service-passive-critical
    use                         service-passive
    notification_interval       1 ; always re-send alerts, PagerDuty will dedup
    contact_groups              contact-group-24x7
    freshness_threshold         900 ; treat service as stale if no updates for 15 min
    check_command               return-critical ; alert CRITICAL if service is stale
}

A check_command!, Но рядом как я могу сказать, который должен всегда возвращаться ОЧЕНЬ ВАЖНЫЙ, как имя, предлагает. Мой сервис перестал работать с НЕИЗВЕСТНЫМ, и сообщение "не может создать сокетное соединение". Журналы,

[1439835980] PASSIVE SERVICE CHECK: my-thing.example.com;NTP;3;can't create socket connection

Для полноты, service-passive:

# passive services
define service {
    use                         foo-service
    name                        service-passive
    active_checks_enabled       0
    passive_checks_enabled      1
    parallelize_check           1
    obsess_over_service         0
    check_freshness             1
    freshness_threshold         900 ; treat service as stale if no updates for 15 min
    check_command               return-unknown ; alert UNKNOWN if service is stale
}

# for all our services we attach a graph link
define service {
    name                        foo-service
    use                         generic-service
    action_url                  /nagiosgraph/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$
    register                    0
}

Теперь, мое больше предположения здравого смысла - то, что это заканчивает тем, что работало check_ntp; это производит, "не может создать сокетное соединение" ошибка, которую я вижу в зависимости от аргументов, я передаю его (который является, почему было бы настолько хорошо знать то, что Nagios делает здесь …); я все еще понятия не имею, почему это начало перестать работать внезапно.

Кроме того, есть ли способ сказать, выполняется ли это локально, на самом хосте Nagios, или удаленно, через NRPE?

1
задан 17 August 2015 в 22:09
1 ответ

Это пассивная служба, верно? Если вы не изменили конфигурацию, то в вашем NAGIOS никогда не выполнялась команда для этой конкретной службы - это была регистрация данных, поступающих извне, через (например) NSCA.

На самом деле, я подозреваю, что это все еще так: внешняя система подает имя хоста, службу, код состояния (3), и сообщение об ошибке (не может создать сокет-соединение).

Использование активной команды stub, которая возвращает, например, CRITICAL, является обычным делом для таких сервисов, так как она работает параллельно с проверкой свежести, что приводит к тому, что при отсутствии данных от внешнего отправителя в течение определенного периода времени (здесь 900s) происходит переход в режим CRITICAL. Это предотвращает бесшумный отказ служб PASSIVE, когда отправитель молчит, что является хорошей практикой.

.
3
ответ дан 3 December 2019 в 18:38

Теги

Похожие вопросы