Проверка NTP сервера в Icinga2
Общая
В данной статье будет рассмотрен вариант проверки NTP сервера плагином check_ntp_peer.
Плагин check_ntp_peer входи в комплект nagios plugins - устанавливать отдельно его не надо.
Для удобства работы с разными NTP настройки пороги для оповещений будут описываться в файле с узлами.
Описание работы плагина в commands.conf
:
object CheckCommand "check_ntp_peer" {
import "plugin-check-command"
command = [ "/usr/lib/nagios/plugins/check_ntp_peer" ]
arguments = {
"-H" = "$host.address$"
/* Аргументы для порога уведомления для Offset */
"-w" = "$host.vars.warn$"
"-c" = "$host.vars.crit$"
/* Аргументы для порога уведомления для номера уровня Stratum */
"-W" = "$host.vars.stratumwarn$"
"-C" = "$host.vars.stratumcrit$"
/* Аргументы для настройки таймаута проверки */
"-t" = "$host.vars.timeout$"
/* Аргументы для порога уведомления для jitter */
"-j" = "$host.vars.jwarn$"
"-k" = "$host.vars.jcrit$"
/* Аргументы для порога уведомления для количества доступных источников обновления (truechimers) */
"-m" = "$host.vars.twarn$"
"-n" = "$host.vars.tcrit$"
}
}
Описание шаблона плагина в templates.conf
:
template Service "check_ntp" {
import "generic-service"
check_command = "check_ntp_peer"
check_interval = 1m
retry_interval = 1m
}
Описание службы в services.conf
:
apply Service "check_ntp_peer" {
display_name = "Работоспособность NTP сервера"
import "check_ntp"
vars.service_type = "ntp_server"
assign where host.vars.ntp == "true"
}
Описание группы узлов и служб в файле groups.conf
:
object HostGroup "ntpsrv" {
display_name = "Серверы времени"
assign where host.vars.ntp == "true"
}
#
object ServiceGroup "NTP" {
display_name = "Работоспособность сервера времени"
assign where match("ntp_server", service.vars.service_type)
}
Добавление NTP-сервера:
object Host "NTP" {
address = "IP или Имя узла"
display_name = "Желаемое отображаемое имя"
check_command = "hostalive"
vars.ntp = "true"
/* Порог уведомлений для Offset в секундах */
vars.warn = "-0.5:0.5"
vars.crit = "-1:1"
/* Порог уведомления для номера уровня Stratum */
vars.stratumwarn = "2"
vars.stratumcrit = "~:3"
/* Время таймаута проверки в секундах */
vars.timeout = "15"
/* Порог уведомлений для Jitter в миллисекундах */
vars.jwarn = "~:35"
vars.jcrit = "~:70"
/* Порог уведомлений для количества доступных серверов (truechimers) */
vars.twarn = "@3"
vars.tcrit = "@2"
}
https://itcrowd.top/icingantp#sigProId94234c7e30
Описание значений порогов уведомлений:
Stratum - NTP использует иерархическую сеть, где каждый уровень имеет свой номер. Так Stratum 1 - первичный сервер времени, непосредственно синхронизирующиеся с национальными службами времени через спутник, радио или телефонный модем;
https://itcrowd.top/icingantp#sigProId97e3d161fa
Offset - смещение в миллисекундах между вашим сервером и серверами времени. Может быть как положительным так и отрицательным числом;
Jitter - абсолютное значение в миллисекундах с указанием среднеквадратичного отклонения вашего смещения;
Truechimers - количество доступных в данный момент серверов среди настроенных на вашем NTP-сервере.
- Просмотров: 7011