Cacti & Ntp-client [Solved]

Добрый день!

У меня проблема следующего характера:
Стоит сервер, на котором работает, cacti, при этом время на сервере синхронизируется через ntp-client, до поры до времени, cacti работал замечательно (где-то неделю), все графики рисовались. Но однажды, по неведомой мне причине, графики просто перестали рисоваться, рисует только пустую сетку. Полазив, по форумам единственно предполагаемая причина неработоспособности - это то, что cacti "сносит башню" [http://forum.lissyara.su/viewtopic.php?f=3&t=8169] при синхронизации времени через ntp, подскажите пожалуйста, как мне решить эту проблему?
Вот некоторые данные:

/etc/crontab:


# for vixie cron
# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.2 2009/05/12 09:13:46 bangert Exp $

# Global variables
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
59  *  * * *    root    rm -f /var/spool/cron/lastrun/cron.hourly
9  3  * * *     root    rm -f /var/spool/cron/lastrun/cron.daily
19 4  * * 6     root    rm -f /var/spool/cron/lastrun/cron.weekly
29 5  1 * *     root    rm -f /var/spool/cron/lastrun/cron.monthly
*/10  *  * * *  root    test -x /usr/sbin/run-crons && /usr/sbin/run-crons
*/15 * * * *  root /home/clearkbdbuf/sarg.sh > /dev/null
*/5 * * * * cactiuser php /home/www/cacti/poller.php > /var/log/cacti.log  2>&1
#*/120 * * * * root /etc/init.d/ntp-client start > /dev/null

log cacti:

07/16/2009 11:20:02 AM - SYSTEM STATS: Time:1.1487 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 11:15:03 AM - SYSTEM STATS: Time:1.1499 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 11:10:02 AM - SYSTEM STATS: Time:1.1495 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 11:05:02 AM - SYSTEM STATS: Time:1.1527 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 11:00:03 AM - SYSTEM STATS: Time:1.1525 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 10:55:02 AM - SYSTEM STATS: Time:1.1534 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 10:50:03 AM - SYSTEM STATS: Time:1.1535 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 10:45:02 AM - SYSTEM STATS: Time:1.1495 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
07/16/2009 10:40:02 AM - SYSTEM STATS: Time:1.1572 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6 
....
далее все в таком же духе, ни единой ошибки

log графика

RRDTool Command:

/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=-86400 \
--end=-300 \
--title="OfficeServer - Traffic - ppp0" \
--rigid \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit=0 \
--vertical-label="bits per second" \
--slope-mode \
--font TITLE:12: \
--font AXIS:8: \
--font LEGEND:10: \
--font UNIT:8: \
DEF:a="/home/www/cacti/rra/officeserver_traffic_in_9.rrd":traffic_in:AVERAGE \
DEF:b="/home/www/cacti/rra/officeserver_traffic_in_9.rrd":traffic_in:MAX \
DEF:c="/home/www/cacti/rra/officeserver_traffic_in_9.rrd":traffic_out:AVERAGE \
DEF:d="/home/www/cacti/rra/officeserver_traffic_in_9.rrd":traffic_out:MAX \
CDEF:cdefa=a,8,* \
CDEF:cdefd=b,8,* \
CDEF:cdeff=c,8,* \
CDEF:cdefi=d,8,* \
AREA:cdefa#00CF00FF:"Inbound"  \
GPRINT:cdefa:LAST:" Current\:%8.2lf %s"  \
GPRINT:cdefa:AVERAGE:"Average\:%8.2lf %s"  \
GPRINT:cdefd:MAX:"Maximum\:%8.2lf %s"  \
COMMENT:"Total In\:  321.57 MB\n"  \
LINE1:cdeff#002A97FF:"Outbound"  \
GPRINT:cdeff:LAST:"Current\:%8.2lf %s"  \
GPRINT:cdeff:AVERAGE:"Average\:%8.2lf %s"  \
GPRINT:cdefi:MAX:"Maximum\:%8.2lf %s"  \
COMMENT:"Total Out\: 97.91 MB" 

RRDTool Says:

OK

cat cacti.log

07/16/2009 11:50:02 AM - POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval!  The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 1801 seconds have passed since the last poll!
07/16/2009 11:50:03 AM - SYSTEM STATS: Time:1.1500 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:7 RRDsProcessed:6
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02

Подскажите, пожалуйста, как победить эту проблему, потому что без синхронизации времени плохо, а с синхронизацией плохо работает. Может быть кто либо сталкивался, и я не прав, дело вовсе не в синхронизации.

Спасибо, за любую информацию!

Кури в сторону мягкой(или

Кури в сторону мягкой(или плавной) синхронизации времени. У меня такая же фигня была с биллингом на mysql, которому абсолютно также отрывало башню при синхронизации времени(засчитывал трафик 2000 годом). Вот что нашел у себя в ntp.conf:

Цитата:
# Try to use FULL power of slew synchronizing by offing step
tinker step 0

Попробуй добавить эту опцию.

Нейтральность - высшее достижение сознания!

Это в кроне?

Это в кроне?

Прошу прощения

Невнимательно прочитал Ваше сообщение, ща постараюсь исправить!
Спасибо большое за совет!

А как быть с графиками?

Графики после этого следует удалить или они "вылечатся сами"?

Pinkbyte написал(а):Кури в

Pinkbyte написал(а):
Кури в сторону мягкой(или плавной) синхронизации времени. У меня такая же фигня была с биллингом на mysql, которому абсолютно также отрывало башню при синхронизации времени(засчитывал трафик 2000 годом). Вот что нашел у себя в ntp.conf:

Цитата:
# Try to use FULL power of slew synchronizing by offing step
tinker step 0

Попробуй добавить эту опцию.

Опцию добавил, выждал время, графики рисоваться не стали. Удалил графики, пересоздал по новой. Все графики стали рисоваться, кроме трафика по одному из интерфейсов. Кстати cacti.log изменился, теперь там вот что после процедуры сбора значений:

OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.02
OK u:0.00 s:0.00 r:1.03
OK u:0.00 s:0.00 r:1.03
07/16/2009 01:00:02 PM - SYSTEM STATS: Time:1.1547 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:8 RRDsProcessed:7

Вроде бы все работает ок, а результатов нет. Чувствую придется сносить cacti и ставить по новой.

Начали рисоваться

Еще раз удалил графики, на всякий случай рестартанув snmpd (чисто на интуитивном уровне), график трафика начал почеловечески рисоваться. Тока я не понял почему. Мож кто сможет объяснить.

Используй ntpd, он делает

Используй ntpd, он делает плавную подгонку времени.

Не грусти, товарищ! Всё хорошо, beautiful good!

Сначала попробую клиент

Сначала потестирую ntp-client, если возникнут проблемы, я сообщу и буду тогда курить ntpd.
Прошу пока тему не закрывать.

Чего только люди не

Чего только люди не придумают, лиш бы велосипед изобрести. Чем ntpd не подходит ? тем что специально для этого предназначен ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Тем, что он же ж СЛОЖНЫЙ... а

Тем, что он же ж СЛОЖНЫЙ... а людЯм чего попроще хочется... ежели софтина не работает - снес ее, установил по новой, и все auto-magically ;) заработало.
На всех поднятых мной серверах настраиваю три вещи:
раз в сутки в кроне hwclock --systohc - важно понимать, что часы в cmos и часы системы - совсем разные вещи, и на сервере с приличным аптаймом cmos clock могут убежать очень далеко... при штатном выключении или перезагрузке системные часы могут сохраняться в cmos (а могут и не сохраняться - смотря как настроено в /etc/conf.d/clock), но, к сожалению, не всегда перезагрузка происходит штатно... давно устал объяснять одминам с большой буквы О, что если возникает какая-то проблема с сетью, не нужно сразу бежать нажимать reset на маршрутизаторе... мечта: металлическая кнопка Reset, любовно подключенная к катушке Румкорфа ;)
ntp-client - для двойной перестраховки и точной подправки времени. Если сеть есть, в принципе первое вроде и не нужно... Но если reset был нажат, когда сети нет (а оно так часто и бывает!) - время берется из cmos. А там оно за несколько месяцев непрерывного аптайма могло очень далеко уехать! Так что первый пункт важен ;) И второй тоже - после ntp-client время выставлено +- меньше десятой доли секунды, и ntpd уже НЕ СТАНЕТ даже при настройках по умолчанию (там step threshold = 128 ms) менять время "скачком", чего некоторые демоны не переваривают - у меня dovecot от такого падал... сам не перезапускается...
ntpd - для мягкой и плавной подправки времени во время работы системы. Да, протокол NTP - сложный, и лично я вообще не понимаю, как он работает. Но настроить ntpd по своему вкусу мне это не мешает ;) Для тех, у кого особо спиралеобразные руки - если два первых пункта настроены, то ntpd, установленный из gentoo'шного репозитория, вполне нормально работает с ntp.conf, который там по умолчанию... никому не мешает, никого не валит... А для тройной перестраховки можно написать в начале ntp.conf tinker step 0. Или в опциях ntpd в /etc/conf.d/ntpd поставить -x. У меня второе, это по вкусу, там поведение чуть отличается... Тогда ntpd будет делать только slew (или будет делать step только когда время отличается от точного больше чем на 10 минут, в этом разница) - и падать демонам будет не с чего, резких изменений системного времени во время работы нежных демонов не будет.
Достаточно подробно ?-)

OMG, моя голова! 1. vim

OMG, моя голова!
1. vim /etc/conf.d/{hw,}clock
2. Там где нет сети, точное время не нужно. У dovecot кстати статья есть, почему плохо использовать ntp-client
3. Поставить ntpd, запустить ntpd. Сложнее некуда.

Не грусти, товарищ! Всё хорошо, beautiful good!

/

winterheart написал(а):
2. Там где нет сети, точное время не нужно.

Жжошь! :)))
Определение по солнцу и звёздам на отлично? :)))

winterheart написал(а):
У dovecot кстати статья есть, почему плохо использовать ntp-client

Зависит от области применения. ИМХО.

winterheart написал(а):
3. Поставить ntpd, запустить ntpd. Сложнее некуда.

Не для популяризации ли оного в одно время поломали ntp-client? ;)

:wq
--
Live free or die

Anarchist написал(а): Жжошь!

Anarchist написал(а):
Жжошь! :)))
Определение по солнцу и звёздам на отлично? :)))

Если у тебя к компьютеру запитаны атомные часы, можешь сверяться по ним в периоды офлайна. Если ты не можешь обеспечить стабильную работу сети, то точность времени должна быть параллельна.

Не грусти, товарищ! Всё хорошо, beautiful good!

winterheart написал(а):OMG,

winterheart написал(а):
OMG, моя голова!

Голова должна быть. Просто быть.

winterheart написал(а):
1. vim /etc/conf.d/{hw,}clock

Желательно, чтобы к голове прилагались глаза, которыми следует внимательно читать пост. Сильно поможет CLOCK_SYSTOHC="yes", когда reset нажмут?

winterheart написал(а):
2. Там где нет сети, точное время не нужно.

Смешно. Потом сеть появляется, настроенный по умолчанию ntpd делает step секунд на двадцать, и демоны радостно валятся. Сразу непонятно было, что ли?

winterheart написал(а):
У dovecot кстати статья есть, почему плохо использовать ntp-client

А ссылку трудно дать? Впрочем, я не думаю, что там в резюме написано что-то умнее, чем "use the ntpd, Luke"...

winterheart написал(а):
3. Поставить ntpd, запустить ntpd. Сложнее некуда.

Ага. Проще, чем поставить Windows.
А потом он по time source'ам прыгает и локальные часы туда-сюда гоняет. Почему желательно выбрать один сервер поближе и сказать, что он prefer.
А вот с такой проблемой боролся когда-нибудь? Тоже по умолчанию настроено было...
Jul 15 03:11:31 router ntpd[6161]: kernel time sync status change 0001
Jul 15 04:36:50 router ntpd[6161]: kernel time sync status change 4001
Jul 15 04:53:55 router ntpd[6161]: kernel time sync status change 0001
Jul 15 09:10:37 router ntpd[6161]: kernel time sync status change 4001
Jul 15 09:27:08 router ntpd[6161]: kernel time sync status change 0001
Jul 15 12:00:46 router ntpd[6161]: kernel time sync status change 4001
Jul 15 12:17:52 router ntpd[6161]: kernel time sync status change 0001
Jul 15 14:00:20 router ntpd[6161]: kernel time sync status change 4001
Jul 15 14:17:24 router ntpd[6161]: kernel time sync status change 0001
Jul 15 15:08:36 router ntpd[6161]: kernel time sync status change 4001
Jul 15 15:09:13 router ntpd[6161]: kernel time sync status change 0001
Jul 15 19:24:38 router ntpd[6161]: kernel time sync status change 4001
Jul 15 19:41:42 router ntpd[6161]: kernel time sync status change 0001
Не все тут так просто, как кажется. Со всем надо обращаться умеючи. А с ntpd - тем более, внутри он очень сложный.

Сразу видно, ты нифига не

Сразу видно, ты нифига не разобрался в ntpd. И похоже, даже гордишься этим.

Руки тем, кто ресет жмет, пообрывать не пробовал? Говорят, помогает. Причем от многих бед сразу.

ntpd не делает прыжки на 20 секунд назад, потому что его именно для этого и делали. Он делает плавные подстройки времени в течение некоторого времени. И уж подавно он "по time source'ам" прыгать не будет, ибо все стратумы одинаковые с одинаковым (в пределах погрешности) значением времени. ntpd имеет в себе алгоритмы учета времени задержки при опросе серверов и берет усредненные значение всех опрошенных серверов из пула, так что "туда-сюда гонять" часы он тоже не может.

Те, кто использовал dovecot, знают причины. Им об это при падении сам dovecot говорит.

Цитата:
А вот с такой проблемой боролся когда-нибудь? Тоже по умолчанию настроено было...

google ntp ppl fll

Не грусти, товарищ! Всё хорошо, beautiful good!

winterheart написал(а):Сразу

winterheart написал(а):
Сразу видно, ты нифига не разобрался в ntpd. И похоже, даже гордишься этим.

Я офигеваю, дорогая редакция... Ответ тут может быть только один - сходи сюда и посмотрись в зеркало...

winterheart написал(а):
Руки тем, кто ресет жмет, пообрывать не пробовал? Говорят, помогает. Причем от многих бед сразу.

Ню-ню. Мог бы - увольнял бы. После первого reset'а. Не могу.

winterheart написал(а):
ntpd не делает прыжки на 20 секунд назад, потому что его именно для этого и делали. Он делает плавные подстройки времени в течение некоторого времени.

http://www.eecis.udel.edu/~mills/ntp/html/ntpd.html
Under ordinary conditions, ntpd slews the clock so that the time is effectively continuous and never runs backwards. If due to extreme network congestion an error spike exceeds the step threshold, by default 128 ms, the spike is discarded. However, if the error persists for more than the stepout threshold, by default 900 s, the system clock is stepped to the correct value. In practice the need for a step has is extremely rare and almost always the result of a hardware failure.
Читайте доки - они неизменно рулез...
Мне в этом пришлось разбираться, когда после перезагрузки со съехавшими за долгое время cmos-часами Интернет-подключение восстановилось, через несколько минут (судя по приведенному фрагменту, 15) ntpd скачком перевел часы (логи не приведу за давностью события) и dovecot написал в логе, что он обиделся и работать не будет...

winterheart написал(а):
И уж подавно он "по time source'ам" прыгать не будет, ибо все стратумы одинаковые с одинаковым (в пределах погрешности) значением времени.

Jul 19 23:33:50 router ntpd[17450]: synchronized to 194.44.35.24, stratum 1
Jul 19 23:35:58 router ntpd[17450]: synchronized to 62.149.0.30, stratum 1
Вот это вот он не прыгает?
Он выбирает из всех известных ему сервер с минимальным значением погрешности при синхронизации и в дальнейшем синхронизируется с ним. При этом принимаются во внимание задержка ответа сервера и разброс значений задержки. По-моему, минимальный разброс значений задержки важнее всего, но доказать затрудняюсь. У меня один из серверов указан prefer, чтобы ntpd по серверам не бегал...
router ~ # ntpq -pn
remote refid st t when poll reach delay offset jitter
==============================================================================
+192.53.103.108 .PTB. 1 u 255 256 377 81.873 -42.471 17.347
+131.188.3.222 .PPS. 1 u 144 256 377 71.411 -34.340 17.611
+194.44.35.24 .PPS. 1 u 4 256 377 13.982 -34.008 47.675
*62.149.0.30 .GPS. 1 u 12 256 377 13.030 -33.981 48.404
Звездочка - это сервер, по которому мы сейчас синхронизируемся, плюс - кандидат в таковые (на случай, если текущий выбранный внезапно пропадет или параметры ссвязи с ним резко ухудшатся). Еще там может быть минус, здесь нет, здесь все хорошие выбраны ;)

winterheart написал(а):
ntpd имеет в себе алгоритмы учета времени задержки при опросе серверов

Бесспорно.

winterheart написал(а):
и берет усредненные значение всех опрошенных серверов из пула,

К сожалению, не могу привести цитату из документации, не нашел. Но объясните мне, зачем тогда он выбирает один конкретный сервер? А если его параметры ухудшаются, переключается на другой? И вполне понятно об этом пишет в логах? Повторюсь:
Jul 19 23:33:50 router ntpd[17450]: synchronized to 194.44.35.24, stratum 1
Jul 19 23:35:58 router ntpd[17450]: synchronized to 62.149.0.30, stratum 1
При "гуляющих" параметрах канала в Интернет он так может довольно часто делать.

winterheart написал(а):
так что "туда-сюда гонять" часы он тоже не может.

Может-может. Ясно, что там ненамного, но мне как-то не хочется, чтобы именно во время моего отпуска случайный разброс параметров канала заставил ntpd корректировать часы скачком ;) Так что я настраиваю так, чтобы минимизировать вероятность сбоя.

Спасибо

Спасибо, все замечательно описано, все ясно и лаконично, попробую ntpd поднять дополнительно и в крон прописать синхронизацию времени раз в сутки.

Уточнение

ClearKbdBuf написал(а):
и в крон прописать синхронизацию времени раз в сутки.

Не времени, а аппаратных часов.
ntpdate (ntp-client) при загрузке для подстраховки ИМХО тож не помешает.

:wq
--
Live free or die

Да

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

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".