Как и любому админу захотелось мониторить свои сервера, чтобы рисовались красивые графики и т.д.
На домашнем сервере cacti стоит уже довольно таки давно, сейчас я его раскатывать буду на рабочем сервере, точнее на файлопомойке 🙂
Делаем
cd /usr/ports/net-mgmt/cacti/ && make install clean
и ждем пока установится cacti
При установке 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 requered) # 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/db-settings.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. Open a cacti login page in your web browser and login with admin/admin. If you update cacti, open a login page right now. An updating process will run automatically. =======================================================================
Согласно инструкции приступаем к настройке.
mysql --user=root --password=passwd_mysql --execute="CREATE DATABASE cacti";
Создаем пользователя и даем ему права на базу.
mysql --user=root --password=passwd_mysql --execute="GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser'; FLUSH PRIVILEGES;"
И меняем пароль на свой
mysql --user=root --password=passwd_mysql --execute="SET PASSWORD FOR 'cactiuser'@'localhost'=PASSWORD('cacti')"
Далее заливаем дамп базы который шел вместе с cacti
mysql --user=cactiuser --password=cacti --database=cacti < /usr/local/share/cacti/cacti.sql
После того как залили дамп базы, подправим конфиг веб морды cacti
ee /usr/local/share/cacti/include/config.php
до такого состояния
<?php /* make sure these values refect your actual database/host/user/password */ $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cacti"; $database_port = "3306"; ?>
И правим конфиг нашего веб сервера, сейчас у меня стоит только индеец, так что будем его использовать в качестве веб сервера
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>
И перезапускам индейца нашего
/usr/local/etc/rc.d/apache22 restart Performing sanity check on apache22 configuration: Syntax OK Stopping apache22. Waiting for PIDS: 51370. Performing sanity check on apache22 configuration: Syntax OK Starting apache22.
Далее заходим по адресу http://ваш_ип_адрес/cacti/ и приступаем к завершающей стадии настройки cacti
Все время жмем далее, до окна ввода логина и пароля.
По умолчанию логин admin пароль admin, после сразу же будет предложено сменить стандартный пароль на наш собственный, что собственно говоря и делаем.
После авторизации мы попадаем в основное меню.
Но нам пока рано приступать к настройкам самого cacti
Для начала пробуем запустить скрипт для опроса устройств
/usr/local/bin/php /usr/local/share/cacti/poller.php
Если у нас в консоль вываливается такого плана данные, значит все работает нормально и на все хватает прав.
cat: /proc/meminfo: No such file or directory cat: /proc/meminfo: No such file or directory OK u:0.02 s:0.00 r:0.11 OK u:0.02 s:0.00 r:0.11 OK u:0.02 s:0.00 r:0.13 OK u:0.02 s:0.00 r:0.13 OK u:0.02 s:0.00 r:0.14 OK u:0.02 s:0.00 r:0.15 OK u:0.02 s:0.00 r:0.16 OK u:0.02 s:0.00 r:0.16 02/11/2014 02:54:08 PM - SYSTEM STATS: Time:0.3058 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5 OK u:0.02 s:0.00 r:0.18 OK u:0.02 s:0.00 r:0.18
То что скрипт немного ругнулся, это ничего страшного, так как он более заточен под Linux
Далее его вносим в крон, согласно как было указано выше.
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
Далее нам необходимо поставить пакет net-snmp, переходим в его расположение и ставим
cd /usr/ports/net-mgmt/net-snmp/ && make install clean && rehash
После установки приступаем к настройке файла конфигурации и проводим его к такому виду.
/usr/local/etc/>echo 'snmpd_enable="YES"' >> /etc/rc.conf /usr/local/etc/>mkdir snmp /usr/local/etc/>cd snmp/ /usr/local/etc/snmp/>touch snmpd.conf /usr/local/etc/snmp/>
syslocation "FreeBSD" syscontact sysops rwuser my_server noauth rocommunity my_server rwcommunity my_server trapsink localhost my_server trap2sink localhost my_server informsink localhost my_server trapcommunity my_server authtrapenable 2
После чего запускаем сам сервис.
# /usr/local/etc/rc.d/snmpd restart Stopping snmpd. Waiting for PIDS: 1522. Starting snmpd. # ps -ax | grep snm 54727 ?? S 0:00.05 /usr/local/sbin/snmpd -p /var/run/net_snmpd.pid 54729 3 S+ 0:00.00 grep snm
После чего пробуем
snmpwalk -c my_server -v 1 localhost
Если в ответ выводится большой список миб’ов, значит все получилось, если нет, ищем ошибки в файлах конфигурации.
Также можно подключить к мониторингу виндовые машины — надо тока на них запустить snmp (службу), указать сообщество, и всё. Тока шаблон для них соответственный надо выбрать из списка.
Слово my_server выступает в роли и логина и пароля, так что необходимо придумать более сложный логин/пароль.
Про настройку веб интерфейса можно говорить долго, но лучше нормально один раз разобраться и потом будет все понятно.
Еще один момент, опрос устройств идет раз в 5 минут, иногда уходит до часа времени чтобы появились хоть какие то рисунки на графиках.
P.S. вот это я ленивый…начал писать статью 02.07.2011 закончил 11.02.2014
P.S.S. добавил свои графики, пока особо не настраивал, самое главное только.