Cacti не пересчитывает индексы.

Автор B@F, 26 Апреля 2012, 13:50

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

B@F

Здравствуйте.

Имеется сервер Cacti. Он собирает информацию по загрузке каналов, строит графики, генерирует отчеты о повышенной загрузке канала. Все это работает, но.... В кактусе существует понятие индексов. Т.е. при создании обьекта(роутера или свича), что бы кактус знал о существовании у роутера или свича сетевых интерфейсов и их данных добавляется в Associated Data Queries пункт SNMP - Interface Statistics. У этого пункта есть 3 метода реиндекса. И кнопочка принудительного реиндекса. Вот эту кнопочку мне и нужно нажимать автоматически, к примеру раз в сутки. Кнопочка имеет такую ссылку:

http://10.190.42.17/host.php?action=query_reload&id=1&host_id=86
Моя идея такая: запускать это из крона, но тогда как? Я в php вабще ноль   http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/sad.gif\' class=\'bbc_emoticon\' alt=\':(\' /> . Т.е. в кактусе надо аутенфицироваться, всякие куки муки. Может кто что подскажет?

Поправьте, если я ошибаюсь, буду тока рад.

hedgeven

26 Апреля 2012, 21:20 #1 Последнее редактирование: 26 Апреля 2012, 21:20 от hedgeven
вероятно curl в связке с bash может вам помочь.
Jah will give us everything...

B@F

Все оказалось куда проще. В куктусе все передусмотрено:

php -q /usr/share/cacti/cli/poller_reindex_hosts.php --help
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
Cacti Reindex Host Script 1.2, Copyright 2004-2009 - The Cacti Group

usage: poller_reindex_hosts.php --id=[host_id|All] [--qid=[ID|All]] [--host-descr=[description]]
                           [-d] [-h] [--help] [-v] [--version]

--id=host_id             - The host_id to have data queries reindexed or 'All' to reindex all hosts
--qid=query_id           - Only index on a specific data query id; defaults to 'All'
--host-descr=description - The host description to filter by (SQL filters acknowledged)
--debug                  - Display verbose output during execution
-v --version             - Display this help message
-h --help                - Display this help message

Единственное ограничение, запускаться этот скрипт должен в то время, когда poller/spine не работают. Т.е. в промежутке. К сожалению у меня за 5 минут не успевает проидексится все устройства и spine выдает ошибьку по оставшимся. Буду думать что с этим делать.

Поправьте, если я ошибаюсь, буду тока рад.

НаРазДва

Привет. У тебя постоянно меняется количество интерфейсов на роутере?

B@F

03 Мая 2012, 20:07 #4 Последнее редактирование: 03 Мая 2012, 20:09 от B@F
Цитата: НаРазДва от 03 Мая 2012, 09:54Привет. У тебя постоянно меняется количество интерфейсов на роутере?
И это бывает. Для этого есть в настройках специальный метод Index Count Changed:

Refers to a change of the number of indexed items, e.g. interfaces, without checking sysUptime.
It is of particular interest in cases, where indexed entries may change without the need of a reboot.
As modern operating systems seldom require reboots for system configuration changes, you may want to
consider this setting for many cases (e.g. creating of a new filesystem without a reboot). The index to be
considered is defined by the according XML file.

Меня же больше интерисует параметр ifSpeed. В конфигурации cisco это bandwich. Вот он меняется с завидной периодичностью. Именно этот параметр в терминологии кактуса ifSpeed.

poller_reindex_hosts.php с параметром --id=All у меня выполняется долше 5 минут. В результате поллер выдает ошибку. Вот не пойму как заставить поллер не выполняться в этот момент, а лучше как ускорить poller_reindex_hosts.php.
Поправьте, если я ошибаюсь, буду тока рад.

НаРазДва

Цитата: B@F от 03 Мая 2012, 20:07И это бывает. Для этого есть в настройках специальный метод Index Count Changed:

Refers to a change of the number of indexed items, e.g. interfaces, without checking sysUptime.
It is of particular interest in cases, where indexed entries may change without the need of a reboot.
As modern operating systems seldom require reboots for system configuration changes, you may want to
consider this setting for many cases (e.g. creating of a new filesystem without a reboot). The index to be
considered is defined by the according XML file.

Меня же больше интерисует параметр ifSpeed. В конфигурации cisco это bandwich. Вот он меняется с завидной периодичностью. Именно этот параметр в терминологии кактуса ifSpeed.

poller_reindex_hosts.php с параметром --id=All у меня выполняется долше 5 минут. В результате поллер выдает ошибку. Вот не пойму как заставить поллер не выполняться в этот момент, а лучше как ускорить poller_reindex_hosts.php.

ну попробуй в кронтабе такие изменения внести
*/5 * * * * /usr/bin/sudo -u httpd/us/bin/php -q /usr/share/cacti/cli/poller_reindex_hosts.php --id=All > /dev/null 2>&1 || /usr/bin/sudo -u http /usr/bin/php /srv/http/cacti/poller.php > /dev/null 2>&1

тут получается будет выполняется реиндекс, потом выполняется поллер. Но может начаться получаться каша http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />.

B@F

Цитата: НаРазДва от 05 Мая 2012, 20:48ну попробуй в кронтабе такие изменения внести
*/5 * * * * /usr/bin/sudo -u httpd/us/bin/php -q /usr/share/cacti/cli/poller_reindex_hosts.php --id=All > /dev/null 2>&1 || /usr/bin/sudo -u http /usr/bin/php /srv/http/cacti/poller.php > /dev/null 2>&1

тут получается будет выполняется реиндекс, потом выполняется поллер. Но может начаться получаться каша http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />.
Оеей. Этого делать нельзя. Во время реиндекса идет большая нагрузка на устройство опроса и забивается сеть. snmp то работает все по тем же каналам что и трафик. Реиндекс я решил делать не чаще 1 раза в сутки глубокой ночью где-то между 4 - 5 часами. Примерно так
for a in 7 8 9 11 ...
do
php -q /usr/share/cacti/cli/poller_reindex_hosts.php --id=$a >> файл лога  2>&1
done
Разобью его на несколько этапов, да бы не грузить сильно сеть. Да + к тому серваки реиндаксить не нужно, у них все статично.
TEST=`ps -Af|grep php`

$TEST

if [ $? = 0 ] ; then

    exit 0

fi

php /srv/http/cacti/poller.php >> файл лога  2>&1
Пока я тока придумал это, возможно сейчас тут сделал ошибку, если что поправьте, т.к. потом когда приду на работу возьму это за основу. Решение не очень мне нравится, но другого я не вижу пока.

Мне кажется существует более корректный способ в кактусе, но пока я его не знаю.
Поправьте, если я ошибаюсь, буду тока рад.

НаРазДва

Цитата: B@F от 06 Мая 2012, 09:53Оеей. Этого делать нельзя. Во время реиндекса идет большая нагрузка на устройство опроса и забивается сеть. snmp то работает все по тем же каналам что и трафик. Реиндекс я решил делать не чаще 1 раза в сутки глубокой ночью где-то между 4 - 5 часами. Примерно так
for a in 7 8 9 11 ...
do
php -q /usr/share/cacti/cli/poller_reindex_hosts.php --id=$a >> файл лога  2>&1
done
Разобью его на несколько этапов, да бы не грузить сильно сеть. Да + к тому серваки реиндаксить не нужно, у них все статично.
TEST=`ps -Af|grep php`

$TEST

if [ $? = 0 ] ; then

    exit 0

fi

php /srv/http/cacti/poller.php >> файл лога  2>&1
Пока я тока придумал это, возможно сейчас тут сделал ошибку, если что поправьте, т.к. потом когда приду на работу возьму это за основу. Решение не очень мне нравится, но другого я не вижу пока.

Мне кажется существует более корректный способ в кактусе, но пока я его не знаю.

можно сделать скрипт для запуска полера, и скрипт для запуска реиндекса. Блокировку одного скрипта при выполнении другого, можно сделать через общий файл или наличию процесса.
Тут  хозяин - барин. Другой вопрос зачем так извращаться над кактусом? Если он не справляется - возьмите что-нибудь по производительнее его, например, тот же забикс, да есть куча еще свободных решений промышленного уровня, ну или где-то рядом. Ну ненормально это когда нужна постоянная реиндексация тем более в кактусе.

B@F

Цитата: НаРазДва от 08 Мая 2012, 19:31можно сделать скрипт для запуска полера, и скрипт для запуска реиндекса. Блокировку одного скрипта при выполнении другого, можно сделать через общий файл или наличию процесса.
Тут  хозяин - барин. Другой вопрос зачем так извращаться над кактусом? Если он не справляется - возьмите что-нибудь по производительнее его, например, тот же забикс, да есть куча еще свободных решений промышленного уровня, ну или где-то рядом. Ну ненормально это когда нужна постоянная реиндексация тем более в кактусе.
То то и оно, что кактус вообще не напрягается. Загрузка всегда не больше 0.5 . Извращение это оно самое. Вот я и хочу по нормальному сделать, но в не знаю как.   http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/unsure.gif\' class=\'bbc_emoticon\' alt=\':unsure:\' />

ZABBIX -- свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети,
серверов и сетевого оборудования, написанная Алексеем Владышевым Для хранения данных используется MySQL, PostgreSQL,
SQLite или Oracle.
Cacti -- open-source веб-приложение, система позволяет строить графики при помощи RRDtool. Cacti собирает статистические
данные за определённые временные интервалы и позволяет отобразить их в графическом виде.
Выдержки из википедия. Мне нужна загрузка каналов и больше ничего. У меня нет ни единого сервиса, который мне нужно мониторить, так зачем мне забикс? До этого был MRTG, но в силу его не функциональности пришлось начать отказываться. Кактус устраивает полностью. Потому не вижу ни каких причин отказа от него.
Поправьте, если я ошибаюсь, буду тока рад.

НаРазДва

Цитата: B@F от 08 Мая 2012, 21:25То то и оно, что кактус вообще не напрягается. Загрузка всегда не больше 0.5 . Извращение это оно самое. Вот я и хочу по нормальному сделать, но в не знаю как.   http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/unsure.gif\' class=\'bbc_emoticon\' alt=\':unsure:\' />

ZABBIX -- свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети,
серверов и сетевого оборудования, написанная Алексеем Владышевым Для хранения данных используется MySQL, PostgreSQL,
SQLite или Oracle.
Cacti -- open-source веб-приложение, система позволяет строить графики при помощи RRDtool. Cacti собирает статистические
данные за определённые временные интервалы и позволяет отобразить их в графическом виде.
Выдержки из википедия. Мне нужна загрузка каналов и больше ничего. У меня нет ни единого сервиса, который мне нужно мониторить, так зачем мне забикс? До этого был MRTG, но в силу его не функциональности пришлось начать отказываться. Кактус устраивает полностью. Потому не вижу ни каких причин отказа от него.

Ну переиндексация интерфейсов у девайсов в какте мне понадобилась, вспомнить бы точно, давно было http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' /> - после переустановки оси, с присвоением ей старого апишника и поднятия снмп.
Вроде так. Кактус прост, и если ему требуется раз в сутки такая операция - что-то тут не так... ну ИМХО.

Насчёт забикса это пример, есть еще куча других аналогичных кактусу систем.

B@F

Цитата: НаРазДва от 11 Мая 2012, 17:12Вроде так. Кактус прост, и если ему требуется раз в сутки такая операция - что-то тут не так... ну ИМХО.
Раз в сутки может и не требуется, просто периодически раз в месяц или раз в год, на каком-нибудь сабинтерфейсе, на какой-нибудь железке меняется скорость. А у меня настроено, что если порог превысит 92% то плагин Thold генерирует аварию, ну и дальше на что душе угодна. Можно на ящик, можно на джабер, можно на телефон смс. Но если кактус не будет знать, что скорость интерфейса поменялась, то он и не правильно посчитает значения в %, не числовые, с этим проблем нет. Информацию о скорости интерфейса он берет с самого интерфейса, не вручную, т.к. У него есть известный баг DS_MAX в некоторых формулах не работает. Поэтому у меня такая формула: cdef=CURRENT_DATA_SOURCE,8,*,|query_ifSpeed|,/,100,*

В этом случаи на 8 можно не множить, ну да ладно, сути дела не меняет. query_ifSpeed=бандвичу интерфейса получаемому с устройства по протоколу snmp. И что бы кактус перечитал этот параметр,после того как админ изменил скорость, приходится делать переидексацию. В идеале только этого параметра. Все это нужно автоматизировать. Т.е. Админ поменял скорость, к примеру с 256К на 512К, и кактус автоматически пересчитал проценты. Иначе это нужно делать вручную админу, который поменял скорость, а у него доступа в админку кактуса нету. Поэтому проще всего взять скрипт и запускать раз в сутки.

Поправьте, если я ошибаюсь, буду тока рад.

НаРазДва

Для запуска скриптов в нужное время использовал такой приём, создавал пользователя, кидал в его хоум - скрипт, делал ему права пользователя и записывал в строку юзера в место /bin/bash - /home/user/имя_скрипта. Таким образом, логнясь на сервак под этим пользователем - выполняется скрипт. Делал такую возможность резервного копирования для чела которому в систему дорожка была закрыта. В твоём случае схожая ситуация. Админ сервера - внёс изменения - залогинился на кактус - запустил реиндексацию.

B@F

Цитата: НаРазДва от 13 Мая 2012, 20:14Для запуска скриптов в нужное время использовал такой приём, создавал пользователя, кидал в его хоум - скрипт, делал ему права пользователя и записывал в строку юзера в место /bin/bash - /home/user/имя_скрипта. Таким образом, логнясь на сервак под этим пользователем - выполняется скрипт. Делал такую возможность резервного копирования для чела которому в систему дорожка была закрыта. В твоём случае схожая ситуация. Админ сервера - внёс изменения - залогинился на кактус - запустил реиндексацию.
Клевый приемчик, запомню, но врятли поможет, хотя подумаю, т.к. если так будут пара трейка админов реиндаксить постоянно в течении дня, то загнется не только кактус, но и железки, которые этот кактус мониторит. Да и не станут они этого делать, как правило работы километр и еще какому-то кактусу чет там делать, с таким успехом я их быстрей научу через веб это делать. Необходимо атоматом, без участия человека.

Поправьте, если я ошибаюсь, буду тока рад.