Развертывание сервера с системой мониторинга Observium на ОС Linux CentOS 7 -------------------------------------------------------------------------------------------------------------------------------------------------------------- Все описанные ниже действия выполнялись под пользователем root -------------------------------------------------------------------------------------------------------------------------------------------------------------- Всем привет! Для реализации данного проекта мне потребовалось: 1) Прописать статические IP-адреса; 2) Обновить пакеты ОС Linux CentOS 7 до последней версии; 3) Отключить систему принудительного контроля доступа SELinux; 4) Подключить нужные для дальнейшей работы репозитории; 5) Установить необходимые пакеты для дальнейшей работы; 6) Настроить базу данных MySQL для ПО Observium; 7) Настроить и запустить ПО Observium с дальнейшей настройкой зависимостей; 8) Настроить Firewall; 9) Горячие комбинации. -------------------------------------------------------------------------------------------------------------------------------------------------------------- Предисловие: ------------ SELinux — реализация системы принудительного контроля доступа, которая может работать параллельно с классической избирательной системой контроля ------------ Remi - это хранилище yum-репозиториев. Хранилище Remi предоставляет разнообразные up-to-date пакеты, которые оченьполезны или являются необходимыми для многих популярных веб-сервисов. ------------ Cron — классический демон, использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные каталоги. ------------ Observium – это система мониторинга и наблюдения за сетевыми устройствами и серверами. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 1) Для избежания потери связи с АРМ/VM, нужно позаботиться о статической IP-адресации. Её можно настроить как на самой АРМ/VM, так и на самом сетевом устройстве. Статическую адресацию можно прописать с помощью инструмента командной строки nmtui. ------------ yum install -y NetworkManager-tui |#|#| Установка пакета nmtui для настройки сети на АРМ/VM ------------ Гайд по тому, как пользоваться инструментом nmtui, вы можете посмотреть в интернете. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 2) Обновление пакетов системы. ------------ yum update -y && yum upgrade -y |#|#| Поиск и обновление пакетов системы -------------------------------------------------------------------------------------------------------------------------------------------------------------- 3) Отключение системы принудительного контроля доступа SELinux. ------------ nano /etc/sysconfig/selinux |#|#| Команда для открытия конфигурационного файла "selinux" ------------ В конфигурационном файле замените строку SELINUX=enforcing на SELINUX=disabled. Перед закрытием обязательно сохраните файл! ------------ Конфигурационный файл SELinux должен выглядеть следующим образом: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted ------------ reboot |#|#| Команда для перезагрузки ARM/VM ------------ После перезагрузки вашего устройства, можете снова ввести команду "sestatus" и убедиться в том, что у вас отключена система SELinux. Вывод отключенной системы должен выглядеть вот так: SELinux status: disabled -------------------------------------------------------------------------------------------------------------------------------------------------------------- 4) Установка нужных для дальнейшей работы репозиториев. ------------ yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm |#|#| Установка репозитория epel-release-latest-7.noarch.rpm ------------ yum install -y http://yum.opennms.org/repofiles/opennms-repo-stable-rhel7.noarch.rpm |#|#| Установка репозитория opennms-repo-stable-rhel7.noarch.rpm ------------ yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm |#|#| Установка репозитория remi-release-7.rpm ------------ yum update -y |#|#| Команда для обновления пакетов после установки репозиториев -------------------------------------------------------------------------------------------------------------------------------------------------------------- 5) Установка необходимых пакетов для дальнейшей работы. ------------ yum install -y openssh wget.x86_64 httpd.x86_64 php.x86_64 php-opcache.x86_64 php-mysql.x86_64 php-gd.x86_64 php-posix php-pear.noarch cronie.x86_64 net-snmp.x86_64 net-snmp-utils.x86_64 fping.x86_64 mariadb-server.x86_64 mariadb.x86_64 MySQL-python.x86_64 rrdtool.x86_64 subversion.x86_64 jwhois.x86_64 ipmitool.x86_64 graphviz.x86_64 ImageMagick.x86_64 php-sodium.x86_64 |#|#| Установка необходимых пакетов для дальнейшей работы ------------ Если после выполнения команды не установились некоторые пакеты, то не нужно паниковать! Это все исправится далее. ------------ systemctl enable sshd |#|#| Команда для добавления в автозапуск службы "sshd" ------------ systemctl start sshd |#|#| Команда для включения службы "sshd" ------------ yum install -y libvirt.x86_64 |#|#| Команда установки пакета "libvirt" для добавления возможности отслеживания виртуальных машин ------------ yum install -y yum-utils |#|#| Команда для установки пакета "yum-utils" ------------ yum-config-manager --enable remi-php71 |#|#| Команда для активации репозитория "remi-php71" ------------ yum-config-manager --enable php-pecl-libsodium |#|#| Команда для активации репозитория "php-pecl-libsodium" ------------ yum-config-manager --enable php-pecl-libsodium2 |#|#| Команда для активации репозитория "php-pecl-libsodium2" ------------ yum update -y |#|#| Команда для обновления пакетов после активации репозиториев ------------ yum install -y wget.x86_64 httpd.x86_64 php.x86_64 php-opcache.x86_64 php-mysql.x86_64 php-gd.x86_64 php-posix php-pear.noarch cronie.x86_64 net-snmp.x86_64 net-snmp-utils.x86_64 fping.x86_64 mariadb-server.x86_64 mariadb.x86_64 MySQL-python.x86_64 rrdtool.x86_64 subversion.x86_64 jwhois.x86_64 ipmitool.x86_64 graphviz.x86_64 ImageMagick.x86_64 php-sodium.x86_64 |#|#| Команда для повторной установки пакетов ------------ yum --enablerepo=remi-php72 install php-sodium |#|#| Команда для активации репозитория "remi-php72" и установки пакета "php-sodium" ------------ yum update -y |#|#| Команда для обновления пакетов после активации репозитория ------------ mkdir -p /opt/observium && cd /opt |#|#| Команда для создания папки "observium" и перехода в каталог "/opt/" ------------ wget http://www.observium.org/observium-community-latest.tar.gz |#|#| Команда для скачивания архива "observium-community-latest.tar.gz" ------------ tar zxvf observium-community-latest.tar.gz |#|#| Команда для распаковки архива "observium-community-latest.tar.gz" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 6) Настройка базы данных MySQL для ПО Observium. ------------ systemctl enable mariadb |#|#| Команда для добавления в автозапуск службы "mariadb" ------------ systemctl start mariadb |#|#| Команда для включения службы "mariadb" ------------ /usr/bin/mysqladmin -u root password |#|#| Команда для создания пароля пользователю "root" в системе по управлению базами данных ------------ mysql -u root -p |#|#| Команда для входа в систему по управлению базами данных ------------ CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |#|#| Команда для создания базы данных "observium" ------------ GRANT ALL PRIVILEGES ON observium.* TO 'root'@'localhost' IDENTIFIED BY 'LogoP@ssYour'; |#|#| Команда для предоставления всех привилегий пользователю "root" для базы данных "observium" ------------ Exit; |#|#| Команда для выхода из системы по управлению базами данных -------------------------------------------------------------------------------------------------------------------------------------------------------------- 7) Настройка и запуск ПО Observium с дальнейшей настройкой зависимостей. ------------ cd observium |#|#| Команда для перехода в каталог "observium" ------------ cp config.php.default config.php |#|#| Копирование файла "config.php.default" с новым названием "config.php" ------------ nano config.php |#|#| Команда для редактирования файла "config.php" ------------ В данный файл нужно внести следующие изменения: // Database config $config['db_host'] = 'localhost'; $config['db_user'] = 'root'; $config['db_pass'] = 'LogoP@ssYour'; $config['db_name'] = 'observium'; ------------ В конец файла добавить строку: "/usr/sbin/fping"; ------------ ./discovery.php -u |#|#| Команда для запуска сценария discovery.php с ключом обновления -u, чтобы вставить исходную схему MySQL ------------ mkdir rrd |#|#| Команда для создания папки "rrd" ------------ chown apache:apache rrd |#|#| Команда для присвоения каталогу "rrd" пользователя "apache" и группы "apache" ------------ nano /etc/httpd/conf.d/observium.conf |#|#| Команда для редактирования файла "observium.conf" ------------ Если на сервере будет работать только ПО Observium, то внесите в файл "observium.conf" следующее содержимое: <VirtualHost *> DocumentRoot /opt/observium/html/ ServerName observium.domain.com CustomLog /opt/observium/logs/access_log combined ErrorLog /opt/observium/logs/error_log <Directory "/opt/observium/html/"> AllowOverride All Options FollowSymLinks MultiViews Require all granted </Directory> </VirtualHost> ------------ mkdir /opt/observium/logs |#|#| Команда для создания папки "logs" ------------ chown apache:apache /opt/observium/logs |#|#| Команда для присвоения каталогу "logs" пользователя "apache" и группы "apache" ------------ cd /opt/observium |#|#| Команда для перехода в каталог "/opt/observium/" ------------ ./adduser.php admin Logo_P@ss_Your 10 |#|#| Команда для создания пользователя "admin" с паролем "Logo_P@ss_Your" и полными привилегиями для работы в ПО Observium ------------ touch /etc/cron.d/observium |#|#| Команда для создания файла "observium" в каталоге "/etc/cron.d/" ------------ nano /etc/cron.d/observium |#|#| Команда для редактирования файла "observium" ------------ В данный файл нужно вставить следующие строки: 33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1 */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1 */5 * * * * root /opt/observium/poller-wrapper.py 2 >> /dev/null 2>&1 ------------ systemctl restart crond |#|#| Команда для перезапуска службы "crond" ------------ systemctl status crond |#|#| Команда для просмотра статуса службы "crond" ------------ systemctl enable crond |#|#| Команда для добавления в автозапуск службы "crond" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 8) Настройка Firewall. ------------ systemctl status httpd |#|#| Команда для просмотра статуса службы "httpd" ------------ systemctl start httpd |#|#| Команда для запуска службы "httpd" ------------ systemctl enable httpd |#|#| Команда для добавления в автозапуск службы "httpd" ------------ firewall-cmd --permanent --zone=public --add-service=http |#|#| Команда для открытия публичного доступа к сайту с ПО Observium ------------ firewall-cmd --reload |#|#| Команда для перезагрузки службы "firewalld" ------------ Чтобы удостовериться в том, что у поднятое ПО Observium корректно работает, рекомендую выполнить перезагрузку сервера: ------------ reboot |#|#| Команда для перезагрузки сервера -------------------------------------------------------------------------------------------------------------------------------------------------------------- 9) Горячие комбинации. ------------ Все описанные ниже команды выполняются в каталоге "/opt/observium" ------------ cd /opt/observium/ |#|#| Команда для перехода в каталог Observium ------------ ./discovery.php -h all |#|#| \ |#|#| --- Команды для опроса добавленного сервера/сетевого устройства в ПО Observium(на тот случай, чтобы не жадть пока отработает ./poller.php -h all |#|#| / служба "crond"). -------------------------------------------------------------------------------------------------------------------------------------------------------------- На этом инструкция закончена! Спасибо за внимание!