Необходимо снимать статистику с разных девайсов и представлять ее в наглядном виде? Тогда однозначно необходимо познакомиться с таким инструментом, как cacti. Позволяет с помощью протокола SNMP снимать статистику с устройств и потом, используя RRD-tool делать наглядные графики, будь то использование дискового пространства на файл-сервере, или загрузка интерфейсов комутатора.
cacti можно найти в портах. Что ж, это радует... Раньше cacti располагался в /usr/ports/net, но потом проект был перемещен в /usr/ports/net-mgmt.
# cd /usr/ports/net-mgmt/cacti # make install clean
|
Для самого cacti опции оставляю по дефолту. Но по ходу установки, подтягивается еще много разных вкусностей.
Cacti успешно установился. И как "правильный" порт, вывел список необходимых действий для дальнейшей настроки:
Cacti is now installed. If you intall it for the first time, you may have to follow this steps to make it work correctly:
1. Create the MySQL database: # mysqladmin --user=root create cacti 2. Create a mysql user/password for cacti: (change user and/or password if required) # echo "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser'; FLUSH PRIVILEGES;" | mysql 3. Import the default cacti database: # mysql cacti < /usr/local/share/cacti/cacti.sql 4. Edit /usr/local/share/cacti/include/config.php. 5. Add a line to your /etc/crontab file similar to: */5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1 6. Add alias in apache config for the cacti dir: Alias /cacti "/usr/local/share/cacti/" 7. Be sure apache gives an access to the directory ('Allow from' keywords). 8. Open a cacti login page in your web browser and login with admin/admin.
|
Обновляем пути, и не спеша, потихоньку делаем, то что "просит" cacti. Начнем с того, что создадим БД и создадим пользователя MySQL с полными правами на созданную БД:
# rehash # mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is Server version: 5 FreeBSD port: mysql-server-5 mysql> create database `cacti`; Query OK, 1 row affected (0.00 sec) mysql> create user 'cacti'@'localhost' identified by 'cacti_db_password'; Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on `cacti`.* to 'cacti'@'localhost'; Query OK, 0 rows affected (0.00 sec)
mysql> exit Bye
|
Импортируем дамп БД в MySQL:
# mysql -u cacti -p cacti < /usr/local/share/cacti/cacti.sql |
Далее правим конфигурационный файл до такого содержания:
# cat /usr/local/share/cacti/include/config.php
<?php $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cacti"; $database_password = "cacti_db_password"; $database_port = "3306";
?>
|
Добавляем в cron запуск поллера каждые 5 минут и перестартовываем cron:
# echo '# Cacti poller' >> /etc/crontab # echo '*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1' >> /etc/crontab
|
Далее в адрессной строке браузера набиваем: http://ip_address_servera/cacti/
Если не допустили никаких ошибок, то в окне браузера откроется окошко начальной инсталяции cacti. Соглашаемся со всеми пунктами и по завершению установки попадаем на страницу авторизации. По умолчанию логин admin и пароль admin. После первой успешной авторизации будет предложено сменить пароль на какой-то другой. Установите пароль посложнее ;)
Далее рекомендую добавить себя как пользователя с полными правами, а стандартным пользователем admin не пользоваться. Пользователя guest можно вообще удалить. Для управления пользователями на закладке console в разделе Utilities выбираем пункт User Management. Чтобы добавить пользователя, в правом верхнем углу княпаем на линк Add. Далее - думаю разберетесь. Только не забудьте выставить себе полностью все права и установить галочку напротив пункта "Enabled" ;).
Также советую выставить для себя на закладке Graph Permissions политики по умолчанию. Если их переопределить с Deny на Allow, то это существенно меняет нам жизнь в лучшую сторону.
Перейдя на закладку graphs, то можно увидеть, что уже создано дефолтное дерево устройств и добавлен хост localhost. Однако графики пока не рисуются. Решить эту проблему можно настройкой SNMP на сервере.
Если вы были внимательны, то помните, что во время установки упоминался порт net-snmp. Вот его конфигурированием мы сейчас и займемся.
Первым делом создадим каталог, где будет храниться конфигурационный файл и сам файл конфигурации:
# mkdir /usr/local/etc/snmp # touch /usr/local/etc/snmp/snmpd.conf
|
# echo '# SNMP' >> /etc/rc.conf # echo 'snmpd_enable="YES"' >> /etc/rc.conf # sh /usr/local/etc/rc.d/snmpd start Starting snmpd.
|
Проверим работу:
# snmpwalk -c you_community_name -v 2c localhost |
Если в ответ вывалится огромный список MIB-ов, значит все ok.
Теперь можно в cacti для localhost изменить community и добавить необходимые типы графиков. Через некоторое время эти графики можно будет лицезреть воочию на закладке graphs (не забываем, что статистика снимается раз в 5 минут, соответственно графики отрисовываются неспеша).
Советую также обратить внимание на логгирование. Тоесть - настроить ротацию логов. На одном из серверов недавно обнаружил, что лог-файл разросся до 18 гигабайт!
Итак, добавляем в /etc/newsyslog.conf такую строку:
/usr/local/share/cacti/log/cacti.log 644 3 * $M1D0 JC
|
Перезапускать syslogd не нужно, поскольку /etc/newsyslog.conf проверяется по cron-у каждый час.
Еще следует отметить, что в интерфейсе придется порозбираться, поскольку возможностей много, соответственно и много всяких заморочек. Все таки, пример начальной конфигурации наведу. Предупреждаю сразу - скриншотов не будет, только текстовые название менюшек!
Итак, закладка "Console", меню "Management", пункт "Devices".
Выносим добавленный по дефолту "localhost" (проще добавить новый девайс, нежели править старый ;) ). Для этого необходимо поставить чекбокс напротив устройства, выбрать действие "Delete" и нажать кнопку "Go".
Теперь добавим даный сервер... Жмем в верхнем правом углу ссылку "Add" и заполняем поля.
- Description: вписиваем сюда то, как должно отображаться устройство в дереве устройств. Я, обычно, вписываю DNS-имя сервера, например mail.domain.com.
- Hostname: вписываем DNS-имя или IP-адрес этого хоста. Лично я предпочитаю IP-адреса. Поскольку мониторить будем локальный сервер, то вписываем IP локалхоста: 127.0.0.1.
- Host Template: необходимо указать, к какому типу принадлежит даное устройство. В нашем случае - "Generic SNMP-enabled Host".
- Disable Host: отмечаем, если необходимо отключить все проверки для данного хоста.
- Downed Device Detection: указываем метод, по которому Cacti будет проверять, доступен ли хост. Я всегда выбираю "SNMP".
- Ping Timeout Value: таймаут, который использует Cacti при мониторинге устройств. Оставляю по дефолту, поскольку выбран метод проверки SNMP.
- Ping Retry Count: количество icmp-пакетов, которое отправит Cacti перед тем, как считать, что хост недоступен. Оставляю до дефолту, поскольку выбран метод проверки SNMP.
- SNMP Version: SNMP-версия, которую использует удаленное устройство. В нашем случае - "Version 2".
- SNMP Community: указываем наше SNMP-community (можно "подсмотреть в файле /usr/local/etc/snmp/snmpd.conf, параметр rocommunity).
- SNMP Port: указываем порт, который используется для SNMP. Оставляем по дефолту - 161.
- SNMP Timeout: время в милисекундах, сколько Cacti ожидает ответа. Оставляю по дефолту - 500.
- Maximum OID's Per Get Request: максимальное количество OID-ов, которые будут передаваться в одном запросе. Оставляю по дефолту - 10.
- Notes: здесь можно написать свои примечания.
Итак, поля заполнены необходимыми даными. Жмем кнопку "Create".
Устройство добавлено. Теперь добавим еще несколько "Data Queries", поскольку по умолчанию для "Generic SNMP-enabled Host" создается только "SNMP - Interface Statistics".
Добавим еще такие "Data Queries":
- SNMP - Get Mounted Partitions - снимать статистику с разделов винчестера
- SNMP - Get Processor Information - снимать статистику загрузки процессора
После добавления "Data Queries" жмем кнопку "Save" и приступаем непосредственно с созданию графов. Жмем ссылку "Create Graphs for this Host".
Я отметил следующие графы:
SNMP - Get Mounted Partitions
- Physical memory
- Real memory
- Swap space
- /
- /home
- /tmp
- /usr
- /var
SNMP - Get Processor Information
SNMP - Interface Statistics
"Select a graph type" выставляю в значение "In/Out Bits (64-bits Counters)", поскольку net-snmp собран с поддержкой 64-битных счетчиков. Для некоторых устройств необходимо будет выставлять "In/Out Bits", если они не поддерживают 64-битные счетчики.
Жмем "Create", и попадаем на страницу выбора цвета, которым будет отрисовыватся график загрузки процессора. Это уже дело вкуса... Определившись с цветом, еще раз жмем "Create".
Теперь очередь за созданием дерева графов.
Путь следующий: закладка "Console", меню "Management", пункт "Graph Trees". Удаляем дефолтное дерево графов.
Теперь создадим свое новое... Лично я люблю сортировать по типам устройств, поэтому добавляю, например, такие:
Итак, для примера добавим дерево "Servers".
Жмем в верхнем правом углу ссылку "Add". Заполняем поля:
- Name: Servers
- Sorting Type: Alphabetic Ordering
Теперь можно добавить наш сервер в это дерево. В строке "Tree Items" жмем ссылку "Add" и заполняем поля:
- Parent Item: root
- Tree Item Type: Host
- Host: в моем случае это mail.domain.com, а в вашем - соответственно ваш сервер.
- Graph Grouping Style: Тип сортировки - Graph Template
- Round Robin Archive: Hourly
Жмем кнопку "Create", и идем любоваться графиками на закладке "Graphs".
Для того, чтобы Cacti "понимал" кирилицу, необходимо при установке rrdtool отметить опцию "DEJAVU".
Если не отметили эту опцию, пересоберите rrdtool. Удаляем опции сборки:
# rm -R /var/db/ports/rrdtool |
Удаляем и переустанавливаем rrdtool:
# cd /usr/ports/databases/rrdtool # make deinstall # make install clean # rehash
|
|