Pull to refresh

HowTo: Cacti 0.8.7g + Plugin Architecture 2.9 + Spine 0.8.7g на CentOS 5.5 i386

Reading time 6 min
Views 15K
cacti
Cacti — Веб-приложение которое поможет Вам мониторить состояние вашего сервера, CISCO и всего что может отдавать данные по SNMP протоколу. Вы сможете наблюдать за загрузкой CPU сервера, видеть на графике среднюю загрузку памяти за период времени, количество DNS запросов приходящих на сервер, количество писем (спама) приходящих на почтовый сервер. Сможете мониторить среднюю нагрузку на сеть в рабочие часы и многое другое.

Cacti Plugin Architecture — дополнение для Cacti расширяющее возможности стандартного пакета путем включения функции установки стороних плагинов.

Spine — быстрый и качественный поллер для Cacti написанный на C. Используется взамен стандартного поллера, идущего в стандартной инсталляции Cacti, cmd.php.

Показательная, базовая установка Cacti с прибомбасами на CentOS 5.5 i386. Многие элементы настройки защиты веб-сервера игнорируются, ввиду тестовой инсталляции.Все действия будут выполняться под рутом.

Начнем с инсталяции базового веб-сервера LAMP.

Устновим репозиторий RPMforge:
rpm -Uhv apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Обновим систему и ребутнёмся:
yum -y update
reboot

Установим стандартные пакеты для веб-сервера:
yum install -y mysql mysql-server mysql-devel httpd httpd-devel php php-mysql php-gd phpimap
php-ldap php-odbc php-pear php-xml php-xmlrpc php-mcrypt curl curl-devel perl-libwwwperl
libxml2 php-mbstring phpmyadmin

Настройка MySQL сервера:
chkconfig mysqld on
service mysqld start
mysql_secure_installation

Введя последнюю команду, внимательно читайте и следуйте пунктам ее вывода. В конце концов, вы должны будете поставить пароль для рута MySQL, позволить внешние подключения к серверу, отключить анонимного пользователя, удалить тестовую базу, обновить записи сервера.

Настройка Apache, httpd:
chkconfig httpd on
service httpd start


Настройка PhpMyAdmin:
vim /etc/httpd/conf.d/phpmyadmin.conf

#
# Web application to manage MySQL
#
#<Directory "/usr/share/phpmyadmin">
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
#

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

vim /usr/share/phpmyadmin/config.inc.php

Найдите следующую строку (в моем случае она 17я):
$cfg['blowfish_secret'] = '';

Пройдите по этой ссылке и скопируйте сгенирированный Blowfish секрет. Вставьте его в конце, между одиночными кавычками. Пример:
$cfg['blowfish_secret'] = '85NoZZ8_y})SzG5{ys1_#YEQoxwC*sn02%JhcK@WA';

Перегрузите httpd:
service httpd restart


Начнем инсталяцию самого Cacti.

Установим зависимости нужные Cacti:
yum install -y net-snmp net-snmp-utils rrdtool php-snmp

Добавим в автозагрузку и запустим сервис SNMP:
chkconfig snmpd on
service snmpd start

Скачаем пакеты Cacti:
wget www.cacti.net/downloads/cacti-0.8.7g.tar.gz
wget www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.9.tar.gz
wget www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz

Разархивируем их:
tar -xzvf cacti-0.8.7g.tar.gz
tar -xzvf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
tar -xzvf cacti-spine-0.8.7g.tar.gz

Создадим рабочую папку Cacti на сервере:
mkdir /var/www/cacti

Скопируем содержимое распакованной папки Cacti в рабочую папку Cacti:
cp -rf cacti-0.8.7g/* /var/www/cacti/

Создадим в системе юзера для Cacti и дадим ему соответствующие права:
useradd -c CactiUser -d /var/www/cacti/ -s /sbin/nologin cactiuser
chown -R root /var/www/cacti (изначально убедитесь что все права на папку Cacti принадлежат руту)
chown -R cactiuser /var/www/cacti/log /var/www/cacti/rra

Создадим базу данных для Cacti с привилегиями для cactiuser:
mysql -u root -p
Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 55
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database cacti;
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipassword';
mysql> flush privileges;
mysql> quit

Импортируем структуру Cacti в ее базу:
mysql -u cactiuser -p cacti < /var/www/cacti/cacti.sql
Enter password: (cactipassword)

Настроим доступ Cacti в ее базу данных:
vim /var/www/cacti/include/config.php

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipassword";
$database_port = "3306";

Перейдем в рабочую директорию Cacti и установим фиксы официальными патчами:
cd /var/www/cacti

wget www.cacti.net/downloads/patches/0.8.7g/data_source_deactivate.patch
wget www.cacti.net/downloads/patches/0.8.7g/graph_list_view.patch
wget www.cacti.net/downloads/patches/0.8.7g/html_output.patch
wget www.cacti.net/downloads/patches/0.8.7g/ldap_group_authenication.patch
wget www.cacti.net/downloads/patches/0.8.7g/script_server_command_line_parse.patch
wget www.cacti.net/downloads/patches/0.8.7g/ping.patch
wget www.cacti.net/downloads/patches/0.8.7g/poller_interval.patch
patch -p1 -N < data_source_deactivate.patch
patch -p1 -N < graph_list_view.patch
patch -p1 -N < html_output.patch
patch -p1 -N < ldap_group_authenication.patch
patch -p1 -N < script_server_command_line_parse.patch
patch -p1 -N < ping.patch
patch -p1 -N < poller_interval.patch

Обратно перейдем в домашнюю директорию:
cd

Создадим cacti.conf чтобы включить вебдоступ:
vim /etc/httpd/conf.d/cacti.conf

Alias /cacti /var/www/cacti
<Directory /var/www/cacti/>
DirectoryIndex index.php
Options -Indexes
AllowOverride all
order deny,allow
deny from all
allow from 192.168.1.0/24 (you can do it like "allow from all")
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on


Перезагрузим апач:
service httpd restart

Создадим задачу Cron для Cacti:
vim /etc/cron.d/cacti
*/5 * * * * cactiuser php /var/www/cacti/poller.php > /dev/null 2>&1

С этого момента вы можете начать использовать базовую инсталяцию Cacti в продакшане, но давайте установим дополнительный, не лишний функционал.

Cacti Plugin Architecture.

Скопируем .diff патч файл архитектуры в рабочую директорию Cacti:
cp cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff /var/www/cacti/

Перейдем в рабочую папку Cacti и выполним тестовое применение патча, дабы посматреть если есть какието помехи:
cd /var/www/cacti/

patch -p1 -N --dry-run < cacti-plugin-0.8.7g-PA-v2.9.diff

Тест должен пройти на ура, кроме одной строчки, но это не проблема:
patching file include/config.php
Hunk #1 succeeded at 30 with fuzz 1.

После того как убедились что в процессе патчинга не должно возникнуть никаких проблем применим сам патч:
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.9.diff

Отредактируем файл конфигурации Cacti:
vim /var/www/cacti/include/config.php

Найдите следующую строчку и обязательно впешите в нее рабочую директорию Cacti (начиная с рут папки веб-сервера). В нашем случае это будет выглядить так:
$url_path = "/cacti/";

Импортируем дополнительную схему базы архитектуры плагинов в базу данных Cacti:
mysql -u cactiuser -p cacti < /root/cacti-plugin-arch/pa.sql
Enter password: (cactipassword)


Перейдем к установке Spine.

Установим зависимости нужные при компиляции Spine:
yum install -y net-snmp-devel

Перейдем в распакованную папку Spine и начнем компиляцию:
cd /root/cacti-spine-0.8.7g
./configure --prefix=
make
make install

Переименуем файл конфигурации спайна:
mv /etc/spine.conf.dist /etc/spine.conf

Разрешим спайну доступ к базе данных Cacti:
vim /etc/spine.conf

DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactipassword
DB_Port 3306
DB_PreG 0


Наконецто зайдем на страничку нашего Cacti server/cacti.
Увидим пару страниц процесса «инсталяции» cacti. Два раза кликаем Next и третий раз Finish.
Логинимся в консоль: admin/admin
imageimageimage
Перейдем на страницу Settings, после на вкладку Paths.
Внизу страницы пропишим пусть к бинарнику Spine. В нашем случае:
/bin/spine

image

Затем перейдем на вкладку Poller и установим в граффе Poller Type – spine.
image

Что бы включить Plugin Management, нужно перейти на страницу User Management, вкладка Realm Permissions и поставить птичку напротив Plugin Management.
Сохраняемся.

И под конец давайте попробуем поставить один плагин.
Перейдем в папку плагинов в директории Cacti:
cd /var/www/cacti/plugins

Скачаем и разархивируем архив плагина:
wget docs.cacti.net/_media/plugin:settings-v0.7-1.tgz
mv -f plugin:settings-v0.7-1.tgz settings-v0.7-1.tgz
tar -xzvf settings-v0.7-1.tgz


После этих шагов перейдем обратно в консоль управления Cacti, на страничку Plugin Management.
Инсталируйте и включите плагин.

Вот и все.

Спасибо за ваше внимание и терпение.

UPD.:
Так выглядят стандартные графики в конце нашей инсталяции. Пробел в графике потому что я не сразу сделал этот скриншот и выключил виртуалку. Ниже приведен скрин с рабочей системы.

image

image
Tags:
Hubs:
+29
Comments 23
Comments Comments 23

Articles