MAATRIX / Блог / Observium на Ubuntu 24.04: пошаговая установка

Observium на Ubuntu 24.04: пошаговая установка

MAATRIX

Когда в сети десятки коммутаторов, роутеров и серверов, вручную проверять их состояние не вариант — а Zabbix и Prometheus для чистого сетевого мониторинга часто избыточны: нужны шаблоны, триггеры, ручная привязка узлов. Observium решает именно эту задачу: указываете диапазон адресов, он сам находит устройства по SNMP, опознаёт модель и вендора, и через несколько минут у вас графики по интерфейсам, температуре и загрузке CPU без единого шаблона. В этом руководстве — пошаговая установка Observium на Ubuntu 24.04 с MariaDB, Nginx и PHP-FPM.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Community или Professional: что ставим и почему

У Observium две ветки. Professional и Enterprise — платная подписка с официальным установщиком, регулярными обновлениями и поддержкой актуальных дистрибутивов из коробки. Community — бесплатная версия с открытым кодом, которую вы разворачиваете сами из репозитория SVN.

Здесь есть нюанс, о котором стоит сказать прямо: публичный код Community-ветки на svn.observium.org давно не получает новых функций и обновлений баз распознавания устройств — разработчик сосредоточился на платной версии, а бесплатную оставил в поддерживающем режиме без активного развития. Это не значит, что она не работает: базовый SNMP-опрос, автообнаружение по стандартным MIB (IF-MIB, SNMPv2-MIB, HOST-RESOURCES-MIB) и графики по интерфейсам прекрасно работают и сегодня. Но если у вас в сети новое сетевое железо конца 2020-х, часть моделей Community может определить общим профилем «generic SNMP device» вместо точного вендорского шаблона с расширенными датчиками — для базового мониторинга это не критично, но об этом нужно знать заранее.

Если вам нужна гарантированная поддержка новых устройств и обновления под актуальные дистрибутивы — берите Professional с сайта observium.org, установка там идёт через их собственный скрипт и лицензионный ключ. Ниже — установка бесплатной Community-версии, которая закрывает большинство задач мониторинга сети и подходит для знакомства с платформой без затрат.

Под Observium хватает скромного VPS: 2 ядра, 4 ГБ RAM и 20-30 ГБ диска для парка в несколько десятков устройств — точный запас зависит от числа портов и интервала опроса, поэтому ориентируйтесь на свою сеть, а не на конкретную цифру. MAATRIX разворачивает VPS на Ubuntu 24.04 в нужной локации с оплатой картой российского банка, СБП или криптовалютой — без иностранной карты и посредников.

Подготовка сервера: зависимости и MariaDB

Обновите систему и поставьте пакеты, без которых Observium не соберётся и не заработает: веб-сервер, PHP с нужными модулями, инструменты SNMP, rrdtool для графиков и служебные утилиты.

apt update && apt upgrade -y
apt install -y subversion mariadb-server nginx php-fpm php-mysql php-gd \
  php-cli php-curl php-zip php-xml php-mbstring php-snmp php-json \
  snmp snmp-mibs-downloader fping mtr-tiny ipmitool graphviz \
  imagemagick whois python3-mysqldb rrdtool nginx-extras

На Ubuntu 24.04 по умолчанию идёт PHP 8.3 — Observium Community с ним запускается, но в логах веб-сервера первое время могут мелькать предупреждения об устаревших конструкциях в старом коде. Это не мешает работе, но проверьте лог /var/log/nginx/error.log после первого запуска, если что-то отображается не так, как ожидалось.

Создайте базу данных и пользователя MariaDB для Observium:

mysql -u root -e "CREATE DATABASE observium CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql -u root -e "CREATE USER 'observium'@'localhost' IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';"
mysql -u root -e "GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost';"
mysql -u root -e "FLUSH PRIVILEGES;"

Кодировка utf8 (не utf8mb4) — историческое требование схемы Observium Community, замена на utf8mb4 на этапе создания базы иногда приводит к ошибкам при импорте структуры. Не меняйте её без необходимости.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Установка исходников Observium через SVN

Официальный способ получить Community-код — выгрузить его из репозитория Subversion в отдельную директорию:

mkdir -p /opt/observium
svn checkout http://svn.observium.org/svn/observium/trunk/ /opt/observium

Загрузка займёт несколько минут — репозиторий содержит скрипты, MIB-файлы и весь веб-интерфейс. После завершения скопируйте шаблон конфигурации и отредактируйте его под свою базу:

cd /opt/observium
cp config.php.default config.php

Откройте config.php и укажите параметры подключения к базе, созданной на предыдущем шаге:

$config['db_host'] = 'localhost';
$config['db_user'] = 'observium';
$config['db_pass'] = 'СЛОЖНЫЙ_ПАРОЛЬ';
$config['db_name'] = 'observium';

$config['base_url'] = 'http://IP_ИЛИ_ДОМЕН/';

Здесь же, ниже в файле, задаются диапазоны сети для автообнаружения ($config['nets']) и community-строки SNMP — к ним вернёмся отдельно в разделе про автообнаружение.

Инициализация базы и веб-сервер

Создайте структуру таблиц в базе — скрипт discovery.php при первом запуске построит схему автоматически, но правильнее сделать это явно через встроенный build-скрипт:

cd /opt/observium
php includes/update/update.php

Команда создаст таблицы и применит миграции схемы к пустой базе. Далее настройте каталоги для RRD-файлов с графиками и логов, чтобы веб-сервер мог в них писать:

mkdir -p /opt/observium/rrd /opt/observium/logs
chown -R www-data:www-data /opt/observium

Настройте Nginx с PHP-FPM. Создайте файл /etc/nginx/sites-available/observium:

server {
    listen 80;
    server_name IP_ИЛИ_ДОМЕН;
    root /opt/observium/html;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

Активируйте сайт и перезапустите службы:

ln -s /etc/nginx/sites-available/observium /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
systemctl restart nginx php8.3-fpm

Обратите внимание на путь к сокету PHP-FPM — на Ubuntu 24.04 это именно php8.3-fpm.sock, в старых гайдах под предыдущие версии Ubuntu указан другой номер версии, и это частая причина ошибки 502 после первой настройки.

Первый вход и создание пользователя

В отличие от Zabbix, у Observium нет мастера установки в браузере — учётная запись администратора создаётся из консоли встроенным скриптом:

cd /opt/observium
php adduser.php admin ПАРОЛЬ 10

Последний параметр — уровень доступа: 10 означает полного администратора. После этого откройте http://IP_ИЛИ_ДОМЕН/ и войдите под созданной учёткой. На пустой базе интерфейс покажет пустой список устройств — это ожидаемо, ни одно устройство ещё не добавлено и не опрошено.

Проверьте права firewall, если используете ufw, — на инсталляции Observium открытого HTTP-порта обычно достаточно, SNMP-запросы сервер инициирует сам исходящими соединениями к устройствам:

ufw allow 22/tcp
ufw allow 80/tcp
ufw enable

Если планируете доступ по HTTPS, поставьте перед Nginx сертификат Let's Encrypt через certbot — Observium Community не занимается TLS самостоятельно, это задача веб-сервера.

Автообнаружение устройств по SNMP

Это ключевая функция Observium — вы задаёте не список хостов, а диапазон сети, и платформа сама опрашивает адреса по SNMP, определяет вендора и модель через сопоставление с MIB, и добавляет найденное в базу.

Сначала на самих устройствах (коммутаторах, роутерах, Linux-серверах с snmpd) должен быть включён SNMP с community-строкой на чтение. Для Linux-хоста это выглядит так — установите агент и разрешите чтение:

apt install -y snmpd

В /etc/snmp/snmpd.conf добавьте строку для read-only community (замените на свою, public использовать в продакшене не стоит):

rocommunity ваша_community_строка default -V systemonly

Перезапустите агент:

systemctl restart snmpd

На стороне Observium в config.php укажите community-строки и диапазоны для сканирования:

$config['snmp']['community'] = array("ваша_community_строка", "public");

$config['nets'][] = "10.0.0.0/24";
$config['nets'][] = "192.168.1.0/24";

Запустите обнаружение вручную и посмотрите на результат:

cd /opt/observium
php discovery.php -h all
php poller.php -h all

discovery.php ищет и добавляет новые устройства, poller.php собирает с уже известных метрики для графиков. В боевой эксплуатации оба скрипта запускаются по расписанию через cron — обнаружение реже, опрос метрик чаще:

crontab -e
33 */6 * * * /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * /opt/observium/poller-wrapper.py >> /dev/null 2>&1

Wrapper-скрипт для опроса запускает поллеры параллельно по устройствам, что заметно быстрее последовательного poller.php -h all на сетях от нескольких десятков узлов. После первого прохода cron зайдите в веб-интерфейс — новые устройства появятся в разделе Devices с автоматически подписанными интерфейсами, версией прошивки и (если MIB найден) датчиками температуры и загрузки.

Если сеть за NAT или устройства не отвечают на автообнаружение из выбранного диапазона, добавляйте их вручную через addhost.php с явным указанием адреса — это не отменяет автообнаружение для остальной сети, а просто закрывает частные случаи. Если параллельно рассматриваете альтернативу для более активно развивающегося опенсорса, посмотрите установку LibreNMS на Ubuntu 24.04 — это форк раннего кода Observium, который получает обновления баз устройств регулярно; там же материал про типичные ошибки LibreNMS на сервере и расчёт RAM для LibreNMS, близкий по логике к Observium из-за общего происхождения кода.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Чем Observium отличается от Zabbix для мониторинга сети?

Observium специализируется на SNMP-автообнаружении сетевого оборудования и не требует ручной настройки шаблонов под каждое устройство — воткнули диапазон, получили графики. Zabbix универсальнее (приложения, базы, триггеры и алерты), но под чистый сетевой мониторинг требует больше настройки вручную. Если нужен полноценный мониторинг с алертами по всей инфраструктуре, посмотрите установку Zabbix на Ubuntu 24.04.

Community-версия точно бесплатна и легальна для коммерческого использования?

Да, код Community-ветки открыт и доступен через SVN без лицензионных ограничений на использование. Ограничение не в лицензии, а в том, что развитие сосредоточено на платной версии — обновления баз распознавания устройств выходят медленнее, чем в Professional.

Почему discovery.php не находит устройство в сети?

Чаще всего дело в неверной community-строке SNMP, закрытом порте 161/UDP на файрволе устройства или в том, что диапазон не прописан в $config['nets']. Проверьте вручную: snmpwalk -v2c -c community_строка IP_устройства system — если не отвечает, проблема на стороне устройства, а не Observium.

Можно ли перенести Observium Community на Professional позже?

Да, у Observium есть официальная процедура миграции базы данных при переходе на подписку — структура таблиц совместима, теряются только специфичные для Community ограничения набора функций.

Нужен ли отдельный сервер под Observium или можно на одном VPS с другими сервисами?

Для небольшой сети (до полусотни устройств) достаточно совместного размещения, если ресурсов хватает с запасом. Для крупной инфраструктуры лучше выделить отдельный VPS — опрос по cron создаёт равномерную, но постоянную нагрузку на диск из-за записи RRD-файлов.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →