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

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

Просмотров: 6558Комментарии: 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 гигами оперативы.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена.

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

(обязательно)