По-умолчанию система мониторинга CACTI доступна по адресу http://domain.xx/cacti/, т.е. с точки зрения web-сервера /cacti/ — является алиасом. Этот факт немного не удобен тем, что логи при обращении к /cacti/ будут сыпаться в общую кучу с логами домена. Конечно, можно как-то избавиться от этого тонкой настройкой логирования web-сервера, но можно поступить по-другому. Посадить CACTI на поддомен, т.е. URL будет выглядеть так: cacti.domain.xx. Ну, проще говоря, создать отдельный виртуальный хост на web-сервере.
В этой небольшой зарисовке пример Ubuntu 14 + Apache 2.4.7. + CACTI. По умочанию, CACTI создаёт конфигурацию к основному домену в виде алиаса. Посмотреть можно в /etc/apache2/conf-available/cacti.conf. Эту конфигурацию мы отключаем:
Следующим шагом будет создание виртуального хоста в директории site-avialable:
CACTI установка
В качестве OS используется Ubuntu 15.10. Сразу оговорюсь, что на эту версию Ubuntu установится Cacti Version: 0.8.8f, Plugin Architecture Version: 3.1.
Прежде чем устанавливать CACTI необходимо обзавестись Web сервером и всем, что к нему прилагается. А именно Apache2, MySQL, PHPMyAdmin (в простанародии LAMP-сервер), snmp, snmpd, snmp-mibs-downloader.
CACTI — начальные настройки
Ниже скриншоты настроек и краткие комментарии к ним.
1. Установка параметров протокола SNMP (версия, community). Я использую вторую версию с паролем по-умолчанию.
2. Как я понял, это получение информации по всем запросам протокола SNMP.
CACTI — Установка плагинов
В этом разделе опишу установку плагинов с которыми приходилось работать. Ссылки на плагины будут. Для недоверчивых — ссылки на официальный сайт.
Для начала ссылки на архивы с плагинами и их краткое описание. Все плагины брал тут. Поехали:
CACTI — плагин FlowView — анализ NetFlow
FlowView. Плагин который показывает погоду, но предназначенный для анализа NetFlow. Тем не менее он у меня установлен. Общую картину он создать может, поэтому начнём. Для настройки в первую очередь создаём директорию, куда будет падать flow. У меня всё льётся в /var/netflow/flows/completed. Создаём директорию:
Для того, что бы плагин заработал нужно установить библиотеку FlowTools :
И вот тут у нас есть возможность ощутить всю корявость плагина. Часть скрипта которая отвечает за создание таблицы в БД имела тип MEMORY , что приводило к потере данных после рестарта MySQL или перезагрузке сервера.
CACTI — плагин Spikekill — удаление пиков на графиках
Spikekill. Скачать можно со страницы описания плагинов. Тут настроек совсем не много. Идём в Console -> Cacti Settings и заходим во вкладку SpikeKill . Включаем по желанию планировщик на удаление пиков (1) и графики (2).
Самое главное, на мой взгляд, это получить кнопку удаления пиков рядом с графиком. Не у всех она сразу появляется после установки плагина. Для этого заходим в Console -> User Management выбираем пользователя которому необходимо назначить права и во вкладе Realm Permissions ставим галочку Plugin -> Remove Spikes on Graphs . В итоге получаем:
CACTI — плагин Monitor
Monitor. Здесь вообще настраивать практически нечего. Идём в Console -> Cacti Settings во вкладку Misc . Тут всё должно быть интуитивно понятно.
В итоге выглядит это так:
Скачать плагин можно тут.
CACTI — плагин Thold — уведомления на сотовый телефон
Плагин Thold предназначен для мониторинга заданных критических значений параметров оборудования. В данном плагине есть возможность отображения критических значений на графиках и возможность оповещения по электронной почте. Можно даже прикрутить оповещение по СМС на телефон. Начнём:
После установки плагина, в настройках CACTI появляются соответствующие разделы:
Cacti — Advanced Ping
Шаблон для мониторинга задержки и потерь во внутренней и внешней сетях.
Скачиваем шаблон. Файл .xml нужно импортировать через web-морду.
После импортирования идём в Console -> Devices , проваливаемся в нужное нам устройство и в разделе Associated Graph Templates выбираем наш шаблон графика PING — Advanced Ping v1.3. Добавляем, переходим в меню Create Graphs for this Host и в списке доступных шаблонов создаём наш. Результат:
К слову говоря, у меня возникли проблемы с отрисовкой графиков для внешних хостов + ко всему в списке устройств внешние хосты были в статусе DOWN. Решается просто:
Cacti TCP Connections
Шаблон для мониторинга количества TCP соединений для ОС на базе *nix.
Скачиваем шаблон. В архиве файл .xml импортируем в Cacti через web-морду в меню Console -> Import Templates , а файл ss_tcp_connections.php помещаем в /usr/share/cacti/site/scripts/
Через некоторое время наблюдаем график.
Cacti — lm-sensor — мониторинг температуры
Шаблон для мониторинга температуры CPU и чипсетов материнской платы. Для снятия статистики необходимы несколько компонентов для ОС (в моё случае для Ubuntu):
После завершения установки выполняем сканирование оборудования на наличие различных датчиков температуры и вольтажа:
Cacti – простой и удобный инструмент для мониторинга и анализа сети
Архив номеров / 2007 / Выпуск №4 (53) / Cacti – простой и удобный инструмент для мониторинга и анализа сети
СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС
Cacti – простой и удобный инструмент для мониторинга и анализа сети
По мере увеличения размеров сети все более актуальным становится обеспечить ее бесперебойную работу и своевременно находить проблемные участки. Добиться этого можно, только проводя постоянный мониторинг.
Можно выделить несколько задач, решаемых с использованием приложений, предназначенных для мониторинга сетевых и системных ресурсов. Исходя из них, сформулировать требования к системе мониторинга. В первую очередь это контроль доступности и рабочих характеристик серверов, сервисов и активного оборудования, оценка загруженности и доступности канала передачи информации. Такая система должна быть способной накапливать всю собранную информацию об объектах мониторинга. В дальнейшем используя временные характеристики, можно быстрее разобраться с возникшей проблемой. Для просмотра статистики необходим удобный интерфейс, с помощью которого можно быстро составлять необходимые запросы. Желательна возможность мониторинга в реальном времени. Сам по себе контроль – это половина задачи, система мониторинга должна уметь предупреждать администратора о появлении проблем (пропадание канала, сервиса) или превышении допустимого порога одного из наблюдаемых параметров (загрузка процессора, свободное место на дисках).
Существует большое количество Open Source-систем мониторинга: Nagios, базирующийся на нем Oreon, MRTG, RRDtool, небольшой Cricket, Zabbix, NetMRG и прочие. Соответственно и задачу можно решить разными способами и инструментами. Сегодня подробно рассмотрим лишь один из них.
Cacti является удобным интерфейсом к RRDTool. С его помощью можно контролировать большое количество различных параметров, таких как загрузку систем и сетей, с выводом всевозможных графиков. Cacti без проблем будет работать в сетях любого размера, как маленьких, так и больших, со сложной разветвленной топологией. В качестве источника данных могут быть использованы любые внешние команды или сценарии с любыми параметрами, которые нужно собрать, реализована поддержка SNMP. Интерфейс написан на PHP, вся собранная информация сохраняется в базе данных MySQL. Распространяется Cacti по лицензии GNU GPL.
Одним из требований при его создании было построение легкого в использовании интерфейса. Центральным звеном в этой системе являются графики. Все контролируемые параметры и настройки так или иначе привязаны к графикам. Графики статистик представлены в виде дерева, в котором графики сгруппированы по своим критериям. Причем один и тот же график может находиться в разных частях дерева. Например, при выводе сетевой статистики системы и при показе информации о конкретном сетевом устройстве. Это очень удобно, не нужно искать по вкладкам нужный график, вся информация всегда под рукой. Все графики можно быстро собрать в одном месте щелчком мышки в Graph Management. Пользователь может самостоятельно создавать графики, используя заранее подготовленные шаблоны. Шаблоны – это один из больших плюсов Cacti. Нет необходимости вникать в особенности работы RRDTools, просто выбираем шаблон, и график готов. При необходимости параметры любого созданного графика можно просмотреть и уточнить. Каждый график описывается двумя элементами: параметры настроек, определяющие свойства графика, и элементы, определяющие данные, которые должны быть представленными на нем. Информацию, выводимую графиком, можно на лету уточнять, например, изменяя временной промежуток, выделив его мышкой, или создавая новые источники на основе имеющихся данных. При необходимости можно обеспечить доступ к графикам нескольким пользователям. При этом каждому пользователю могут быть назначены четко заданные права, как на просмотр только «своих» или добавление графиков.
Для работы Cacti потребуется наличие MySQL, PHP, RRDTool, net-snmp и веб-сервера с поддержкой PHP (Apache или IIS). Причем в процессе работы обнаружилось, что Cacti не «дружит» с Suhosin (расширение к PHP для усиления безопасности). На сайте проекта доступны архивы для Linux/Windows и ссылки на пакеты для дистрибутивов, использующих RPM, ebuild Gentoo, оpenSUSE. Можно использовать CVS или архив с текущей сборкой. Хотелось бы обратить особое внимание на ресурс CactiUsers [2]. Здесь предлагается патч, позволяющий добавить в Cacti поддержку плагинов, и доступно 11 плагинов разной степени готовности. Например, плагин Discovery способен находить неизвестные Cacti устройства, поддерживающие SNMP, есть просмотрщик сообщений Netflow, Ntop и syslog, плагин для работы по SSL, плагин состояний узлов и некоторые другие. Также предлагается дистрибутив CactiEZ (пока бета 0.2), построенный на основе CentOS 4.3, содержащий настроенный Cacti с поддержкой плагинов и самими плагинами, а также 305 пакетов, среди которых Net-SNMP, Netflow, Webmin, eAccelerator и прочие. Если для мониторинга будет использован отдельный компьютер, то CactiEZ – хороший кандидат для использования на нем.
В репозитарии дистрибутива Ubuntu 6.06, который использовался при тестовой установке, пакет Cacti есть:
$ sudo apt-cache search cacti
cacti-cactid — Multi-Threading poller for cacti
cacti — Frontend to rrdtool for monitoring systems and services
В пакет Cacti входят все необходимые для работы компоненты, а cactid является заменой стандартному cmd.php. Он написан на С, использует POSIX и связан с библиотеками net-snmp. Им рекомендуется подменять cmd.php в тех случаях, когда стандартный вариант не справляется с нагрузкой. Актуальной на момент написания статьи была версия 0.8.6j. В версии 0.8.6h, которая доступна в репозитарии, были обнаружены ошибки, связанные с безопасностью, поэтому будем устанавливать из архива. Команда:
$ sudo apt-cache depends cacti
в Ubuntu выдает длинный список пакетов. Чтобы не разбираться с ними персонально, лучше использовать команду:
$ sudo apt-get -d install cacti
и затем установить с помощью dpkg все пакеты, кроме Сacti. Скачиваем пакет с Сacti:
В примере в качестве рабочего каталога Cacti использован каталог веб-сервера. Можно поместить его в другое место, а в конфигурационном файле веб-сервера указать путь к нему, как это сделано в пакетах Ubuntu:
Alias /cacti /usr/share/cacti/site
Оба варианта будут работать, поступайте, как вам удобнее. Переименовываем каталог:
$ sudo mv cacti-0.8.6j cacti
Если MySQL еще не работает, запускаем его:
$ sudo /etc/init.d/mysql start
Создаем новую базу данных cacti:
$ mysqladmin —user=root create cacti
И заполняем ее, используя подготовленный шаблон:
$ mysql -u root cacti
Теперь даем все необходимые права специальному пользователю:
$ mysql -u root cacti
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘cactipassword’;
Query OK, 0 rows affected (0.06 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
Указываем в конфигурационном файле Cacti информацию, необходимую для соединения с базой данных.
/* make sure these values refect your actual
В пакетах Ubuntu этот участок вынесен в отдельный файл, находящийся в /etc/cacti, который подключен в config.php с помощью Include. Создаем в системе пользователя, от имени которого будут выполняться процессы Cacti:
Если вывод скрипта получился такой, идем дальше. Иначе необходимо проверить еще раз, что все сделано правильно.
Создание графиков в Cacti
Набираем в строке веб-браузера http://host_name/cacti и попадаем в Cacti Installation Guide, в котором необходимо пройти еще несколько шагов для настройки Cacti. На первом шаге выбираем «New Install» (или «Upgrade from 0.8.x.» при обновлении), здесь же выводится информация, взятая с include/config.php. Следует еще раз проверить ее корректность. Далее скрипт проверяет наличие всех необходимых для работы утилит. Если он их находит, напротив зеленым цветом будет отмечено FOUND, иначе необходимо будет указать полный путь к утилите самостоятельно (см. рис. 1). В этой же вкладке указываем версию SNMP (NET-SNMP 5.x или UCD-SNMP 4.x) и версию RRDTool (1.2 или 1.0). Все настройки затем можно сменить уже в процессе работы, зайдя в «Cacti Settings». После всего нажимаем на «Finish». Теперь регистрируемся как пользователь admin с паролем admin. В следующем окне вас заставят изменить пароль.
Рисунок 1. Настройка Cacti
По умолчанию в Cacti заведен только контроль четырех параметров (память, загрузка процессора, пользователи и процессы) локальной системы. В левом верхнем углу страницы две вкладки:
Console – здесь настраиваются графики, параметры Cacti, учетные записи пользователей, расположены некоторые утилиты;
Graphs – здесь найдете все графики, созданные в console.
Дальнейшая работа будет состоять из трех вариантов:
создание нового сетевого устройства;
создание графиков для старых и новых устройств;
проверка их работоспособности.
Для создания нового устройства выбираем в первом окне ссылку «Create devices» или в поле «Management -> Devices». В появившемся окне заведен только localhost. Если в поле Status напротив localhost установлено «Disabled», включаем его. Для этого отмечаем нужное устройство флажком, затем в списке «Choose an action» выбираем «Enable», в следующем окне подтверждаем включение нового устройства.
Для добавления нового устройства нажимаем Add в правом верхнем углу и в появившемся окне заполняем описание (Description) имя или IP-адрес узла. В Host Template указываем шаблон и параметры SNMP (см. врезку «Настройка SNMP») (см. рис. 2).
Рисунок 2. Создание нового устройства
После нажатия кнопки «Create» переходим в следующее окно. Если Cacti удалось соединиться с указанным узлом, информация о нем будет выведена в самом верху страницы. Иначе появится надпись «SNMP Failed», следует вернуться и проверить настройки. Это окно похоже на предыдущее, только добавились два поля «Associated Graph Templates» и «Associated Data Queries».
Обратите внимание на столбец Debugging, нажав на ссылку «Verbose Query» напротив сформированного графика, можно просмотреть запрос и его результат (см. рис. 3).
Рисунок 3. Просмотр свойств запроса при создании графика
Таким образом, на этапе настройки можно выяснить, будет ли работать этот график. После добавления в «Associated Graph Templates» в поле Status появится надпись «Not Being Graphed». Это означает, что график еще не сформирован, и это пока не должно вас волновать. После первого же запроса здесь появится «Is Being Graphed», рядом с которой будет надпись «Edit». Нажатие на нее позволит отредактировать параметры этого графика.
После добавления шаблонов нажимаем «Create Graphs for this Host» и переходим в страницу создания графиков, отмечаем нужные и еще раз нажимаем «Create». Здесь для уточнения доступны: цвет и тип будущих графиков, максимальное значение параметров, подпись и прочее. Вернувшись обратно в дерево устройств, включаем новое устройство и затем, выбрав в том же списке «Place on a tree», помещаем его в дерево устройств. Теперь новое устройство и его графики будут доступны для просмотра во вкладке «Graphs» (см. рис. 4).
Рисунок 4. Графики Cacti
Настройка вкладки «Console»
Все созданные графики можно найти в меню «Graph Management», где их можно быстро копировать, удалить, создать на их основе новый шаблон, изменить узел. По умолчанию все графики будут выводиться в корне дерева, если количество узлов велико, зайдя в «Graph Trees», можно создать новые ветки дерева, разместив в нем графики более логично. В «Sorting Type» вверху страницы можно выбрать вид сортировки. Изначально установлена ручная сортировка, для перемещения графиков по ветке дерева следует использовать стрелки. Можно выбрать сортировку по имени или по номеру.
Следует ознакомиться и с параметрами в «Configuration > Setting», здесь имеется шесть вкладок:
General – настройка информации, заносимой в журнал, и куда будут заноситься события (файл/syslog), на этапе отладки, следует включить «Poller Logging Level» в HIGH или DEBUG, чтобы полностью контролировать все запросы, здесь же настраиваются параметры SNMP;
Paths – указываются пути ко всем утилитам, используемым Cacti, а также, если нужно, и cactid;
Poller – настройка работы системы сбора информации, здесь можно переключаться между cmd.php или cactid, а также настраивается проверка доступности узлов;
Graph Export – здесь можно настроить экспорт графиков (в том числе и автоматический) в локальный файл или по протоколу ftp, sftp;
Visual – параметры вывода графиков, размерность сетки, размер шрифта и прочее;
Authentication – аутентификация пользователей, локальная или LDAP, и настройки сервера LDAP.
В меню «Utilities -> System Utilities» можно просмотреть журнал работы Cacti. Удобно, что в зависимости от результата записи имеют разный цвет (см. рис. 5), что помогает визуально определить неудачные запросы, причем можно сразу же перейти по гиперссылке в настройку устройства или отдельного графика. Отсюда же можно просмотреть журнал захода пользователей, кэш Pollerа и SNMP-запросов.
Рисунок 5. Журнал работы Cacti
По умолчанию в Cacti созданы два пользователя admin и guest. Последний не имеет пароля и позволяет пользователю только просматривать графики загрузки локальной системы.
Для добавления пользователей переходим в «User Management» и выбираем «Add». Появится окно редактирования свойств нового пользователя.
На первой странице вводим имя, пароль пользователя (активация «User Must Change Password at Next Login» заставит пользователя сменить пароль при первой регистрации), в «Login Options» указываем, что будет выведено после регистрации.
Теперь появились еще три вкладки: «Realm Permissions», «Graph Permissions» и «Graph Settings», в которых более тонко настраиваются параметры доступа к графикам.
В «Realm Permissions» указываем на операции, которые сможет осуществлять пользователь. После выбора нужных параметров нажимаем «Create». Пользователь пока не активирован, следует еще раз выбрать настройку пользователя.
Установка плагинов Cacti
Без краткого рассказа о плагинах Cacti статья была бы неполной. Cacti – самодостаточная система, и в большинстве случаев ее возможностей должно хватить, но с помощью плагинов можно несколько расширить ее функциональность. Устанавливаются плагины очень просто. Сначала необходимо пропатчить Cacti. Это можно сделать на уже работающей системе без какого-либо ущерба.
$ cd cacti; sudo tar -xzvf /home/grinder/source/cacti/cacti-plugin-arch.tar.gz
$ sudo patch -p1 -N
Проверяем параметры внутри config.php, кроме того, в нем появились новые строки, требующие редактирования. Так, строка:
означает, что при обращении к серверу Cacti используется адрес http://host_name/, если вводится адрес вроде http://host_name/cacti/, следует строку изменить на:
Теперь установим один из плагинов, у каждого есть свои особенности. Например, Discovery устанавливается так. Переходим в подкаталог cacti/plugins, который был создан при установке патча:
$ tar xzvf discovery-0.7.tar.gz
Создаем новые таблицы.
$ mysql -u root -p cacti
Каждый плагин описан в массиве $plugins файла config.php. Изначально в нем записей нет.
Для того чтобы добавить к нему плагин, в строке ниже дописываем элемент с названием каталога установленного плагина. Для некоторых плагинов это единственное, что требуется сделать для их установки. В нашем случае это discovery.
Теперь в «Configuration -> Setting» появилась еще одна вкладка «Misc», предназначенная для настроек плагинов. Для discovery в ней требуется указать подсеть для сканирования, метод сканирования (ICMP, TCP, UDP), коммьюнити SNMP и период. После этого discovery будет сообщать вам, если найдет узел, поддерживающий SNMP и неизвестный Cacti. Неплохой плагин tools, после его установки в «Console -> Utilities» появится новое меню, в котором можно будет проверять работу сервисов на указанном узле или просматривать ответ SNMP (см. рис. 6).
Рисунок 6. Результат работы плагина tools
Советую также установить и плагин thold, с помощью которого можно отсылать сообщения. После его установки (только запись в config.php) в «Setting» появится еще одна вкладка. В ней требуется указать лишь почтовые адреса, на которые будут приходить сообщения, события (ошибки, тревоги и прочие), и способ отправки (PHP, SMTP, Sendmail) c необходимыми параметрами доступа. Появится и отдельная вкладка «Threhld», в которой можно затем их просмотреть оптом.
Настройка любой системы мониторинга – задача кропотливая и весьма индивидуальная, поэтому обо всех вариантах рассказать не получится. Но, как видите, Cacti – очень простая в установке и использовании система, которая позволяет настроить систему мониторинга человеку, незнакомому со всеми тонкостями SNMP.