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

Что даёт Observium

Основной источник данных — SNMP. Коммутатор, маршрутизатор, сервер Linux или ИБП отдают дерево OID, а Observium преобразует его в сущности: устройства, порты, вентиляторы, блоки питания, температуры, очереди и таблицы маршрутизации. Графики хранятся в RRD-файлах, поэтому база данных не растёт пропорционально числу метрик.

  • Автообнаружение интерфейсов и сенсоров при добавлении устройства.
  • История портов: ошибки, отброшенные пакеты, загрузка в обе стороны.
  • Инвентаризация: модель, серийный номер, версия прошивки, модули.
  • Пороговые проверки и оповещения по email и другим транспортам.
  • Карта соседей по LLDP и CDP, если устройство отдаёт эти данные.

Алерты настраиваются в веб-интерфейсе. Модули syslog и анализа потоков относятся к коммерческим редакциям.

Редакции и границы

У проекта есть бесплатная Community Edition и платные Professional и Enterprise. Бесплатная редакция подходит для лаборатории, небольшого офиса и обучения: она получает обновления, поддерживает SNMP-опрос и графики. Платные версии добавляют официальную поддержку, расширенные модули и инструменты для больших инсталляций. Для домашней сети разница не критична, для оператора связи — критична.

Observium не заменяет Prometheus для метрик приложений и не хранит текстовые логи: его сильная сторона — сеть и железо с включённым SNMP.

Подготовка сервера

Практичный вариант — отдельная ВМ с Debian или Ubuntu LTS, двумя ядрами и 4 ГБ памяти: для сотни устройств этого достаточно. Установите зависимости:

sudo apt update
sudo apt install mariadb-server snmp snmp-mibs-downloader rrdtool fping imagemagick php-cli php-mysql php-gd php-curl php-mbstring php-xml php-zip python3

Убедитесь, что PHP видит модули, MariaDB запущена, а SNMP целевого устройства доступен с сервера: это частая причина «устройство есть, графиков нет».

php -m | grep -E 'mysql|snmp|gd'
systemctl status mariadb --no-pager

Установка

Скачайте архив с официального сайта и распакуйте в /opt/observium: cron и веб-серверу нужны стабильные права.

cd /opt
sudo wget https://www.observium.org/observium-community-latest.tar.gz
sudo tar -xzf observium-community-latest.tar.gz

Создайте базу и пользователя. Пароль замените на свой и не храните его в истории shell: используйте mysql_config_editor или ввод через файл.

sudo mysql -e "CREATE DATABASE observium CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
sudo mysql -e "CREATE USER 'observium'@'localhost' IDENTIFIED BY 'ChangeMe_Str0ng'; GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'; FLUSH PRIVILEGES;"

Скопируйте config.php.default в config.php, укажите доступ к базе и путь к RRD. Затем создайте схему и администратора:

cd /opt/observium
./discovery.php -u
./adduser.php admin 'ChangeMe_Str0ng' 10

Веб-сервер настройте на /opt/observium/html, а каталоги rrd и logs отдайте пользователю веб-сервера. Не выставляйте интерфейс в интернет без TLS и ограничения по IP.

Добавление устройств

Проще всего добавить устройство из командной строки, а потом проверить результат в интерфейсе. Для SNMP v2c нужны адрес и community-строка.

./add_device.php 192.168.10.1 public v2c
./discovery.php -h new
./poller.php -h all

Команда discovery.php -h new обрабатывает только новые устройства. Если нужно перечитать уже добавленный коммутатор после смены прошивки, используйте ./discovery.php -h 192.168.10.1. Для поиска устройств в подсети есть сканер:

./snmp-scan.php -r 192.168.10.0/24

Сканер перебирает адреса и добавляет найденные устройства, поэтому запускайте его только для своей подсети. Для SNMP v3 в веб-форме задайте пользователя и уровень authPriv.

Опрос по расписанию

Ручной запуск нужен только для отладки. В рабочем режиме опрос выполняет cron. Один поллер опрашивает все устройства каждые пять минут; для больших сетей запускают несколько процессов через poller-wrapper.py.

sudo tee /etc/cron.d/observium >/dev/null <<'EOF'
*/5 * * * * root /opt/observium/poller-wrapper.py 16 >> /var/log/observium-poller.log 2>&1
0 */6 * * * root /opt/observium/discovery.php -h all >> /var/log/observium-discovery.log 2>&1
EOF

Число 16 — параллельные воркеры, а не «потоки на устройство». Начинайте с четырёх: если опрос не укладывается в пять минут, графики получат пропуски.

Графики, пороги и алерты

Графики строятся из RRD-файлов в каталоге rrd/; не удаляйте их при очистке места, иначе исчезнет история. Пороги задаются для интерфейсов, сенсоров и массивов.

Настройте транспорт заранее и отправьте тестовое письмо. Если SMTP требует авторизации, проверьте, что PHP умеет подключаться к серверу, а письма не попадают в спам. Для критичных портов используйте не только верхний порог утилизации, но и рост ошибок: именно они часто предсказывают сбой раньше, чем загрузка канала.

Диагностика

Первый инструмент — snmpwalk. Если он не отвечает, Observium ничем не поможет: проблема на стороне сети, ACL или community.

snmpwalk -v2c -c public 192.168.10.1 sysDescr.0
snmpbulkwalk -v2c -c public 192.168.10.1 ifDescr
fping -c 3 192.168.10.1
  • Таймаут SNMP. Проверьте ACL на коммутаторе, маршрут и совпадение community.
  • Устройство есть, графиков нет. Запустите ./poller.php -h 192.168.10.1 -d и прочитайте, на каком модуле он останавливается.
  • Пустой список интерфейсов. Устройство отдаёт ifDescr, но не поддерживает ifName; включите нужные OID или обновите прошивку.
  • Графики с дырами. Смотрите время выполнения поллера и системное время; расхождение часов ломает RRD.
  • Ошибки прав. Каталог rrd/ должен быть доступен пользователю веб-сервера и cron.

Держите тестовый коммутатор для смены community и версии SNMP. Работайте только на своём оборудовании.

Итог

Observium даёт быстрый старт там, где сеть уже говорит по SNMP: добавили устройство, запустили discovery и получили порты, сенсоры и историю. Он не универсален, но для мониторинга коммутаторов, маршрутизаторов и серверов остаётся крепким инструментом. Главное — не экономить на проверке SNMP, не выставлять интерфейс в интернет и следить за временем выполнения поллера, иначе графики превратятся в набор пропусков.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте