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:
Попробуй добавить эту опцию.
Нейтральность - высшее достижение сознания!
Это в кроне?
Это в кроне?
http://clearkbdbuf.livejournal.com
Прошу прощения
Невнимательно прочитал Ваше сообщение, ща постараюсь исправить!
Спасибо большое за совет!
http://clearkbdbuf.livejournal.com
А как быть с графиками?
Графики после этого следует удалить или они "вылечатся сами"?
http://clearkbdbuf.livejournal.com
Pinkbyte написал(а):Кури в
Опцию добавил, выждал время, графики рисоваться не стали. Удалил графики, пересоздал по новой. Все графики стали рисоваться, кроме трафика по одному из интерфейсов. Кстати cacti.log изменился, теперь там вот что после процедуры сбора значений:
Вроде бы все работает ок, а результатов нет. Чувствую придется сносить cacti и ставить по новой.
http://clearkbdbuf.livejournal.com
Начали рисоваться
Еще раз удалил графики, на всякий случай рестартанув snmpd (чисто на интуитивном уровне), график трафика начал почеловечески рисоваться. Тока я не понял почему. Мож кто сможет объяснить.
http://clearkbdbuf.livejournal.com
Используй ntpd, он делает
Используй ntpd, он делает плавную подгонку времени.
Не грусти, товарищ! Всё хорошо, beautiful good!
Сначала попробую клиент
Сначала потестирую ntp-client, если возникнут проблемы, я сообщу и буду тогда курить ntpd.
Прошу пока тему не закрывать.
http://clearkbdbuf.livejournal.com
Чего только люди не
Чего только люди не придумают, лиш бы велосипед изобрести. Чем 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!
/
Жжошь! :)))
Определение по солнцу и звёздам на отлично? :)))
Зависит от области применения. ИМХО.
Не для популяризации ли оного в одно время поломали
ntp-client
? ;):wq
--
Live free or die
Anarchist написал(а): Жжошь!
Если у тебя к компьютеру запитаны атомные часы, можешь сверяться по ним в периоды офлайна. Если ты не можешь обеспечить стабильную работу сети, то точность времени должна быть параллельна.
Не грусти, товарищ! Всё хорошо, beautiful good!
winterheart написал(а):OMG,
Голова должна быть. Просто быть.
Желательно, чтобы к голове прилагались глаза, которыми следует внимательно читать пост. Сильно поможет CLOCK_SYSTOHC="yes", когда reset нажмут?
Смешно. Потом сеть появляется, настроенный по умолчанию ntpd делает step секунд на двадцать, и демоны радостно валятся. Сразу непонятно было, что ли?
А ссылку трудно дать? Впрочем, я не думаю, что там в резюме написано что-то умнее, чем "use the ntpd, Luke"...
Ага. Проще, чем поставить 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 написал(а):Сразу
Я офигеваю, дорогая редакция... Ответ тут может быть только один - сходи сюда и посмотрись в зеркало...
Ню-ню. Мог бы - увольнял бы. После первого reset'а. Не могу.
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 написал в логе, что он обиделся и работать не будет...
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
Звездочка - это сервер, по которому мы сейчас синхронизируемся, плюс - кандидат в таковые (на случай, если текущий выбранный внезапно пропадет или параметры ссвязи с ним резко ухудшатся). Еще там может быть минус, здесь нет, здесь все хорошие выбраны ;)
Бесспорно.
К сожалению, не могу привести цитату из документации, не нашел. Но объясните мне, зачем тогда он выбирает один конкретный сервер? А если его параметры ухудшаются, переключается на другой? И вполне понятно об этом пишет в логах? Повторюсь:
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
При "гуляющих" параметрах канала в Интернет он так может довольно часто делать.
Может-может. Ясно, что там ненамного, но мне как-то не хочется, чтобы именно во время моего отпуска случайный разброс параметров канала заставил ntpd корректировать часы скачком ;) Так что я настраиваю так, чтобы минимизировать вероятность сбоя.
Спасибо
Спасибо, все замечательно описано, все ясно и лаконично, попробую ntpd поднять дополнительно и в крон прописать синхронизацию времени раз в сутки.
http://clearkbdbuf.livejournal.com
Уточнение
Не времени, а аппаратных часов.
ntpdate (ntp-client) при загрузке для подстраховки ИМХО тож не помешает.
:wq
--
Live free or die
Да
Да, спасибо, я Вас понял правильно с первого раза и как раз имел ввиду синхронизацию системного времени и аппаратных часов.
http://clearkbdbuf.livejournal.com