Устанавливаем систему мониторинга CACTI на FreeBSD 8.2

Пошаговая инструкция по установке системы мониторинга Cacti под FreeBSD

В результате мы плучим вот такую краосту:



Интересно? погнали под кат!


Для начала нам нужно установленную систему FreeBSD 8.2 с настроенными интерфейсами и обновленным деревом портов

Если дерево портов еще не установлено делаем следующее:
>>cacti# mkdir /usr/ports
>>cacti# portsnap fetch && portsnap extract
Если система стоит уже с установленным деревом портов то делаем следующее:
>>cacti# cd /usr/ports && make fetchindex && make update
Дерево портов обновлено. Далее для системы мониторинга какти нам понадобится вебсервер с модулем php5 (я обычно ставлю Apache22) и сервер баз данных MySQL, обычно сам cacti тащит это все в зависимостях за собой но я предпочитаю устанавливать это все в ручную что бы контролировать процесс конфигурации устанавлеваемых портов. Устанаваливать будем базовые конфигурации дососточные для работоспособности системы мониторинга, Затрагивать аспекты производительности а так же безопасности демонов не будем, т.к. выйдем за рамки статьи.

Итак установка Apache22 + mod_php5:
>>cacti# cd /usr/ports/www/apache22/
>>cacti# make config-recursive
Данная команда дает сконфигурировать все зависимые порты сразу что бы не тыкать потом конфигурации отдельно



Ну вот сконфигурировали, теперь собираем и устанавливаем:
 >>cacti# make install
После установки спамим в rc.conf для старта апача и дальнейшего его автозапуска после ребута.
>>cacti# echo 'apache22_enable="YES"' >> /etc/rc.conf
Далее открываем конфиг Apache22, задаем параметр ServerName, и так как мы собрали многопоточный апач (с параметром THREADS) мы ищем и коментирум модуль unique (подробнее об этот тут).
>>cacti# ee /usr/local/etc/apache22/httpd.conf

ServerName     cacti.local
#LoadModule     unique_id_module
После чего стартуем apache22 и проверяем его доступность
/usr/local/etc/rc.d/apache22 start
Видим долгожданное It Works!



И идем дальше: устанавливаем php5 c поддержкой mod+php5 для apache22
>>cacti# cd /usr/ports/lang/php5/
>>cacti# make config-recursive


 

Ставим поддержку апача соберется с модулем mod_php5, я обычно отключаю во всех кончиругацияю поддердку IPV6.

Сконфигурировали теперь устанавливаем:
>>cacti# make install
После чего скопируем сразу из примера файл конфиругации php.ini и настроим временную зону в нем:
cacti# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
cacti# ee /usr/local/etc/php.ini
Найдем там раздел [Date] и установим таймзому
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone = "Europe/Moscow"
Установка php5 автоматечески добавит собраный модуль php5_module в конфиг апача и напомнит что мы должны добавить туда типы сответствий



Что мы и делаем, открываем /usr/local/etc/apache22/httpd.conf
ee /usr/local/etc/apache22/httpd.conf
Убеждаемся что установка php5 доьавила свой модуль в секцию с модулями LoadModule php5_module   libexec/apache22/libphp5.so. Далее ищим радел с типами <IfModule mime_module> и после строки TypesConfig etc/apache22/mime.types вставляем сответствие наших пхпшных маймтайпов которые попросил нас вставить пхп5 после установки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Ищем DirectoryIndex и добавляем туда index.php.Должно получиться:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
после чего перезапускаем apache и проверяем, ключ graceful перезамускает апач без сброса сессий, просто перечитывает конфиг и применяет его:
cacti# /usr/local/etc/rc.d/apache22 graceful

Performing sanity check on apache22 configuration:
Syntax OK
Performing a graceful restart
Что бы проверить работоспособность php5 добавим функцию phpinfo() в файл индекса
touch  /usr/local/www/apache22/data/index.php
ee  /usr/local/www/apache22/data/index.html
и вставляем:
<html><body><h1>It works!</h1>
<?php
phpinfo();
?>
</body></html>
Проверяем в браузере и двигаем дальше:



Устанавливаем MySQL Сервер:
>>cacti# cd /usr/ports/databases/mysql55-server/

>>cacti# make install clean
Спамим в /etc/rc.conf
echo 'mysql_enable="YES"' >> /etc/rc.conf
Запускаем и проверяем:
cacti# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
cacti# sockstat | grep sql
mysql    mysqld     64114 10 tcp4 6 *:3306                *:*
mysql    mysqld     64114 12 stream /tmp/mysql.sockВсе ок порт 3306 слушается черед tcp4 демоном mysqld.
Уставанливаем сам сервер мониторинга CACTI:
cacti# cd/usr/ports/net-mgmt/cacti
cacti# make config-recusrive
cacti# make install clean
После оокнчания установки инсталлятор выдаст инструкцию, коей ибудем следовать. Позволю ее перевести вольным переводом на русский:
=======================================================================
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. Создаем базу MySQL :
# mysqladmin --user=root create cacti
2. Создаем связку пользователь/пароль для cacti:
(смените пользователя и пароель если необходимо, можно не изменять будет работаьт с дефолтными настройками)
# echo "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser'; FLUSH PRIVILEGES;" | mysql
3. Импортируем SQL базу cacti по шаблону:
# mysql cacti < /usr/local/share/cacti/cacti.sql
4. Открываем и изменяем конф. файл по вкусу/usr/local/share/cacti/include/config.php. (можно не делать работает по дефолту)
5. Добавляем следующую команду пользователю cacti в cron:
# crontab -u cacti -e
*/5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
6. ДОбавляем alias в конфиг апача для cacti:
Alias /cacti "/usr/local/share/cacti/"
7. Убедитесь что в конфиге апача в настройках директории доступ разрешен ('Allow from' айпи адрес, или *, если разрешаете от всех).
8. Откройте веб браузер по адресу имя_хоста_или_ipaddress/cacti/ и авторизируйтесть с пользователем и паролем admin/admin.

Если вы обновляете cacti, открыв главную страницу, Процесс обновления запустится автоматичеки.
=======================================================================

Пункты которые могут вызвать сложность я ниже прокоментировал как сделать:

 

5. откроется файл кнронтаб в релакторе VI, вы нажмте i (что переведет редактор в режим ввода «insert»)? введете строку с заданием
*/5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
Далее один раз нажмете «ESC», что выведет редактор из режима редактирования, и нажмте ":" что переведет редактор в командный режим, внизу появится двоеточие и курсор переместится туда,
после чего вы вводите «wq!» и нажмете клавишу «ENTER».Эти три симвоа означают (W)rite — записать, (Q)uit — выйти, (!) — сделать это незамедлительно force режим.

6, 7. Открываем конфиг апача на редактирование и после строки DocumentRoot вставляем:
cacti# ee /usr/local/etc/apache22/httpd.conf

Alias /cacti/ "/usr/local/share/cacti/"

<Directory "/usr/local/share/cacti">
Options Indexes FollowSymlinks MultiViews
AllowOverride AuthConfig
Order deny,allow
Allow from all
</Directory>
Перезамускаем апач,.т.к. внесли изменения в конфиг, открывает браузер, авторизируемся и проверяем.
cacti# /usr/local/etc/rc.d/apache22 graceful
Вот Пруф ) удачного мониторинга

1 комментарий

avatar
Здравствуйте!
Простите, что лезу с вопросами, но перерыла уже весь интернет и никак не могу найти ответ. При установке cacti руководствовалась этой статьей. apache,php,mysql проставились все отлично. При самой установке cacti он начал ругаться на порт snmp. Порты обновила. Эта ошибка исчезла, зато появилась новая. Ругается на порт php5-snmp. Я так поняла в строках файла /usr/ports/net-mgmt/php5-snmp/work/php-5.4.4/ext/snmp/snmp.c есть ошибки, т.к. бесконечно сыплет строками наподобие:/usr/ports/net-mgmt/php5-snmp/work/php-5.4.4/ext/snmp/snmp.c:2473:warning:initialization discards qualifiers from pointer target type
ну и соответственно вылазит ошибка и установка делает «stop»
Подскажите, пожалуйста, в чем же дело?
порты обновляла не раз(((
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.