Вопрос или проблема
Мы использовали плагин Nagios check_ntp_time
в течение нескольких лет, но недавно мы перешли от использования набора хостов CentOS к набору устройств NTP (Galleon NTS-6002-GPS NTP Time Server), и плагин больше не работает. Это работает нормально с сервера (RHEL 8):
chronyd -q "server $NTPserver iburst"
(Где $NTPserver
установлен на адрес одного из устройств.) И вот это:
root@server1:~# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-appliance1 2 6 17 1 +270us[ +316us] +/- 23ms
^+ ntp-appliance2 2 6 17 1 +249us[ +294us] +/- 29ms
^+ ntp-appliance3 2 6 17 1 -224us[ -179us] +/- 28ms
^+ ntp-appliance4 2 6 17 1 -662us[ -617us] +/- 25ms
root@server1:~#
Но плагин вызывает тайм-аут:
root@server1:~# /opt/opsview/agent/plugins/check_ntp_peer -H ntp-appliance1
CRITICAL - Socket timeout after 10 seconds
root@server1:~# /opt/opsview/agent/plugins/check_ntp_time -H ntp-appliance2
NTP CRITICAL: Offset unknown|
root@uat-sftp:~#
Использование флага -v
не предоставляет больше информации.
Кто-нибудь знает, почему это может происходить?
.
Ответ или решение
Для решения проблемы "check_ntp_time unable to connect to working NTP server", давайте рассмотрим все детали, предоставленные в описании проблемы:
Теория:
Инструмент "check_ntp_time" является плагином для Nagios, который используется для мониторинга времени через NTP (Network Time Protocol). Он предназначен для проверки, насколько правильно настроены часы на вашем сервере в соответствии с NTP-сервером. Ваша ситуация, когда плагин перестал работать после перехода от серверов CentOS к специализированным NTP-устройствам (таким как Galleon NTS-6002-GPS), свидетельствует о потенциальной несовместимости или ошибках конфигурации между плагином и новыми NTP-серверами.
Судя по предоставленной информации, соединение через chronyd
работает корректно. Это означает, что проблемы с сетевым соединением, вероятно, нет. Однако плагин Nagios испытывает проблему с таймаутом и заданием разницы времени. Это может быть связано с:
- Конфигурацией плагина: Возможно, параметры, используемые в плагине, не соответствуют новой аппаратуре.
- Протоколом или портом: Нужно убедиться, что плагин использует правильный протокол и порт для работы с новыми устройствами.
- Cетевыми ограничениями или межсетевыми экранами: Вполне возможно, что межсетевой экран или сам NTP-сервер фильтруют порты или IP-адреса, от которых идет запрос.
- Ошибками или ограничениями в самом плагине, которые не позволяют ему взаимодействовать с NTP-серверами данного типа.
Пример:
Ваша команда chronyd -q "server $NTPserver iburst"
работает, что видно из результатов команды chronyc sources
, показывающих успешное получение времени от NTP-устройств. Однако, плагин Nagios не может установить соединение, как это демонстрируется сообщениями о таймауте:
CRITICAL - Socket timeout after 10 seconds
NTP CRITICAL: Offset unknown|
Это указывает на то, что плагин Nagios и chrony
используют различные методы связи с NTP-сервером. Например, chrony
может использовать другие порты или протоколы, отличающиеся от тех, которые использует плагин.
Применение:
Рассмотрим следующие шаги, чтобы решить вашу проблему:
-
Проверка конфигурации плагина: Убедитесь, что параметры конфигурации указаны верно. Ознакомьтесь с документацией плагина
check_ntp_time
на предмет специальных флагов или настроек для вашего сценария. -
Проверка сетевых настроек: Проверьте, открыт ли нужный порт для NTP (обычно это UDP-порт 123) и нет ли ограничений на уровне межсетевого экрана, которые могут влиять на работу плагина.
-
Анализ логов NTP-сервера: Проверьте логи на стороне NTP-устройства для каких-либо записей, связанных с подключениями от Nagios, чтобы выявить потенциальные проблемы или блокировки.
-
Обновление и тестирование альтернатив: Возможно, стоит проверить наличие обновлений для плагина или протестировать альтернативный плагин, совместимый с вашим программным обеспечением Nagios и так же более подходящий для работы с NTP-устройствами Galleon.
-
Сетевая диагностика: Используйте сетевые утилиты, такие как
tcpdump
, для перехвата трафика между Nagios-сервером и NTP-устройствами, чтобы увидеть, какие именно пакеты передаются и где происходит сбой. -
Настройка специальных параметров: Иногда переход на другое сетевое оборудование требует дополнительных настроек. Проверьте, поддерживают ли ваши NTP-устройства такие параметры, как
iburst
,burst
,key
,degredation
, и т.д., применимые к вашему плагину.
В завершение, лучше всего будет сотрудничать с технической поддержкой Nagios и Galleon, предоставляя им все обнаруженные данные для более быстрого выявления и исправления ошибки. Практика установки таких интеграций требует тщательного тестирования и может повлиять на корректность показателей системы мониторинга, так что любые изменения следует проверять на тестовых системах перед вводом в эксплуатацию.