Архив заметок

Мониторинг сервера с помощью Cacti и Spine регистратора

Просмотров: 12124Комментарии: 2
FreeBSDСтатистика

Приветствую всех.

В предыдущей статье я уже пытался написать об этой программе. По некоторым причинам ее закончить не удалось.

Сегодня написал заново статью, возможно пригодится кому-нибудь в будущем или настоящем.

Ремарка: У вас уже должно быть установлено и настроено следующее ПО:
  • apache/nginx
  • php
  • mysql

Установка и настройка этих пакетов выходят за рамки этой статьи.

В настоящее время я перешел на обновление портов через svn, cvs скоро отомрет как ненужный атавизм.

Напомню, что перед любой установкой софта, обязательно обновите порты.

После обновления, установим cacti, net-snmp, cacti-spine

# portmaster net-mgmt/cacti net-mgmt/cacti-spine net-mgmt/net-snmp

Что указал я:

net-snmp.jpg

После установки необходимо создать БД для cacti. Я делал это с помощью phpmyadmin, вы же можете создать как удобнее вам. Через консоль:

  1. Создаем БД:
  2. # mysqladmin --user=root create cacti
  3. Создаем в mysql пользователя и пароль для бд cacti:
  4. # echo "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';
    FLUSH PRIVILEGES;" | mysql
  5. Импортуруем таблицы в нашу бд:
  6. # mysql -u cactiuser -p -D cacti < /usr/local/share/cacti/cacti.sql
    Синтаксис Mysql немного поменялся со временем. Я добавил недостающие ключи для корректного импорта, а именно:
    [ul]
  7. -u пользователь;
  8. -p пароль;
  9. -D база данных
  10. [/ul]

После импорта, добавляем в крон задачку регистратора (кстати, при смене регистратора с cmd.php на spine менять задание в планировщике не надо)

Замечание: Во FreeBSD в отличие от Linux задание в планировщике пишется следующим образом:

*/5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php >
/dev/null 2>&1

Вместо:

*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php >
/dev/null 2>&1

Чтобы добавить задание в планировщик от пользователя cacti:

# crtontab -u cacti -e

Сразу замечу у кого оболочка csh. Для проверки регистратора в командной строке пишите следующее:

# sh -c '/usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1'

После того, как сохранили крон пользователя cacti, приступаем к конфигу веб морды.

В файле /usr/local/share/cacti/include/config.php прописываем учетные данные от БД, которую создавали ранее:

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "пароль";
$database_port = "3306";
$database_ssl = false;

Сохраняем. Затем, если у вас стоит apache пишем в 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>

Если стоит nginx, в файле nginx.conf пишем:

location /cacti {
            alias       /usr/local/share/cacti/;
            index       index.html index.htm index.php;
        }

И создаем ссылку

# pwd
/usr/local/www/nginx
# ln -s /usr/local/share/cacti cacti

Что должно получиться для nginx

# ll | grep cacti
lrwxr-xr-x  1 root  wheel  -  22 17 фев 15:47 cacti@ -> /usr/local/share/cacti

Делаем reload для apache/nginx и открываем установщик по адресу:

https://ваш_адрес/cacti

В принципе там все уже указано и можно все значения оставить по умолчанию

cacti_install.jpg

Так же не забываем выставить разрешения на папку /usr/local/share/cacti и на /usr/local/share/cacti/rra в частности. В каталоге rra cacti будет создавать графики.

Настроим net-snmp1.

В каталоге /usr/local/etc создадим папку snmp. В ней создадим файл snmpd.conf с таким содержимым:

syslocation  "Где-то рядом"
syscontact  имя_для_контакта
rwuser  community noauth
rocommunity  community
rwcommunity  community
trapsink  localhost community
trap2sink  localhost community
informsink  localhost community
trapcommunity  community
authtrapenable  2

Запускаем snmpd и тестируем настройки:

# snmpwalk -c community -v 1 localhost .
............
SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyStatus."_all_".1.0 = INTEGER: active(1)
SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyStatus."_all_".1.1 = INTEGER: active(1)
SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyStatus."_all_".1.2 = INTEGER: active(1)
SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyStatus."_none_".1.0 = INTEGER: active(1)
SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyStatus."_none_".1.1 = INTEGER: active(1)
SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyStatus."_none_".1.2 = INTEGER: active(1)
End of MIB

SNMP настроен, двигаем дальше.

По-умолчанию стоит cmd.php регистратор, его в принципе хватает для работы cacti. Но я пошел немного дальше и установил spine регистратор написанный на C.

Мы его уже установили, теперь надо настроить. Прописываем данные от БД cacti, т.е. имя пользователя, пароль и имя бд в файл /usr/local/etc/spine.conf:

DB_Host         localhost
DB_Database     cacti
DB_User         cacti
DB_Pass         пароль
DB_Port         3306
DB_PreG         0
Значение в последней строке DB_PreG меняется в зависимости от версии cacti. Если версия ниже 0.8.7, выставляете значение 1, если выше, то оставляете значение 0.

Заходим в настройки в веб морде и меняем cmd.php на spine:

spine.jpg

Так же не забываем указать путь spine:

spine_path.jpg

После этого создаем Device. Для своего тазика я выбрал host template - ucd/net SNMP Host. Затем уже вручную добавлял необходимые графики:

beast.jpg

Пример графиков:

traff.jpg

Комментариев: 2 RSS

1skeletor19-02-2013 16:13

А чем он лучше/хуже стандартного poller'a?

2Vladimir19-02-2013 17:09

Он быстрее. На порядок ниже время опроса устройств, чем у стандартного poller'a.

Как говорит оф. сайт, меньше чем за 60 секунд может быть опрошено до 20000 источников данных на Xeon'e с 4 гигами оперативы.

Вы можете войти под своим логином или зарегистрироваться на сайте.