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

    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
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 23
    • 0
      Хотел недавно написать турториал по установке cacti, webmin, и некоторых полезных модулей для них, но подумал, что на хабре никому не нужен скомпилированный из трех английских how to install пост.
      Надеюсь, пользователям хабра он все-таки окажется интересен.
      • +7
        А чеза хауту по вебмину? связанным с какти какимто модулем?
        Насчет «не интересно» согласен. Тенденция показывает что на хабре интреснее считать чужие деньги, электронная комерция и маркетинг, обсуждать кто что сделал. холивары по браузерам. евангелистика эпла. и читать всякие мотивационные статьи с надеждой что они помогут растрясти толстые задницы…
        пичалько… (
        • 0
          С webmin скорее не howto по установке, а объяснение, что это, чем он отличается от cloudmin и virtualmin, и как этим начать пользоваться.
          В итоге буду публиковать это у себя, если надумаю — тут такого не нужно, слишком просто для здешней тематики.
          • 0
            согласен. webmin слишком тривиально. а вот другие навороченные хауту и конфиги — милости просим. с удовольствием почитаю и научусь чемунить новому.
      • 0
        опыт показал:
        — без boost plugin-a у вас машинка быстро присядет имея пару тысяч DataSource-ов, создавая нагрузку на HDD
        — и еще не маловажный момент: надо проверять хосты на доступность, так как если многие не доступны, будут задержки по SNMP и соотв. пустоты в графиках
      • 0
        А картинки с полученным в итоге видом интерфейса у вас случайно нету?
        • 0
          а что вам собственно нужно? картинки графика? конечно есть… вам в каком виде? каждый по отдельности или на одной странице все… а впрочем, так как инсталяция обсалютно дефолтная вы можете найти картинки какти в гугле.
          В этой статье я не брался описывать процесс манипуляции над темплейтами графиков, управлением RRD… может быть в следующий раз.
          • 0
            Скриншот после выполнения полученных действий :)

            А то действий много, хорошо все описано, а потом «установите плагин и готово». Что готово… как оно должно выглядеть если все прошло успешно… незавершенно как-то получилось :)
            • 0
              готово
              • 0
                Установленный плагин практически никак не влияет на внешний вид граффиков и системы. Немного расширяет настройки системы.
        • 0
          Ребят может кто подскажет как бороться с зависимостями в ubuntu:
          The following packages have unmet dependencies:
          php5-snmp: Зависит: php5-common (= 5.3.3-1ubuntu9.3) but 5.3.3-6 is installed.
          The following actions will resolve these dependencies:

          Keep the following packages at their current version:
          1) cacti [Not Installed]
          2) php5-snmp [Not Installed]
          • 0
            не сталкивался с подобного рода проблемой, так как не отдаюсь под полную власть линуксов. так настрою сервачок и забываю про линь до следующего раз. а deb-based дистры вабще избегаю.
            вы пытались поставить какти из репы? лично я не советую, сам прошел через это и убедился что эту апликацию лучше ставить в ручную.
            • 0
              Да уже скачал архивчик, будем по старинке делать)
              А про поводу deb-based — подсел… ничего не хочу с этим поделать)))
              Только вот уже 2ой раз натыкаюсь на конфликт версий)
              • 0
                ну ничего ен могу добавить.
                просто я оч привык к Ред-Хат, ЦентОС… как никак лидеры опенсорса. Многие дистры всяких приложений делаются на основе этих двух основных дистров, всякие там астериски типа эластиксов… почтовые сервера типа айредмейл… и тп и тд.
                вобщем кому что легче и кто к чему привык изначально, туториалов достаточно по обоим веткам.
                А насчет конфликта версий, у меня только один раз было такое на федоре очень очень давно.
                Наверно просто потому что не так часто сижу за линем… хотя как посматреть.
                • 0
                  да было бы время — с удовольствием познакомился с другими дистрибутивами, но на данный момент надо успевать крутить то что знаю
          • 0
            1. А что делает plugin settings?
            2. Почему на cactiusers указана и более старая версия plugin architecture и settings чем у вас?

            Спасибо большое за хорошую статью
            • +1
              плагин сетингс добавляет дополнительные настройки в меню стандартных настроек какти.а также тудаже добавляет вкладку «Misc» куда будут добавлять свои настройки другие установленные плагины… вроде както так…

              Почему у меня новее? потому что я все качал с оффициального сайта какти.видать кактиюзерс больше не обновляется и решили унифицировать локейшен всего что касается какти. Последняя стабильная версия Архитектуры Плагинов именно 2,9… можете зайти на форум какти и в форуме «Announcements» увидеть прикрепленное объевление про эту версия Архитектуры

              Незачто )… Писал по мере того как сам окончательно разбирался в установке. Тоесть изначально шпаргалка для самогоже себя
            • 0
              Debian Lenny — настроил по статье. Полет нормальный. Единственное что перед настройкой сделал aptitude install cacti, cacti-spine чтобы зависимости установить.
              • 0
                А вы не подскажите как установить шрифты в какти другие. Никак не получается задать шрифт свой.

                Я так понял, нужно посмотреть какие шрифты в системе установлены через fc-list и прописать какой — либо шрифт, в таком же формате как там, либо используя вывод, прописать в другом синтаксисе, либо шрифты не валидны.

                Title Font File
                The font to use for Graph Titles

                For RRDtool 1.3 and above, the font name conforming to the pango naming convention:
                You can to use the full Pango syntax when selecting your font: The font name has the form "[FAMILY-LIST] [STYLE-OPTIONS] [SIZE]", where FAMILY-LIST is a comma separated list of families optionally terminated by a comma, STYLE_OPTIONS is a whitespace separated list of words where each WORD describes one of style, variant, weight, stretch, or gravity, and SIZE is a decimal number (size in points) or optionally followed by the unit modifier «px» for absolute size. Any one of the options may be absent.
                • 0
                  к сожалению не сталкивался с подобным.
                  в недра РРДтулса не залазил хотя было пару тем по поводу изменению толщины и цвета линий на графике, всякий косметические штучки. но руки так и не дошли до конца освоить интрумент используемый в инструменте.
                  • 0
                    Обидно =( А я так и не пойму как прописать в какти надо и вроде шрифты установил из репозиториев и по доке ррдтула пытался прописать и по доке какти.
                    Эффект никакой. Постоянное [NO FONT VERIFICATION POSSIBLE]

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

                Самое читаемое