[возможности Cacti и ее начальная настройка]материал подготовил: Андрей Бородийчук 12.05.2006
Любая система, предназначенная для решения серьезных задач, требует обязательного наблюдения за ее работой, анализа эффективности и тщательного разбора полетов в случае успеха либо неудачи внедрения того или иного новшества, изменения конфигурации. Это возможно лишь в том случае, когда у вас есть подробная информация о том, «как это было раньше» и «как это есть сейчас», то есть о состоянии системы в различные моменты времени.
Свободнораспространяемая система Cacti была создана специально для решения подобных задач. Она предоставляет пользователю удобный веб-интерфейс* к утилите RRDTool, предназначенной для работы с круговыми базами данных (Round Robin Database), которые используются для хранения информации об изменении одной или нескольких величин за определенный промежуток времени.
RRDTool — промышленный стандарт мониторинга
интерфейс отображения статистики, собранной с сетевых устройств, представлен в виде дерева, структура которого задается самим пользователем. Как правило, графики группируют по определенным критериям, причем один и тот же график может присутствовать в разных ветвях дерева (например, трафик через сетевой интерфейс сервера — в той, которая посвящена общей картине интернет-трафика компании, и в ветви с параметрами данного устройства). Есть вариант просмотра заранее составленного набора графиков, и есть режим предпросмотра. Каждый из графиков можно рассмотреть отдельно, при этом он будет представлен за последние день, неделю, месяц и год. Возможно самому выбрать временной промежуток, за который будет сгенерирован график, причем сделать это можно, как указав календарные параметры, так и просто выделив мышкой определенный участок на нем.
Широкие возможности настройки пользовательского интерфейса
Для установки Cacti на Unix-машине потребуется веб-сервер*Apache, настроенный на работу с PHP. Скриптам веб-интерфейса нужно будет запускать внешние программы от имени веб-сервера, поэтому защищенный режим (Safe Mode) PHP должен быть отключен и обязательно должен присутствовать исполняемый файл интерпретатора PHP (как правило, /usr/bin/php или /usr/local/bin/php). Следует обязательно установить пакеты RRDTool и Net-SNMP* и, если Apache запущен в chroot-окружении, придется позаботиться о доступности их файлов и библиотек для сервера. Настройка веб-сервера заключается лишь в создании виртуального хоста (если это требуется) и в обеспечении ему доступа к директории с Cacti. Кроме этого понадобится база данных MySQL, в которой Cacti будет хранить свою конфигурацию. Достаточно создать ее, завести пользователя и импортировать начальную структуру (подробные команды для всех этих действий есть в инструкции по установке). Разработчики Cacti рекомендуют завести отдельного пользователя, от имени которого будут запускаться скрипты Cacti. Как показала практика, в качестве него лучше взять пользователя, от имени которого работает Apache (обычно это www, apache или httpd). Важный момент — нужно установить его владельцем папок rra и log в директории Cacti. И от имени этого же пользователя следует запускать сборщик статистики из системного планировщика.
Установка Cacti на Unix-сервер
Далее следует сконфигурировать компьютер, за которым будет вестись наблюдение. На нем также следует установить пакет Net-SNMP. Далее создается файл конфигурации SNMP-демона. Его расположение может меняться в зависимости от дистрибутива. Следует ориентироваться на /etc/snmpd.conf, /etc/snmpd/snmpd.conf, /usr/local/etc/snmpd/snmpd.conf. Если вы впервые сталкиваетесь с конфигурацией SNMP, то можете ограничиться одной строкой в этом файле: rocommunity MyReadonlyCommunity (название вашего readonly-community используется в качестве пароля). Затем нужно запустить snmpd и поставить его в автозагрузку.
Прежде чем настраивать Cacti, следует понять логику ее работы. Система обслуживает ряд устройств (Devices — в терминологии Cacti). Каждое устройство — это хост, к которому есть доступ по сети, то есть оно характеризуется IP-адресом или DNS-именем. С устройством ассоциированы хранилища данных (Data Sources). Каждое такое хранилище обслуживает один график (Graph), причем на этом графике может рисоваться несколько переменных — хранилище для них всех будет одно. Хранилище создается на основе шаблона данных (Data Template), который задает соответствие входных величин (полученных из SNMP-запросов или из скриптов) полям в базе данных и устанавливает дополнительные параметры хранения этих величин. Сами же входные величины получаются из методов сбора данных (Data Input Methods) или запросов (Data Queries). Первые предназначены для величин, количество которых заранее известно (например, количество процессов — это всегда одно целое число), а вторые — наоборот (например, статистика с сетевых интерфейсов, число которых может быть различным). График генерируется из круговой базы данных (хранилища) каждый раз заново, когда загружается страничка. Алгоритм и параметры его создания задаются шаблоном графика (Graph Template). Шаблоны хостов (Host Templates) упрощают работу с однотипными устройствами и позволяют привязать определенные шаблоны графиков и запросы к данному типу хоста. Например, для маршрутизаторов Cisco — один набор графиков, а для UNIX-серверов — другой.
Настройка объекта мониторинга
Настройку Cacti следует начинать с создания устройств. Следует обратить внимание на то, чтобы везде были правильно прописаны SNMP community, — без этого просто невозможно будет снять статистику. Как для локального, так и для удаленного хоста следует выбрать шаблон «ucd/net SNMP Host». После создания устройства на странице с его свойствами появятся таблицы с запросами и шаблонами графиков. Если в графе Status запросов нажать на зеленый кружок (обновить запрос), можно прочитать сообщение вида «Success [46 Items, 7 Rows]». Это значит, что Cacti удается снимать информацию с данного устройства этим запросом. Если будет «Success [0 Items, 0 Rows]», то, очевидно, этот запрос не подходит к данному хосту. Ориентируясь на это, можно самостоятельно добавлять запросы к данному устройству и смотреть — подойдут они или нет. Главное — если вы добавите запрос, ориентированный не на SNMP, а на локальный скрипт, например «Unix — Get mounted partitions», то он и будет снимать показания с локальной машины, а не с удаленного устройства, так что потом не удивляйтесь, откуда на управляемом коммутаторе взялся жесткий диск объемом 160 гигабайт и почему он заполнен на 70%.
В самом верху странички со свойствами устройства должна появиться ссылка Create graphs for this host. Нажмите на нее, и вам предложат выбрать, какие графики следует создать для данного хоста. Отметьте нужные галочками, и система сама сделает все необходимое.
Остается настроить дерево графиков (Graph Tree). Создайте структуру, которая логически сгруппирует ваши графики, например по расположению хостов (первый дата-центр, второй, третий), по типу устройств (хостинг-серверы, серверы баз данных, управляемые коммутаторы) или по типу графиков (трафик, загрузка процессоров, использование жестких дисков). В узел дерева можно поместить как хост (тогда при его выборе будут отображаться все графики, относящиеся к этому хосту), так и любой из графиков, которые обслуживает система.