Июл 022011
 

Как и любому админу захотелось мониторить свои сервера, чтобы рисовались красивые графики и т.д.
На домашнем сервере 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. добавил свои графики, пока особо не настраивал, самое главное только.