HowTo: Cacti 0.8.7g Plugin Architecture 2.9 Spine 0.8.7g на CentOS 5.5 i386 / Хабр

HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр Сертификаты
Содержание
  1. Что такое cacti?
  2. About
  3. Asp linux server 4
  4. Centos, yumex,scientific linux и прочие клоны rhel
  5. Cisco
  6. Community forums
  7. Contribute
  8. Data collection (the poller)
  9. Data sources
  10. Documentation
  11. Dynamic graph viewing experience
  12. Fedora core 3-6
  13. Github development
  14. Github documentation
  15. Graph options
  16. Graphs
  17. Howto: cacti 0.8.7g plugin architecture 2.9 spine 0.8.7g на centos 5.5 i386
  18. Important
  19. Index
  20. Linux/unix
  21. Num_indexes
  22. Php-snmp
  23. Plugin framework
  24. Query
  25. Requirements
  26. Rrdtool
  27. Rrdtool graph options
  28. Running database upgrade script
  29. Templating
  30. Updating cacti version in database
  31. Добавление хоста linux/unix
  32. Другие интересные ссылки
  33. Источники
  34. Как установить cacti server в ubuntu 18.04
  35. Настройка
  36. Настройка cacti
  37. Настройка mysql
  38. Настройка web сервера apache
  39. Настройка часового пояса mysql для пользователя базы данных cacti
  40. Настройте базу данных mariadb для cacti
  41. Настройте контроль доступа к сайту cacti apache (необязательно):
  42. Общие параметры
  43. Периодический запуск с помощью cron
  44. Поля данных
  45. Скрипт
  46. Установка
  47. Шаг 1. обновите систему и обновите все пакеты
  48. Шаг 1: настройка cacti на новом сервере
  49. Шаг 2: отключение poller на обоих серверах
  50. Шаг 2: установите php и необходимые модули
  51. Шаг 3. установите веб-сервер apache
  52. Шаг 3. установите сервер mariadb
  53. Шаг 3: миграция базы данных cacti
  54. Шаг 4. подготовка и перенос файлов rrd
  55. Шаг 4. подготовка и перенос файлов rrd
  56. Шаг 4: установите snmp и cacti
  57. Шаг 5: настройте snmp
  58. Шаг 6: активация poller
  59. Шаг 6: настройте cacti server
  60. Шаг 8: мониторинг локального сервера cacti

Что такое cacti?

Cacti — это полностью открытый инструмент сетевого мониторинга и построения графиков, который был разработан как интерфейсное приложение для стандартного отраслевого инструмента регистрации данных RRDtool. Cacti использует всю мощь функций хранения данных и построения графиков RRDTool. Вот некоторые хорошие особенности Cacti:

  • Быстрый опрос метрик
  • Поддержка нескольких методов сбора данных
  • Поддержка расширенных шаблонов графиков
  • Функциональность управления пользователями с помощью ACL

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

About

Cacti is a complete network graphing solution designed to harness the power of
RRDtool’s data storage and graphing functionality providing the following
features:

Asp linux server 4

Убедитесь, что у Вас установлен yum:

rpm -q yum

Убедитесь что репозиторий обновлений включен просмотрите содержимое файла /etc/yum.repos.d/asplinux-updates.repo оно должно быть следующим:

 [updates] name=ASPLinux $releasever - $basearch - Updates

 baseurl=

Дайте команду установить cacti :

yum install cacti

Вы должны увидеть примерно следующее:

Centos, yumex,scientific linux и прочие клоны rhel

Для установки Вам потребуется настроить yum для работы с репозиторием Dag Wieers. Вам необходимо создать файл /etc/yum.repos.d/dag.repo следующего содержания для дистрибутивов основанных на RHEL4 :

Cisco

Для настройки SNMP выполните вход на маршрутизатор под пользователем, перейдите в привилегированный режим «enable», затем выполните:

#conf t(config)#access-list 555 permit <ip адрес>

(config)#access-list 555 deny any

(config)#snmp-server community public RO 555

(config)#exit

#write memory

#exit

Где <ip адрес> – это адрес машины с установленным пакетом Cacti.

Community forums

Given the large scope of Cacti, the forums tend to generate a respectable amount
of traffic. Doing your part in answering basic questions goes a long way since
we cannot be everywhere at once. Contribute to the Cacti community by
participating on the Cacti Community Forums.

Contribute

Check out the main Cacti web site for downloads, change
logs, release notes and more!

Data collection (the poller)

Local and remote data collection support with the ability to set collection
intervals. Check out Data Source Profile with in Cacti for more
information. Data Source Profiles can be applied to graphs at creation time or
at the data template level.

Data sources

Cacti handles the gathering of data through the concept of data sources. Data
sources utilize input methods to gather data from devices, hosts, databases,
scripts, etc… The possibilities are endless as to the nature of the data you
are able to collect.

Documentation

Documentation is available with the Cacti releases and also available for
viewing on the Documentation
Repository.

Dynamic graph viewing experience

Cacti allows for many runtime augmentations while viewing graphs:

  • Dynamically loaded tree and graph view

  • Searching by string, graph and template types

  • Viewing augmentation

  • Simple time span adjustments

  • Convenient sliding time window buttons

  • Single click realtime graph option

  • Easy graph export to csv

  • RRA view with just a click

Fedora core 3-6

В данных дистрибутивах пакет Cacti содержится в дополнительном репозитории extras который включен по умолчанию.

Процесс установки Cacti аналогичен установке ASP Linux Server 4 т. е. Просто наберите:

yum install cacti

Github development

Get involved in development of Cacti! Join the developers and community on
GitHub!

Github documentation

Get involved in creating and editing Cacti Documentation! Fork, change and
submit a pull request to help improve the documentation on
GitHub.

Graph options

  • Full right axis

  • Shift

  • Dash and dash offset

  • Alt y-grid

  • No grid fit

  • Units length

  • Tab width

  • Dynamic labels

  • Rules legend

  • Legend position

Graphs

Graphs, the heart and soul of Cacti, are created by RRDtool using the defined
data sources definition.

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.my-sertif.ru/downloads/cacti-0.8.7g.tar.gz
wget www.my-sertif.ru/downloads/pia/cacti-plugin-0.8.7g-PA-v2.9.tar.gz
wget www.my-sertif.ru/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.my-sertif.ru/downloads/patches/0.8.7g/data_source_deactivate.patch
wget www.my-sertif.ru/downloads/patches/0.8.7g/graph_list_view.patch
wget www.my-sertif.ru/downloads/patches/0.8.7g/html_output.patch
wget www.my-sertif.ru/downloads/patches/0.8.7g/ldap_group_authenication.patch
wget www.my-sertif.ru/downloads/patches/0.8.7g/script_server_command_line_parse.patch
wget www.my-sertif.ru/downloads/patches/0.8.7g/ping.patch
wget www.my-sertif.ru/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.my-sertif.ru/_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

Important

When using source or by downloading the code directly from the repository, it is
important to run the database upgrade script if you experience any errors
referring to missing tables or columns in the database.

Changes to the database are committed to the cacti.sql file which is used for
new installations and committed to the installer database upgrade for existing
installations. Because the version number does not change until release in the
develop branch, which will result in the database upgrade not running, it is
important to either use the database upgrade script to force the current version
or update the version in the database.

Index

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

|host_hostname|

Linux/unix

Убедитесь, что на Linux машине установлен пакет net-snmp:

rpm -q net-snmp

Если данный пакет не установлен, то Вам следует установить его:

yum install net-snmp

Перейдите в каталог /etc/snmp/ внесите изменения в файл snmp.conf Он должен выглядеть следующим образом:

Num_indexes

Количество индексов из первого режима:

Php-snmp

We mark the php-snmp module as optional. So long as you are not using ipv6
devices, or using snmpv3 engine IDs or contexts, then using php-snmp should be
safe. Otherwise, you should consider uninstalling the php-snmp module as it
will create problems. We are aware of the problem with php-snmp and looking to
get involved in the php project to resolve these issues.

Plugin framework

Cacti is more than a network monitoring system, it is an operations framework
that allows the extension and augmentation of Cacti functionality. The Cacti
Group continues to maintain an assortment of plugins. If you are looking to add
features to Cacti, there is quite a bit of reference material to choose from on
GitHub.

Query

Выполняется для всех полей данных определённых как

Input

. На выходе должны получить

index output_delimeter <значение>

для каждого индекса и указанного поля данных, каждое с новой строки. Так как в шаблоне определено только одно значение, а индекс у нас является легко читаемым, поэтому используем его же в качестве результата:

Requirements

Cacti should be able to run on any Linux, UNIX, or Windows based operating
system with the following requirements:

  • PHP 7.2.5

  • MySQL 5.6.5 , MariaDB 10.0

  • RRDtool 1.3 , 1.5 recommended

  • NET-SNMP 5.5

  • Web Server with PHP support

PHP Must also be compiled as a standalone cgi or cli binary. This is required
for data gathering via cron.

Rrdtool

RRDtool is available in multiple versions and a majority of them are supported
by Cacti. Please remember to confirm your Cacti settings for the RRDtool version
if you having problem rendering graphs.

Rrdtool graph options

Cacti supports most RRDtool graphing abilities including:

Running database upgrade script

sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`

Templating

Bringing it all together, Cacti uses and extensive template system that allows
for the creation and consumption of portable templates. Graph, data source, and
RRA templates allow for the easy creation of graphs and data sources out of the
box. Along with the Cacti community support, templates have become the standard
way to support graphing any number of devices in use in today computing and
networking environments.

Updating cacti version in database

update version set cacti = '1.1.38';

Note: Change the above version to the correct version or risk the
installer upgrading from a previous version.

Добавление хоста linux/unix

Перейдите в пункт «Devices» в левой части экрана.

Нажмите «Add» для добавления нового хоста. В появившемся окне заполните поля следующим образом: Description – Описание сервера. Hostname – IP адрес, дибо доменное имя хоста. Host Template – оставьте значение данного параметра в «None». Также заполните раздел «SNMP Options» в соответствии с настройками которые Вы сделали на контролируемом сервере, правильно заполните поля SNMP Community, SNMP Version,SNMP Port и т.д.

Про сертификаты:  ООО «СВТехникс»: Сертификаты

После заполнения всех необходимых параметров нажмите «Create». Откроется окно с установками вновь созданного хоста.

Перейдите в нижнюю часть экрана, там находится 2 раздела «Associated Graph Templates» и «Associated Data Queries»

Вам необходимо добавить в раздел «Associated Graph Templates» 3 шаблона «ucd/net – CPU Usage», «ucd/net – Load Average», «ucd/net – Load Average», а в раздел «Associated Data Queries» добавить «SNMP – Interface Statistics» и «SNMP – Get Mounted Partitions».

Теперь выберите пункт «Create Graphs for this Host» сверху страницы, и в появившемся окне выберите необходимые данные для графического отображения.

После нажатие на кнопку «Create» необходимые данные будут добавлены.

Теперь перейдите в пункт меню «Graph Trees», выберите дерево по умолчанию «Default Tree», нажмите кнопку «ADD».

В появившемся меню

В «Parent Item» оставьте «root» В «Tree Item Type» выберите значение «Host» В «Host» выберите то имя которое Вы присвоили вашему хосту. После заполнения всех полей нажмите «Create».

Все графики созданы и размещены.

Для просмотра графических данных перейдите в меню «Graphs» в верхней части экрана и выберите созданный хост.

Другие интересные ссылки

1. Для тех, кто только начинает.

Источники

1. Одна из самых первых/интересных записей.

2. Страничка посвященная Weathermap.

Как установить cacti server в ubuntu 18.04

Cacti имеет ряд зависимостей, которые необходимо установить и настроить, прежде чем вы сможете развернуть сам сервер Cacti. В этом руководстве будет рассмотрена установка этих зависимостей одну за другой:

Настройка

1. Создание карты.
Для создания карты необходимо воспользоваться редакторов. Для его активации установим $ENABLED=true в файле /usr/share/cacti/site/plugins/weathermap/editor.php. Выглядит редактор так:
HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр

В редакторе можно создать карту «с нуля» или как копию уже существующей.

2. Окно редактирования карты выглядит так:
HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр
HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр
HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр

Если нас не устраивает набор стандартным фонов, то можно загрузить свой. Делается это путем помещения изображения в папку /usr/share/cacti/site/plugins/weathermap/images/.

3. Добавление элементов на карту.Основными элементами карты являются ноды (nodes, узлы) и связи (links). Оборудование на карте отображается нодами. Следует отметить, что основным параметром ноды является ее изображение. Стандартный набор не богат, но если Вам необходимо собственное изображение для ноды, то его можно загрузить в папку /usr/share/cacti/site/plugins/weathermap/images/.

Ноды связываются между собой линками. Для добавления линка мы нажимаем на кнопке главного меню «Add Link», потом на первом устройстве и на втором. Хочу заметить, что важен порядок нажатия на устройствах. Дело в том, что связь мы добавили, но она не привязана ни к одному из графиков:
HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр
HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр

Так вот, источником должно служить устройство на которое мы нажимали первым при построении связи. Если выбрать второе устройство, то загруженность линков будет зеркальной (при большое отдаче трафика будет показывать увеличение входящего трафика).

Сохранять карту каким-то образом не нужно. При создании карты создается конфигурационный файл карты (в нашем случае /usr/share/cacti/site/plugins/weathermap/configs/TEST, TEST — имя карты). Для отображения карты в самом Cacti необходимо добавить ее список отображаемых карт. Для этого: Console->Weathermap->Add, выбираем созданную карту и еще раз нажимаем Add:

Если после этого нажать на вкладку Weathermap, то увидим нашу карту (создается в течении 5 минут, после отработки poller’а). Пример элементарный, но достаточный для того что-бы понял как создать карту:

Карта создана и мы можем наблюдать загрузку линков. Но для того что бы узнать конкретные значения необходимо нажать непосредственно на связь и произойдет переход на определенный график в Cacti. Скажу что это не удобно. Гораздо удобнее получать значения просто подводя мышку к графику. Это настраивается так. В конфигурационный файл (/usr/share/cacti/site/plugins/weathermap/configs/TEST) добавляется строка HTMLSTYLE overlib. И выглядит это так:
HowTo: Cacti 0.8.7g   Plugin Architecture 2.9   Spine 0.8.7g на CentOS 5.5 i386 / Хабр

Настройка cacti

Перейдите в каталог /etc/cacti и отредактируйте файл db.php прописав в нем корректное имя пользователя и пароль для доступа в БД MySQL.

Настройка mysql

Cacti для своей работы требует установленного сервера Mysql.

Проверьте установлен ли у Вас в системе пакет mysql-server выполнив команду:

rpm -q mysql-server

Если данный пакет у Вас с системе не установлен его можно установить при помощи yum выполнив:

yum install mysql-server

Запустите сервер Mysql командой

service mysqld start

Войдите в интерфейс управления (MySQL Monitor) командой

mysql

Вы должны увидеть такое приглашение:

mysql>

Создайте новую базу данных с именем cacti командой:

create database cacti;

Выйдите из MySQL Monitor набрав q.

В состав пакета Cacti входит скрипт позволяющий автоматически создать все необходимые таблицы в БД для работы.

Выполните:

mysql cacti </usr/share/doc/cacti-0.8.6j/cacti.sql

Вновь войдите в интерфейс управления MySQL командой

mysql cacti

И выполните команду

mysql> show tables;

Если в ответ на данную команду вы увидите следующий список таблиц в БД:

 --------------------------- | Tables_in_cacti           |

 --------------------------- 

| cdef                      |

| cdef_items                |

| colors                    |

| data_input                |

| data_input_data           |

| data_input_fields         |

| data_local                |

| data_template             |

| и так далее              |

 --------------------------- 

48 rows in set (0.00 sec)

то Вы все сделали верно, таблицы в БД созданы и можно двигаться дальше.

Теперь нам необходимо дать права созданную нами БД пользователю под которым cacti будет подключаться к серверу.

Для этого в интерфейсе управления MySQL выполните:

Настройка web сервера apache

Cacti для своей работы требует установленного сервера Apache.

Настройка часового пояса mysql для пользователя базы данных cacti

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Enter password: 
Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.

Предоставьте пользователю базы данных cacti MySQL доступ к базе данных TimeZone:

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 202
Server version: 10.1.29-MariaDB-6 Ubuntu 18.04

Copyright (c) 2000, 2021, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> 
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO [email protected];
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

Настройте базу данных mariadb для cacti

Добавьте следующие настройки в [mysqld] в файл /etc/mysql/mariadb.cnf

max_heap_table_size=128M
tmp_table_size=128M
join_buffer_size=64M
innodb_buffer_pool_size=512M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16

Перезапустить службу mariadb

sudo systemctl restart mysql

Чтобы проверить любой из этих параметров, используйте оператор выбора  mysql  , например

MariaDB [(none)]> select @@tmp_table_size;
 ------------------ 
| @@tmp_table_size |
 ------------------ 
| 134217728 |
 ------------------ 
1 row in set (0.00 sec)

Или

MariaDB [(none)]> show variables like 'join_buffer_size';

После завершения установки сервера базы данных вам необходимо создать базу данных для Cacti:

$ mysql -u root -p
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 56
Server version: 10.3.7-MariaDB-1:10.3.7 maria~bionic-log mariadb.org binary distribution
Copyright (c) 2000, 2021, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> create database cacti;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all privileges on cacti.* to [email protected]'localhost' identified by 'strongpassword';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> exit 
Bye

Проверить подключение к базе данных:

Настройте контроль доступа к сайту cacti apache (необязательно):

Если вы хотите ограничить доступ к веб-интерфейсу Cacti, отредактируйте файл /etc/apache2/conf-available/cacti.conf и закомментируйте строку:

Require all granted

Затем настройте, как показано ниже:

# Change line 7
#Require all granted
Require host localhostRequire ip 192.168.1.0/24

Замените 192.168.1.0/24 своей доверенной подсетью. Вы также можете добавить один IP-адрес, как показано ниже:

Require ip 192.168.1.20
Require ip 172.16.20.30

Вам необходимо перезапустить службу apache после внесения вышеуказанных изменений,

$ sudo systemctl restart apache2

Установить права доступа к каталогу

sudo chown -R www-data:www-data  /opt/cacti/

Общие параметры

namedescription

— что это и для чего предназначено, чтобы не запутаться:

— полный путь до файла скрипта, можно использовать переменную

|path_cacti|

— значения параметров передаваемых скрипту, которые определят режим его работы и какие значение он вернёт. Всего четыре режима, ничего сложного не выдумываем:

— параметры которые будут переданы в командной строке скрипта первыми. Автоматически в скрипт не будут переданы ни какие другие параметры, кроме тех которые определяют режим его работы, то есть мы не знаем для какого сервера мы выполняем наши действия. Необходимые дополнительные аргументы определяются здесь. Также разрешено использовать

Про сертификаты:  Системы менеджмента | ВНИИГАЗ Сертификат

— символ разделитель в возвращаемых значениях. Тоже ничего замысловатого — используем двоеточие:


Для нас этого хватит, параметров не так много,

Периодический запуск с помощью cron

Cacti снимает данные со всех клиентских устройств с помощью php скрипта который запускается с помощью системного планировщика cron каждые 5 минут, т.е. для корректной работы Cacti Вам необходимо проверить запущен ли демон crond в системе.

chkconfig --list crond

как мы видим crond стартует на нашем текущем (3) уровне запуска.

crond           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл

осталось проверить запущен ли демон crond в данный момент:

 ps ax|grep crond

Если Вы увидели что-то подобное, то это обозначает, что демон работает в данный момент.

2083 ?        Ss     0:00 crond

Поля данных

Здесь описываем какие данные необходимо получить на выходе. Значения разделены на два типа

InputOutput

Тип Input связан с режимом работы Query и должен вернуть значения характеризующие тот или иной индекс. Например, для сетевого интерфейса: подпись, физический адрес, тип — всё то что не будет меняться с течением времени. Полученные таким образом данные будут переданы в Data Source который в свою очередь свяжет это с нужным индексом.

Кроме того формируются переменные |query_имя_поля|, которые можно использовать в подписи графиков и их значения будут отображаться в общем списке элементов при вызове Create Graphs for this Host как отдельные столбцы.

Тип Output – поля, данные которых будут строиться на графиках.

Непосредственно поле определяется очень просто:

name — имя, query_name — значение которое будет передано скрипту и direction — тип Input или Output.

У нас одно Input поле, возвращающее имя узла. Переменная которая будет создана |query_host|:

И четыре

Output

поля, максимальная, минимальная, средняя задержка отклика и проценты потери пакетов:

Скрипт


Шаблон нам уже описал всё что необходимо. Существуют четыре режима работы, следовательно и четыре режима вызова.

Установка

Для установки плагина нам потребуется осуществить две вещи: установить архитектуру плагинов и установить сам плагин Cacti. Если какие-либо плагины у Вас уже установлены, значит раздел установки архитектуры Вам можно спокойно пропустить.

Шаг 1. обновите систему и обновите все пакеты

Мы всегда начинаем с обновления серверных пакетов, чтобы избежать проблем с зависимостями:

sudo apt-get update
sudo apt-get upgrade

Шаг 1: настройка cacti на новом сервере

Нам нужно будет остановить Cacti на старом сервере во время процесса миграции.

Чтобы минимизировать пробелы в графиках, мы сначала подготовим новый сервер (пока Cacti на старом сервере все еще работает).

Мы начнем процесс с установки Cacti на новый сервер.

Напомним, что мы можем использовать apt-get (Debian / Ubuntu) или yum (RHEL / CentOS) для установки Cacti и настройки необходимых баз данных MySQL.

Шаг 2: отключение poller на обоих серверах

После завершения установки мы отключим задание cron для Cacti poller на обоих серверах.

Это гарантирует, что ни один из серверов не будет опрашивать или заполнять больше графиков.

То есть графики будут оставаться неизменными в течение миграции. М

ы включим задание cron после переноса графиков.

 # vim /etc/cron.d/cacti 
## Comment out the cacti poller cron job ##

# */5 * * * * www-data php --define suhosin.memory_limit=512M /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log

Шаг 2: установите php и необходимые модули

Теперь нам нужно установить php и некоторые модули php, необходимые для cacti. Выполните следующие команды, чтобы получить все и установить.

$ sudo apt-get -y install php php-mysql php-curl php-net-socket 
php-gd php-intl php-pear php-imap php-memcache libapache2-mod-php 
php-pspell php-recode php-tidy php-xmlrpc php-snmp 
php-mbstring php-gettext php-gmp php-json php-xml php-common

Наиболее важные модули — это  php-snmp  и  php-mysql . Убедитесь, что они установлены. Вы можете проверить свою версию php с помощью команды:

# php -v
PHP 7.2.5-0ubuntu0.18.04.1 (cli) (built: May 9 2021 17:21:02) ( NTS )
Copyright (c) 1997-2021 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2021 Zend Technologies
with Zend OPcache v7.2.5-0ubuntu0.18.04.1, Copyright (c) 1999-2021, by Zend Technologies

Убедитесь, что вы установили правильный часовой пояс:

Шаг 3. установите веб-сервер apache

Рекомендуемый по умолчанию веб-сервер для Cacti — Apache, установите его с помощью команд:

sudo apt-get -y install apache2

После установки Apache настройте базовую безопасность, разрешив только Prod ServerTokens.

sudo vim /etc/apache2/conf-enabled/security.conf

Изменить строку  25

ServerTokens Prod

Шаг 3. установите сервер mariadb

Для установки MariaDB в Ubuntu используйте мое предыдущее руководство:

Как установить MariaDB в Ubuntu 18.04 и CentOS 7

Шаг 3: миграция базы данных cacti

На следующем шаге мы создадим дамп базы данных с сервера MySQL, работающего на старом сервере Cacti.

Как только дамп базы данных будет готов, мы скопируем этот файл дампа на новый сервер и обновим записи в базе данных Cacti.

Шаг 3.1: Старый сервер

Чтобы создать дамп базы данных, мы будем использовать следующую команду.

При появлении запроса введите пароль root для MySQL.

 ------------- 
| description |
 ------------- 
| Server-2    |
| Server-1    |
 ------------- 
2 rows in set (0.00 sec)

Шаг 4. подготовка и перенос файлов rrd

К сожалению, Cacti не может обновить графики, если файлы RRD копируются непосредственно на новый сервер.

Правильный способ переноса графиков – это преобразовать их в XML, переместить их на новый сервер и восстановить файлы RRD из XML.

Шаг 4.1: Старый сервер

На старом сервере преобразуйте файлы RRD в файлы XML следующим образом.

Создайте каталог для хранения файлов XML.

Преобразуйте файлы RRD в файлы XML.

Создайте архив

Скопируйте файл tar на новый сервер.

Теперь, когда у нас есть RRD-файлы, необходимые Cacti, мы можем удалить tar-файл и XML-файлы.

-rw-rw-r-- 1 www-data www-data  94816 Dec 14 13:50 server-1_traffic_in_8.rrd
-rw-rw-r-- 1 www-data www-data  94816 May  7 02:10 server-1_traffic_in_9.rrd
-rw-rw-r-- 1 www-data www-data  94816 May  7 02:10 server-2_traffic_in_10.rrd

На новом:

Теперь у Cacti poller на новом сервере есть права на чтение / запись файлов RRD.

Шаг 4. подготовка и перенос файлов rrd

К сожалению, Cacti не может обновить графики, если файлы RRD копируются непосредственно на новый сервер.

Правильный способ переноса графиков – это преобразовать их в XML, переместить их на новый сервер и восстановить файлы RRD из XML.

Шаг 4.1: Старый сервер

На старом сервере преобразуйте файлы RRD в файлы XML следующим образом.

Создайте каталог для хранения файлов XML.

Шаг 4: установите snmp и cacti

Последний шаг установки пакета предназначен для пакетов Cacti и snmp. Функции Cacti зависят от  инструментов Snmp и  rrdtool . Установите эти пакеты с помощью команды:

sudo apt-get install snmp snmpd snmp-mibs-downloader rrdtool cacti cacti-spine

Когда вас попросят выбрать веб-сервер, выберите  Apache.

Шаг 5: настройте snmp

Начните с включения загрузки MIB, закомментировав следующую строку в  /etc/snmp/snmp.conf

Изменить

mibs :
# mibs :

Настройте имя сообщества SNMP, отредактировав  /etc/snmp/snmpd.conf

# On line 49 -  Uncomment and change to the name of community string to any name you like.
# This enable full access from localhost

rocommunity infoit localhost

Diable публичный доступ, комментируя следующие строки:

rocommunity public default -V systemonly
rocommunity6 public default -V systemonly

Чтобы

# rocommunity public default -V systemonly
# rocommunity6 public default -V systemonly

Перезапустить службу snmpd

sudo systemctl restart snmpd

Проверьте конфигурации snmp с помощью инструмента командной строки snmpwalk:

Шаг 6: активация poller

На шаге 1 мы отключили опрос Cacti на обоих серверах.

Когда миграция будет завершена, мы включим его на новом сервере.

## Uncomment the cacti poller cron job ##

*/5 * * * * www-data php --define suhosin.memory_limit=512M /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log

Здесь я добавляю несколько скриншотов с обоих серверов ниже.

Рисунок 1: Графики старого сервера

Рисунок 2: Новые серверные графики

Шаг 6: настройте cacti server

Отсюда мы должны настроить параметры базы данных для Cacti и начать настройку в веб-интерфейсе. Измените настройки db в файле  /usr/share/cacti/site/include/config.php.

Шаг 8: мониторинг локального сервера cacti

Добавьте локальный сервер Cacti для мониторинга. Войдите в Cacti как пользователь с правами администратора и перейдите по ссылке:

Console > Devices > (Add device)

Заполните данные о сервере, прокрутите вниз и нажмите кнопку « Сохранить »..

Оцените статью
Мой сертификат
Добавить комментарий