- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF137:Catcti
Материал из Linuxformat.
- Hardcore Linux Проверьте себя на крутом проекте для продвинутых пользователей
Содержание |
Cacti: Строим графики всего
- Хотите увидеть на графике, что вытворяют ваш компьютер или маршрутизатор за вашей спиной? Роб Добози вооружит вас колючим растением на подмогу.
От вашего провайдера пришло гневное письмо: вас опять обвиняют в превышении лимита скачивания. Ваша первая реакция – это не может быть правдой! Если бы только проверить полный трафик за последний месяц, чтобы убедиться... Благодаря Cacti времена, когда вы сдавались на милость уведомлений-по-факту, прошли.
Но Cacti умеет гораздо больше, чем просто собирать и отображать трафик от вашего маршрутизатора. Фактически, он поможет вам собирать данные любого типа, хранить их в базе, а затем визуализировать с помощью одного или нескольких графиков, а также удобно организовывать последние в виде дерева.
Данные, отображаемые на графиках, обеспечиваются так называемыми источниками данных [data sources]. Последние выполняют сбор данных либо с помощью SNMP [Simple Network Management Protocol], либо скриптом. Как графики, так и источники данных можно определять с помощью шаблонов, где можно хранить их общие характеристики.
Входим в курс дела
Так чего же ждать – установите Cacti с помощью вашего менеджера пакетов прямо сейчас. Обратите внимание, что ему требуются Apache, MySQL, PHP (вместе с php-mysql), RRDTool и Net-SNMP. Если Cacti отсутствует в репозиториях вашего дистрибутива, скачайте его с http://www.cacti.net/download_cacti.php.
Все установив, убедитесь, что MySQL и Apache запущены. Теперь укажите в браузере адрес сервера Cacti, который выглядит как http://<ваш_сервер_с_cacti>/cacti. Если вы не знаете, где это, попробуйте http://localhost/cacti.
Установка Cacti
Установить Cacti через менеджер пакетов довольно просто. Однако, чтобы инсталляция прошла успешно, следует кое-что знать. Менеджер пакетов Ubuntu задаст вам несколько вопросов. Убедитесь, что вы выбрали Apache 2, если вы пользуетесь им, используйте dbconfig-common и задайте пароль для учетной записи администратора MySQL. Если оставить поле пользователя Cacti пустым, сгенерируется случайный пароль.
Установка в Fedora более трудоемкая. Во-первых, там, вероятнее всего, неправильные зависимости, поэтому ни mysql-server, ни net-snmp-utils не устанавливаются автоматически. Так что до RPM Cacti следует установить их.
Если вы установили MySQL впервые, следует задать учетную запись root для MySQL:
mysqladmin -u root password <пароль> mysqladmin -u root -h localhost -p password <пароль>
Теперь создайте и загрузите базу данных cacti –
mysqladmin -u root -p create cacti mysql -u root -p cacti < /usr/share/doc/cacti-0.8.7f/cacti.sql
и создайте пользователя cactiuser с помощью
mysql -u root -p mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘<пароль_cactiuser>’; mysql> flush privileges;
В файле настройки Cacti следует изменить параметры соединения MySQL. Откройте файл /usr/share/cacti/include/config.php и отредактируйте переменные $database_username и $database_password.
Шаг за шагом: Ваша локальная система на графике
- 1 Начальная установка
- Если во время установки все прошло гладко, вы увидите экран первоначальной настройки Cacti («Cacti installation», слева, если что). Убедитесь, что в выпадающем списке выбрана опция New Install, и нажмите Next.
- 2 Проверка требований
- Теперь нужно проверить, что все предварительные данные заданы и на странице только зеленые сообщения [OK: FILE FOUND]. Если это так, нажмите кнопку Finish; а если нет, придется исправлять проблему.
- 3 Первый вход
- Вас направят на страницу входа. По умолчанию имя пользователя и пароль – admin. После успешного входа смените свой пароль, и вас поприветствует страница консоли Cacti. Теперь можно собирать данные и строить графики.
- 4 График места на диске
- Нажмите на New Graphs (A). Эта страница покажет шаблоны и данные, доступные для выбранного хоста. Раздел под названием Data Query [Unix – Get Mounted Partitions] содержит список всех смонтированных разделов. Выберите хотябы один (B) и нажмите Create (C). Появится сообщение, где говорится, что график создан.
- 5 Отображение
- Нажмите на вкладку Graphs (A), затем на кнопку Preview (B). Вы увидите пять графиков. Почему? Изначально Cacti содержит четыре предопределенных графика, и вы увидите их вместе с заданным вами графиком дискового пространства. Но этот последний будет, скорее всего, пуст, так как по умолчанию Cacti собирает информацию каждые пять минут.
- 6 Показать подробности
- Подождите немного, затем щелкните на любом из графиков, и увидите подробную информацию. Например, здесь показана средняя загрузка системы за последние день, неделю и месяц. Широкий максимум между 21‑й и 2‑й неделями на месячном графике соответствует обновлению Ubuntu до версии 10.04, а провал в конце 23‑й недели – семейному празднику.
Рисуем удаленно
Если вы уже прочувствовали Cacti, давайте подключимся к удаленной системе. Для сбора данных такого сорта Cacti обычно полагается на SNMP. Короче говоря, вам нужно настроить SNMP-сервис, потом создать в Cacti источник данных, который считывает данные с SNMP-сервера. После этого вы сможете создать график, где красиво показаны данные, собранные Cacti.
Следующее пошаговое руководство рассказывает, как настроить SNMP для сбора удаленных данных. Вы, например, сможете получить данные по интернет-трафику или загрузке маршрутизатора. Итак, попробуем.
Если SNMP включен, Cacti может наблюдать за системой удаленно, и вы сможете сосредоточить информацию о вашей ферме серверов в одном месте. Настройка SNMP на Linux-сервере немного сложнее, чем на маршрутизаторе. Вам нужно установить либо snmpd (Ubuntu), либо net-snmp (Fedora).
Если вы пользуетесь Ubuntu, отредактируйте /etc/snmp/snmp.conf, раскомментировав там строку
com2sec readonly default public
Обязательно поменяйте слово public на какое-либо другое, которое непросто угадать. После этого отредактируйте файл /etc/default/snmpd. Отыщите в нем строку, начинающуюся с SNMPDOPTS, и удалите из ее конца 127.0.0.1. Мы сделали это, чтобы SNMP был доступен с машины Cacti. Последним шагом будет перезапуск демона SNMP от имени root, таким образом:
/etc/init.d/snmpd restart
В Fedora это немного иначе. Нужно редактировать все тот же /etc/snmp/snmp.conf, но его содержимое будет другим. Найдите и раскомментируйте следующие строки:
com2sec notConfigUser default public group notConfigGroup v2c notConfigUser view roview included .1 access notConfigGroup “” any noauth exact roview rwview none
Снова позаботьтесь о замене слова public на другое, в целях безопасности. Когда закончите, перезапустите демона SNMP от имени root следующей командой:
/etc/init.d/snmpd restart
Последнее – в утилите настройки брандмауэра разрешите соединение на порт 161/UDP. Это позволит Cacti подключаться к SNMP-серверу.
Шаг за шагом: Как настроить SNMP
- 1 Включите SNMP
- Во-первых, включите SNMP и определите RO (Read Only) Community name. Имя должно рассматриваться как пароль и, следовательно, не должно поддаваться угадыванию. Также можно определить RW (Read Write) community name, но оно не будет использоваться Cacti. RW Community name позволит вам или другим людям выполнять произвольные изменения в маршрутизаторе, так что оно должно быть еще более неугадываемым.
- 2 Отобразите устройства
- После настройки SNMP создайте в Cacti новое устройство, чтобы можно было рисовать графики. Сначала нажмите вкладку Console (A), затем на Devices в меню слева (B). Появится список уже определенных устройств. Можно увидеть, что там определено одно устройство: Localhost. Чтобы добавить новое, нажмите по ссылке Add в правом верхнем углу.
- 3 Добавьте устройство
- Следующая страница покажет подробную информацию об устройстве. Заполните поля Description и Hostname, а в выпадающем списке Host Template (A) выберите Generic SNMP-Enabled Host. Среди SNMP Options выберите ту версию SNMP, что используется вашим маршрутизатором (обычно 2), а в поле SNMP Community введите RO Community name для вашего маршрутизатора (B). Нажмите кнопку Create.
- 4 Обзор данных устройства
- Сейчас вы видите базовую информацию о вашем маршрутизаторе, которую извлек SNMP (A). Внизу экрана можно поменять шаблоны и запросы данных, связанные с устройством. Это полезно, если вы настроили в качестве удаленного устройства Linux-машину, так как при этом можно собирать больше данных. Однако сейчас ничего менять не надо. Лучше задайте график, нажав на Create Graphs For This Host link (B).
- 5 Определите график
- Раздел Data Query теперь должен отобразить список всех интерфейсов и их IP-адресов. Выберите те интерфейсы, что вас интересуют, в качестве подсказки используя IP-адреса (в нашем случае это A), а в качестве типа графика возьмите In/Out Bytes With Total Bandwidth (B). Нажмите кнопку Create, и должно появиться информационное сообщение, что график создан.
- 6 Отобразите устройства снова
- Прежде чем глядеть на только что созданный график, нажмите Devices, чтобы отобразить все имеющиеся устройства (A). Для порядка поместим устройство маршрутизатора на дерево графиков, чтобы отделить графики локальной системы от графиков маршрутизатора. Сначала выберите маршрутизатор (B), затем – Place On A Tree (Default Tree) из выпадающего списка Choose An Action (C). Наконец, нажмите кнопку Go (D), чтобы продолжить.
- 7 Поместите устройство в дерево
- Теперь выберите место на дереве, куда пристроить графики маршрутизатора. Просто оставьте выделенной корневую ветку и нажмите Yes. Если вы определили собственные заголовки в дереве, можете использовать их.
- 8 Проверьте график
- Наконец, перейдите на вкладку Graphs (A) и убедитесь, что выбрана вкладка Tree (B). Теперь выберите из Default Tree (С) ваш маршрутизатор, и вы должны увидеть кривую, описывающую ваш интернет-трафик.
Расширяйте, улучшайте
Пользователь cactiuser, созданный в MySQL во время установки Cacti, не имеет прав на мониторинг MySQL. Возьмите другого пользователя, например, root, или создайте нового пользователя MySQL специально для этой цели.
Мониторинг через SNMP может снабжать вас полезной информацией, но что делать, если система, за которой вы хотите следить, не поддерживает его? Или – что, если Cacti не может отследить отдельную характеристику системы? Не пугайтесь – благодаря расширяемости Cacti вы сможете отслеживать почти все, призвав на помощь модули расширения и скрипты. Большую их часть можно найти на форуме Cacti (http://forums.cacti.net). Почти наверняка там имеется скрипт, собирающий нужную вам информацию. Также имеется специальное расширение под названием Plugin Architecture (http://cactiusers.org), позволяющее легко внедрять другие модули. В последнем разделе нашего учебника мы покажем, как расширить Cacti скриптом, который будет собирать и отображать разную информацию о MySQL.
Скачайте шаблоны MySQL для Cacti
Сперва скачайте самую последнюю версию better-cacti-templates.tar.gz с http://code.google.com/p/mysql-cactitemplates. Откройте окно терминала, распакуйте архив, перейдите в каталог scripts. Теперь, перейдя под root (пользуясь sudo или su), скопируйте скрипт ss_get_mysql_stats.php в каталог скриптов Cacti. Ему, скорее всего, соответствует либо /usr/share/cacti/site/scripts (Ubuntu), либо /usr/share/cacti/scripts (Fedora).
Следующий шаг – подгрузка шаблонов MySQL в Cacti. Нажмите на вкладку Console, затем на Import Templates в левом меню. Нажмите Browse и перейдите в каталог, содержащий распакованные ранее файлы. Затем отыщите каталог с именем templates, а в нем – файл cacti_host_template_x_mysql_server_ht_<version>.xml. Нажмите Open, а затем на Save.
После окончания процесса импорта проверьте, что не было никаких ошибок. Теперь определим учетную запись для мониторинга. Это можно сделать несколькими способами, и самый простой – создать файл ss_get_mysql_stats.php.cnf в том же каталоге, что и скрипт, с которого мы начали. Это следует проделать от имени root. Содержимое файла должно быть таким:
<?php $mysql_user = “<пользователь>” $mysql_pass = “<пароль>” ?>
После этого добавьте в Cacti базу данных MySQL как устройство так же, как делалось на шагах 2 и 3 в Как настроить SNMP. Однако на сей раз в качестве шаблона хоста выберите X MySQL Server HT. Никаких опций SNMP не указывайте: всю информацию предоставит сценарий, который мы уже скопировали в каталог скриптов Cacti. После нажатия кнопки Create проверьте, что устройство создалось правильно, и переходите к созданию графиков, нажимая на ссылку Create Graphs For This Host (как на шаге 4 в Как настроить SNMP).
Определение графиков MySQL
Прокрутите вниз на вторую половину страницы и отметьте X MySQL Connections GT, X MySQL Network Traffic GT, X MySQL Processlist GT и X MySQL Threads GT, после чего нажмите Create; перед просмотром графиков поместите устройство на дерево графиков (как на шагах 6 и 7 в Как настроить SNMP).
Теперь любуйтесь графиками MySQL. Сначала нажмите на вкладку Graphs, убедитесь, что выбрана вкладка Tree, и потом жмите на MySQL. Поизучайте результаты – не бойтесь экспериментировать и с другими разделами в X MySQL.
Cacti умеет гораздо больше, чем мы вкратце здесь рассмотрели. Например, при слежении за несколькими серверами механизм опроса, стоящий по умолчанию, может работать очень медленно. Тогда вам лучше познакомиться с демоном Spine, более быстрой альтернативой. Если вы хотите делиться графиками с другими пользователями, задействуйте встроенный механизм управления учетными записями. Это позволит вам задавать пользователям разные уровни авторизации, чтобы они могли видеть разные графики или деревья. Если хотите узнать подробности, обратитесь к документации по Cacti или посетите сайт http://www.cacti.net.