⏱️ Как включить режим отладки для службы Chronyd в CentOS / RHEL 8

by itisgood

Что такое Chronyd

В CentOS / RHEL 7 и 8 время операционной системы устанавливается при каждой загрузке на основе аппаратных часов, которые представляют собой часы с батарейным питанием, расположенные на материнской плате вашего компьютера.

Часто эти часы слишком неточные или неправильно настроены, поэтому лучше получить системное время из надежного источника через Интернет (который использует реальное атомное время).

Демон chrony, chronyd, устанавливает и поддерживает системное время посредством процесса синхронизации с удаленным сервером с использованием протокола NTP.

В этом руководстве мы научимся включать режим отладки для службы chronyd, что очень удобно при устранении любых проблем, связанных с chronyd.

Файл конфигурации, используемый службой chronyd, это /etc/sysconfig/chronyd.

1. Отредактируйте файл конфигурации /etc/sysconfig/chronyd от имени пользователя root:

# vi /etc/sysconfig/chronyd
2. Добавте или измените:
OPTIONS="-dd"
3. Скопируйте /lib/systemd/system/chronyd.service в /etc/systemd/system/:
# cp /lib/systemd/system/chronyd.service /etc/systemd/system/
4. Отредактируйте файл /etc/systemd/system/chronyd.service и измените Type=forking на Type=simple:
# cat /etc/systemd/system/chronyd.service
[Unit]
Description=NTP client/server
Documentation=man:chronyd(8) man:chrony.conf(5)
After=ntpdate.service sntp.service ntpd.service
Conflicts=ntpd.service systemd-timesyncd.service
ConditionCapability=CAP_SYS_TIME

[Service]
Type=simple
PIDFile=/run/chrony/chronyd.pid
EnvironmentFile=-/etc/sysconfig/chronyd
ExecStart=/usr/sbin/chronyd $OPTIONS
ExecStartPost=/usr/libexec/chrony-helper update-daemon
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full

[Install]
WantedBy=multi-user.target

5. Перезапустите сервис chronyd, используя systemctl:

# systemctl restart chronyd

6. Теперь логи chronyd будут намного более подробными, когда проверяется состояние chronyd, а также при выводе команды /var/log/messages или journalctl будет отображать больше информации:

До:

Jun 03 18:21:47 geeklab.localdomain systemd[1]: Starting NTP client/server...
Jun 03 18:21:47 geeklab.localdomain systemd[1]: chronyd.service: Can't open PID file /run/chrony/chronyd.pid (yet?) after start-post: No such file or directory
Jun 03 18:21:47 geeklab.localdomain chronyd[14780]: chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
Jun 03 18:21:47 geeklab.localdomain chronyd[14780]: Frequency 0.000 +/- 1000000.000 ppm read from /var/lib/chrony/drift
Jun 03 18:21:47 geeklab.localdomain chronyd[14780]: Using right/UTC timezone to obtain leap second data
Jun 03 18:21:47 geeklab.localdomain systemd[1]: Started NTP client/server.

После:

Jun 03 18:22:47 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:47Z ntp_io_linux.c:811:(NIO_Linux_ProcessMessage) Received 110 (48) bytes from error queue for 2402:>
Jun 03 18:22:47 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:47Z ntp_core.c:2234:(update_tx_timestamp) Updated TX timestamp delay=0.000018729
Jun 03 18:22:47 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:47Z ntp_core.c:1176:(transmit_timeout) Transmit timeout for [106.10.186.200:123]
Jun 03 18:22:47 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:47Z ntp_io.c:906:(NIO_SendPacket) Sent 48 bytes to 106.10.186.200:123 from [UNSPEC] fd 13
Jun 03 18:22:47 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:47Z ntp_io_linux.c:811:(NIO_Linux_ProcessMessage) Received 90 (48) bytes from error queue for 106.10>
Jun 03 18:22:47 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:47Z ntp_core.c:2234:(update_tx_timestamp) Updated TX timestamp delay=0.000033359
Jun 03 18:22:48 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:48Z ntp_core.c:1176:(transmit_timeout) Transmit timeout for [2606:4700:f1::1:123]
Jun 03 18:22:48 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:48Z ntp_io.c:906:(NIO_SendPacket) Sent 48 bytes to 2606:4700:f1::1:123 from [UNSPEC] fd 14
Jun 03 18:22:48 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:48Z ntp_io_linux.c:811:(NIO_Linux_ProcessMessage) Received 110 (48) bytes from error queue for 2606:>
Jun 03 18:22:48 geeklab.localdomain chronyd[14996]: 2020-06-03T12:52:48Z ntp_core.c:2234:(update_tx_timestamp) Updated TX timestamp delay=0.000019594
Спонсор статьи – радиодетали

You may also like

3 комментария

Сергей 29.07.2020 - 17:19

Добрый день.
Там где надо изменить vi /etc/sysconfig/chronyd вы уверены что нужны OPTIONS=”-dd” кавычки?
Так как изначально допустим их нет OPTIONS=-4 .
Спасибо.

Reply
itisgood 30.07.2020 - 09:29

Добрый день, по примерам используются кавычки. Только не как вы указали а, “”.

Reply
Сергей 29.07.2020 - 17:31

Добрый день.
Чтобы включить режим отладки вообще то нужно “compiled with –enable-debug”
Это есть и в https://chrony.tuxfamily.org/doc/3.5/chronyd.html
” When chronyd was compiled with debugging support, this option can be used twice to print also debugging messages.”
Спасибо.

Reply

Leave a Comment