Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » Cacti для нестандартных объектов

 

Cacti для нестандартных объектов

 

 

Cacti

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

Рассмотрим реальную задачу. Есть большая сеть, разбитая маршрутизаторами* на более мелкие подсети.

загрузка...

 

 

Необходимо отслеживать, сколько пользователей обслуживается каждым маршрутизатором и сколько из них блокированы за неуплату. В нашем распоряжении база данных биллинга, в которой есть таблица, где каждой машине поставлен в соответствие IP-адрес маршрутизатора.

Для начала создается скрипт*, который сможет вывести в консоль требуемые величины в формате name1:value1 name2:value2 (количество переменных может быть любым) в зависимости от переданного ему параметра.

Скрипт сбора статистики

<?php
# Подключение к базе данных
$db = mysql_connect ('host', 'login', 'pass');
mysql_select_db ('database', $db);
# Аргумент, переданный скрипту
$router = $_SERVER['argv'][1];
# Запрос-выборка общего количества клиентов
$clients = mysql_query('select count(*) from clients where router="'.$router.'"');
# Запрос-выборка количества блокированных клиентов
$blocked = mysql_query('select count(*) from clients where router="'.$router.'"
and blocked=1');
# Обработка результатов
$clients = mysql_fetch_row($clients);
$blocked = mysql_fetch_row($blocked);
# Вывод результата
printf('clients:%d blocked:%d', $clients, $blocked);
?>

Этот скрипт логичнее всего будет поместить в папку scripts директории, в которую установлена Cacti. Далее он тестируется вручную. При вызове из командной строки он должен возвратить требуемый результат (не забудьте передать ему обязательный аргумент — IP-адрес маршрутизатора):

user@server $ /usr/bin/php -q /home/www/cacti/scripts/routers.php 10.1.0.22
clients:315 blocked:29
<samp>user@server $

Создание метода сбора данных

Когда скрипт сбора данных готов, следует привязать его к Cacti. Для этого переходим к методам сбора данных (Data Input Methods). Щелкая по ссылке Add, создаем новый метод. Заполняем поля:

  • Name — это описание, которое будет вам понятно. В нашем случае логично будет написать Router: Clients, Blocked.
  • Input Type — способ получения данных. Выбираем Script/Command.
  • Input String — командная строка. Сюда следует ввести команду, которой мы тестировали скрипт, заменив обязательный параметр на имя переменной в угловых скобках: /usr/bin/php -q /home/www/cacti/scripts/routers.php <router>.

Далее нажимаем кнопку Create и замечаем, что к форме добавились две таблицы: Input Fields и Output Fields. Первая — это параметры, передаваемые скрипту. Вторая — переменные, возвращаемые скриптом. Нажимаем Add в таблице Input Fields и заполняем форму:

  • Field [Input] — выпадающий список, в котором перечислены все переменные, передаваемые скрипту. Они берутся из строки, которую мы ввели как команду в предыдущей форме. В нашем случае там только один пункт — router. Его и следует выбрать.
  • Friendly Name — описание данного параметра. Пишем Router IP.

Остальные поля для нас не важны, за исключением разве что галочки Allow Empty Input — разрешить запуск скрипта без данного параметра (но тогда нужно было в самом скрипте предусмотреть обработку подобной ситуации!). Снова нажимаем Create и возвращаемся в свойства этого метода ввода данных. Переходим к таблице Output Fields, нажимаем там Add и заполняем ее форму:

  • Name — имя возвращаемого значения. Указываем clients (должно совпадать с возвращаемым скриптом параметром, однако если он один, то допускается любое).
  • Friendly Name — его описание. В нашем случае — Clients count.
  • Галочка Update RRD File символизирует о том, что этот параметр следует отслеживать, а не игнорировать (возможен случай, когда часть параметров, возвращаемых скриптом, неинтересна в плане мониторинга).

Сохраняем и повторяем то же для переменной blocked с описанием Blocked clients count. На этом редактирование метода ввода данных окончено, остается только нажать кнопку Save.

Метод сбора данных

Создание шаблона хранилища данных

Далее переходим к шаблонам хранения данных (Data Templates) — создаем новый, заполняем поля. В таблице Data Templates:

  • Name — имя, которое будет отображаться. К примеру — Router stats.

Далее таблица Data Source — это хранилища данных. Обратите внимание — здесь появляются напротив каждого поля галочки Use Per-Data Source Value. Если мы ее установим, то используемое значение можно будет впоследствии изменить уже непосредственно при создании того или иного объекта на основе этого шаблона.

  • Name — так будут называться хранилища статистики. Пишем Router stats: Clients, Blocked.
  • Data Input Method — из выпадающего списка выбираем созданный нами ранее метод ввода данных: Router: Clients, Blocked.

Оставшиеся поля таблицы Data Source оставляем как есть. Табличка Data Source Item содержит описание отслеживаемой переменной — одной или нескольких.

  • Internal Data Source Name — внутреннее название отслеживаемой переменной. Указываем blocked.

Нажимаем Create и видим результат: в эту табличку добавилась строка Output Field и появилась таблица Custom Data.

  • В выпадающем списке поля Output Field можно увидеть переменные и их описания, которые мы задавали в методе ввода данных. Поскольку внутреннее название переменной мы дали blocked — выбираем из списка соответствующую величину blocked — Blocked clients count.
  • Поля Minimum Value и Maximum Value позволяют задать пределы изменения отслеживаемой величины — если она выйдет за эти рамки, то на графике будет пробел.
  • В Data Source Type выбираем GAUGE — это значит, что величина будет записываться «как есть». Если бы мы выбрали COUNTER — записывалась бы разница между прошлым и текущим ее состоянием.
  • Heartbeat оставляем как есть — это своеобразная внутренняя перестраховка Cacti от зависания.

Далее в этой же таблице нажимаем New — и появляется второе внутреннее хранилище. Заполняем аналогично первому, только имя даем ему clients и, соответственно, Output Field выбираем clients — Clients count. Кроме того, Cacti по умолчанию проставляет максимальное значение параметра в 100, поэтому будьте внимательны и лучше установите его в ноль, чтобы не было потом недоразумений. Далее заполняем таблицу Custom Data — она содержит пользовательские данные, передаваемые скрипту (если таковые требуются, и в нашем случае они требуются). Поскольку у нас в методе сбора данных только один параметр передается скрипту, то в этой таблице только одно поле, названное, как и наш комментарий к данному параметру: Router IP. Вот здесь однозначно следует установить галочку Use Per-Data Source Value — чтобы мы могли задать этот параметр отдельно для каждого хранилища (то есть чтобы собирать информацию одновременно с нескольких маршрутизаторов), и в качестве значения по умолчанию можно ввести, к примеру, 10.1.0. (допустим, что все наши маршрутизаторы находятся в подсети 10.1.0.0/24). Редактирование окончено, нажимаем Save и сохраняем сделанные настройки.

Шаблон хранилища данных

Создание шаблона графика

Переходим к шаблонам графиков — Graph Templates. Снова создаем новый шаблон. В таблице Template даем ему имя (Name) — Router graph: Clients, Blocked. Заполняем таблицу Graph Template.

  • Title — это заголовок, который будет отображен над графиком. Ставим его значение по умолчанию в Router 10.1.0.: Clients, Blocked и ставим галочку Use Per-Graph Value, чтобы можно было отдельно для каждого графика указать, к какому маршрутизатору он относится.
  • Поле Vertical Label — метка оси ординат, установим в Clients (не в попугаях же нам измерять количество клиентов).

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

Щелкаем Create, и у нас появляются две дополнительные таблицы. Graph Template Items задает внешний вид графика: каждый элемент этой таблицы — это отдельный отображаемый объект, будь то график, либо подпись, либо комментарий. Graph Item Inputs указывает, из каких хранилищ берется информация для создания графика. Начнем с Graph Template Items — нажимаем Add и начинаем заполнять открывшуюся таблицу.

  • Data Source — источник данных. Для начала берем Router stats — (clients).
  • Color — выбираем цвет, которым он будет отображаться.
  • Graph Item Type — тип объекта. Пусть это будет AREA — кривая с закрашенной областью под ней. Можно было выбрать LINE1-LINE3 — это линии разной толщины. Значение COMMENT — это статический текст, HRULE, VRULE — соответственно горизонтальная или вертикальная линии, координаты которых задаются в поле Value этой же таблицы, GPRINT — какая-либо функция от отслеживаемой величины с комментарием (например, максимальное значение).
  • Consolidation Function — какое из значений отображать на графике. Выбираем AVERAGE — среднее значение.
  • CDEF Function — математическое преобразование, применяемое к значению. В нашем случае выбирать ничего не нужно.
  • Value, соответственно, тоже оставляем пустым, поскольку данный параметр не является ни вертикальной, ни горизонтальной линией.
  • Аналогично поступаем с GPRINT Type.
  • Text Format — легенда к графику. Впишем туда Clients — на графике внизу появится маленький квадратик выбранного цвета с подписью Clients.
  • Галочка Insert Hard Return говорит о том, что после этого текста следует поставить перевод строки.

Нажимаем Create и аналогичным образом создаем кривую для заблокированных клиентов, выбрав для нее тип, к примеру LINE1. Кроме того, отобразим на графике текущее значение отображаемой величины. Для этого создадим еще четыре объекта для тех же источников данных, только с типом GPRINT и Consolidation Function — LAST и MAX. Поскольку наши величины — целые числа, то GPRINT Type выберем Exact Numbers.

В таблице Graph Template Items вы можете расставить очередность наложения объектов, то есть какой график будет поверх какого рисоваться или как будут следовать надписи друг за другом. Здесь широкое поле для экспериментов, поскольку все вносимые изменения можно сразу же видеть на графике, если таковой уже заведен. Табличка Graph Item Inputs заполнилась автоматически, и ее трогать не нужно.

Шаблон графика

Создание графиков

Заключительный этап — создание графиков. Заводим новое устройство с адресом 127.0.0.1 и именем, к примеру, Routers Info. Шаблон хоста устанавливаем в none и SNMP-community не прописываем вообще. Далее в таблицу связанных с устройством шаблонов графиков Associated Graph Templates добавляем шаблон Router graph: Clients, Blocked и переходим по ссылке Create Graphs for this Host. Из таблички Graph Template выбираем единственный и нажимаем Create, после чего у нас появляется возможность вручную задать все то, что было ранее отмечено галочками Use Per-Graph Value, — заголовок графика и IP-адрес маршрутизатора. Прописываем туда нужные параметры, нажимаем Save и, если нужно, повторяем процедуру, пока не создадим графики для всех маршрутизаторов.

Теперь осталось только добавить созданные графики или устройство в нужное место дерева графиков и дождаться, пока система создаст хранилища и начнет в них вести запись.

В этой статье автор попытался на простом примере показать механизм расширения возможностей системы Cacti для мониторинга любой нестандартной величины. Подключив фантазию, вы сможете практически неограниченно расширить возможности сбора информации с любых объектов и систем. Все в ваших руках!

Ссылки по теме




Статья получена: hostinfo.ru
загрузка...

 

 

Наверх


Постоянная ссылка на статью "Cacti для нестандартных объектов":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

Предоставление в аренду объектов незавершенного строительства: правовые и налоговые последствия для арендодателя

Материал предоставлен юридической фирмой Ардашев и партнеры / / Довольно часто компании и индивидуальные предприниматели, не дожидаясь ввода в эксплуатацию объектов недвижимого имущества, возводимых хозяйственным способом, либо в соответствии с договором долевого участия в строительстве, в целях извлечения экономических выгод предоставляют такие объекты в аренду заинтересованным лицам на возмездной основе. Гордон Максим Владимирович Наш опыт налогового консультирования показ ...

» Юриспруденция и Право - 3022 - читать


Применение нестандартного договора хранения для споров с налоговыми органами

О сновные принципы договора хранения определены в гл. 47 ГК РФ. Так, согласно ст.

» Бухгалтерия и аудит - 7144 - читать


Ростовские девелоперы выбирают места для размещения своих объектов под присмотром иностранных операторов

Осенью 2007 г. Rezidor Hotel Group разорвала контракт с ростовским « Ренессанс-Доном», владеющим гостиницей «

» Недвижимость регионов - 1618 - читать


Сочинскую территорию зачищают для строительства объектов к 2014 году

В Адлерском районе Сочи вчера началось принудительное выселение 22 семей, незаконно проживающих в двух домах в Имеретинской низменности. На участке, где стоят дома, запланировано строительство гостиничного комплекса, нескольких развлекательных центров и яхт-клуба для Олимпиады-2014. Решение о выселении 52 жителей принято Адлерским районным судом.

» Загородная недвижимость - 1431 - читать


Теория правильного выбора имени для объекта недвижимости

В настоящее время на карте Москвы и Подмосковья можно встретить самые разнообразные названия жилых комплексов и коттеджных поселков: " Сказка", " Риверсайд", "

» Загородная недвижимость - 1803 - читать



Статья на тему Интернет » Интересное в сети » Cacti для нестандартных объектов

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru