Использование Monitorix с Apache

Monitorix — очень лёгкий и удобный инструмент для мониторинга, который периодически собирает системные данные и отображает информацию в виде наглядных графиков через веб-интерфейс. Количество собираемых показателей довольно велико: загрузка процессора и оперативной памяти, температура компонентов системы, сведения от ИБП, загрузка виртуальных машин KVM, состояние процессов, статистика сетевых интерфейсов и многое другое. Если Monitorix что-то не умеет, то можно его этому научить с помощью скриптов.

Monitorix содержит встроенный HTTP-сервер. И вот как раз с ним у меня в последнее время стали возникать проблемы. Выражалось это в том, что отображались не все графики на странице мониторинга, при этом страница подвисала. В логах было множество сообщений о том, что вебсервер не отвечает:

WARNING: HTTP built-in server not responding at 'http://localhost:8080/monitorix'.
Restarted HTTP built-in server (pid 21176).

Попробуем решить эту проблему, настроив работу Monitorix через Apache, тем более такая возможность предусмотрена разработчиками.

Monitorix у нас уже установлен, если нет, то делаем это командой:

# sudo apt install monitorix

Устанавливаем Apache:

# sudo apt install apache2

Редактируем файл /etc/apache2/apache2.conf и добавляем туда следующие строки:

Alias /monitorix /var/lib/monitorix/www
ScriptAlias /monitorix-cgi /var/lib/monitorix/www/cgi
ScriptAlias /monitorix-cgi/monitorix.cgi /var/lib/monitorix/www/cgi

<Directory /var/lib/monitorix/www/>
  Require all granted
</Directory>

<Directory /var/lib/monitorix/www/cgi/>
  DirectoryIndex monitorix.cgi
  Options ExecCGI
</Directory>

Необходимо убедиться, что у apache есть права на запись в каталог  /var/lib/monitorix/www/imgs/ . Если это не так, то нужно дать ему эти права.

Включаем CGI, если он не включен:

# sudo a2enmod cgi

Перезапускаем apache:

# sudo service apache2 restart

Отключаем в настройках Monitorix встроенный вебсервер. Для этого в файле /etc/monitorix/monitorix.conf ищем секцию httpd_builtin и меняем значение параметра enabled на n:

Осталось перезапустить Monitorix:

# sudo service monitorix restart

Проверяем работу, открыв в браузере страничку http://ip/monitorix: