From: Andrey <bff7755a@mail.ru.>
Newsgroups: email
Date: Mon, 10 May 2007 14:31:37 +0000 (UTC)
Subject: Пишем скрипты для Cacti
Оригинал: unix-blog.com
Пишем скрипты
Рассмотрим, как писать собственные скрипты для Cacti. Для примера я
решил показать, как строить графики температуры процессора и материнской
платы, используя пакет healthd.
Установка healthd
Сразу скажу, что сначала я хотел нужную информацию получать с помощью
mbmon'а. После того, как я поставил его я столкнулся с определенными
трудностями, связанными с smbus. Решения проблемы я пока не нашел, но
скрипт для mbmon'а был уже написан, поэтому я приведу его здесь - он
должен работать. После этого я наткнулся на другую утилиту - healthd и
решил попробовать ее.
Ставить, естественно, будем из портов.
cd /usr/ports/sysutils/healthd
make && make install
Если все прошло успешно, исполняемые файлы теперь находятся в
/usr/local/bin. В пакете на самом деле две программы (в отличие от
mbmon) - клиент и сервер (демон). Они называются healthdc и healthd
соответственно. Конфигурируется сервер при помощи файла
/usr/local/etc/healthd.conf, но мы его трогать не будем, так как все
должно нормально работать в конфигурации по умолчанию.
После того, как мы установили клиент и сервер, сначала необходимо
запустить сервер. Для этого воспользуемся скриптом, который уже
находится в /usr/local/etc/rc.d/.
/usr/local/etc/rc.d/healthd.sh start
Чтобы сервер загружался вместе с системой, нужно добавить следующую
строчку в /etc/rc.conf
healthd_enable="YES"
Теперь можно считать что установка закончена и можно попробовать
запустить клиента.
Клиент healthdc
Как я уже говорил выше, клиент называется healthdc и находится в
/usr/local/bin. Если после установки был сделан rehash, запускаем его
командой
Как видно, вывод команды довольно простой, но информативный. Нам нужны
будут только 2, 3, 5, 6 и 7 поля. Это есть температура материнской
платы, центрального процессора, и текущие скорости вращения трех
вентиляторов охлаждения соответственно.
Пишем скрипт
Писать скрипт будем на Perl. Нужно всего лишь вызвать healthdc без
параметров и разобрать его вывод. У меня получилось вот что
Cacti требует, чтобы значению каждого из полей предшествовало его имя.
Имя и значения каждого поля должны быть отделены друг от друга символом':'.
Я назвал поля TEMP0, TEMP1, FAN0, FAN1 и FAN2 соответственно.
Строим графики
Скрипт готов, теперь можно приступить к самой интересной части
задуманного - построению графиков. Если вы хорошо знакомы с Cacti, этот
раздел можно пропустить. Для остальных процесс превращения цифр,
возращаемых скриптом в красивую картинку я постараюсь описать
поподробнее.
Data Input Method
Сначала нужно добавить новый метод ввода данных (Data Input
Method). Имя методу (Name) можно дать любое, главное потом
самому не запутаться. В качестве Input type здесь нужно указать
"Script/Command", поскольку данные мы будем брать из скрипта. Input
String - команда, которая выполняется с целью добыть драгоценную
информацию. Сюда пишем "perl <path_cacti>/scripts/health_monitor.pl".
Поскольку healthdc не принимает никаких параметров (в нашем
случае), в "Input Fields" ничего не добавляем. Зато выводимых полей
(Output Fields) будет целых 5. Добавим параметры и дадим им
соответствующие имена. После этого метод можно сохранять.
Data Templates
Далее идем в Data Templates и создаем шаблон для данных. Здесь
нужно будет указать все параметры и их характеристики параметров,
которые будут использоваться в этом шаблоне. Имя снова можно задавать
любое, но желательно, чтобы оно совпадало с именем метода ввода данных.
В качестве Data Input Method выбираем метод, который мы только что
создали. Остальные параметры можно оставить со значениями, заданными по
умолчанию. Теперь добавляем информацию о каждом из полей данных. Прежде
всего даем им разумные имена (Temp0, Temp1 и так далее). Минимальное и
максимальное значение для температур я задал 0 и 90 C. Для кулеров
максимальное значение можно задать в районе 4000-5000. Data Source
Type - "Gauge". Шаблон для дынных готов.
Graph Templates
После этого можно создавать шаблоны для графиков. У нас их будет 2 - для
температур и скоростей вращения кулеров соответственно. Тут все просто.
Добавляем 2 области типа AREA (цвета по вкусу) для первого, и 3
таких же для второго шаблона.
Графики
Вот и все. Можно считать, что вся работа сделана. Теперь осталось только
нажать New Graphs и создать 2 графика на основе только что
описанных шаблонов.
Готовые шаблоны
На всякий случай выкладываю готовые xml-шаблоны для графиков cacti.
Шаблон для кулеров (копия)
Шаблон для температур (копия)
Ссылки
Официальный сайт Cacti
Форум пользователей Cacti
Коллекция шаблонов для Cacti