How to Install Observium on Windows 11
Observium is a powerful network monitoring software that runs on Linux-based operating systems. However, with the help of a virtual machine, you can run Observium on Windows 11.
In this tutorial, we will guide you through the steps to install Observium on Windows 11 using a virtual machine.
Prerequisites
To install Observium on Windows 11, you will need the following:
- A virtual machine software (e.g. Oracle VirtualBox)
- An ISO file of a Linux operating system (e.g. Ubuntu)
- At least 2 GB of RAM and 20 GB of disk space
- A stable internet connection
Step 1: Install the Virtual Machine Software
First, you need to download and install a virtual machine software on your Windows 11 machine. We recommend VirtualBox, which is free and easy to use. Download the latest version of VirtualBox from the official website and install it.
Step 2: Create a Virtual Machine
After installing VirtualBox, open the software and click on the «New» button to create a new virtual machine. Give your virtual machine a name, select the operating system type and version, and configure the RAM and storage settings.
Step 3: Install Linux on the Virtual Machine
Next, you need to install a Linux operating system on the virtual machine. Download the ISO file of your preferred Linux distribution, such as Ubuntu, and mount it to the virtual machine. Follow the installation wizard to install the operating system on the virtual machine.
Step 4: Install Observium on Linux
Once Linux is installed on the virtual machine, you can proceed with installing Observium. Open a terminal window in Linux and run the following command to update the system:
sudo apt-get update
Next, install the required dependencies using the following command:
sudo apt-get install apache2 mariadb-server mariadb-client php7.3 php7.3-cli php7.3-mysql php7.3-gd php7.3-common php7.3-mbstring snmp fping imagemagick whois mtr-tiny nmap php7.3-cli php7.3-curl php7.3-json python-memcache python-mysqldb rrdtool subversion git python-setuptools python-mysqldb python-pip python-dev libxml2-dev libxslt1-dev libcap-dev snmpd libapache2-mod-php7.3 php7.3-readline php7.3-zip
Once the dependencies are installed, clone the Observium repository using the following command:
sudo git clone https://github.com/observium/observium.git /opt/observium
Next, navigate to the Observium directory and run the installer script:
cd /opt/observium/
sudo ./observium_install.sh
Follow the prompts to complete the installation process.
Step 5: Access Observium Web Interface
Once the installation is complete, you can access the Observium web interface by opening a web browser and navigating to http://localhost/observium.
Log in with the default credentials (username: admin, password: admin) and start configuring Observium to monitor your network.
Conclusion
With this guide, you can install Observium on Windows 11 using a virtual machine. Observium is a powerful network monitoring tool that can help you keep track of your network performance and identify potential issues. With its intuitive web interface and powerful features, Observium is a must-have tool for any network administrator.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!
В очередной раз задался вопросом мониторинга и на этот раз решил попробовать Observium в редакции Community Edition. Почему именно Observium? Если посмотреть документацию, то Observium поддерживает большое количество вендоров программного и аппаратного обеспечения, то есть в нем уже есть шаблоны мониторинга массы конкретных моделей оборудования. Имеется адекватная документация по продукту и, честно говоря, мне очень понравился внешний вид дизайна веб-консоли управления. Кстати, можно пройти по ссылке http://demo.observium.org/ и посмотреть как это выглядит «вживую».
Развёртывание Observium
Observium будем устанавливать на Ubuntu 16.04 LTS. Оригинальную документацию по установке на эту ОС можно найти по ссылке Debian/Ubuntu Installation.
Установим необходимые для Observium пакеты:
sudo apt install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-mysqli php7.0-gd php7.0-mcrypt php7.0-json php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick apache2
Устанавливаем пакет libvirt-bin:
sudo apt install libvirt-bin
Цитата из документации по поводу необходимости этого пакета:
If you want to be able to monitor libvirt virtual machines, install libvirt-bin (beware: this pulls in a whole bunch of dependencies you otherwise probably wouldn’t need on your server)
***
Создаем директории, в которых будут располагаться файлы Observium:
sudo mkdir -p /opt/observium && cd /opt
Как я писал ранее, я устанавливаю версию Community Edition, и поэтому я скачаю архив в названии которого фигурирует слово «community«:
sudo wget http://www.observium.org/observium-community-latest.tar.gz
sudo tar zxvf observium-community-latest.tar.gz
Переходим в папку с конфигурационными файлами и создаем конфигурационный файл копированием скопировав .default-файл:
cd ./observium
sudo cp config.php.default config.php
Открываем файл config.php и редактируем настройки MySQL — username, password и dbname
sudo vim ./config.php
***
Заходим в контекст MySQL:
mysql -u root -p
Первой командой создаём базу данных с именем observium с требуемой кодировкой. Второй командой даём полные привилегии пользователю observium на одноименную базу данных.
CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'IDENTIFIED BY 'PASSWORD';
Далее нужно проверить активирован или нет в MySQL Strict mode, выполнив команду:
SELECT @@GLOBAL.sql_mode;
После выполнения команды я увидел STRICT_TRANS_TABLES:
Чтобы этот режим деактивировать, нужно выполнить ряд действий. Создаем конфигурационный файл, который деактивирует Strict mode:
sudo touch /etc/mysql/conf.d/disable_strict_mode.cnf
Добавим в файл disable_strict_mode.cnf следующие строки:
[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Перезапустим службу MySQL и проверим её статус:
sudo service mysql restart
sudo service mysql status
После выполнения выше описанных действий Strict mode будет деактивирован.
Следующим шагом выполняем скрипт конфигурации ранее созданной базы данных MySQL:
sudo ./discovery.php -u
***
Создаем дополнительные служебные директории и даем на них права доступа пользователю, от имени которого работает веб-сервер apache2 (www-data):
sudo mkdir ./logs
sudo mkdir ./rrd
sudo chown www-data:www-data ./logs
sudo chown www-data:www-data ./rrd
***
Заменяем содержимое файла или добавляем в файл /etc/apache2/sites-available/000-default.conf информацию о виртуальном хосте веб-сервера:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/observium/html
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>
Активируем php-модуль mcrypt:
sudo phpenmod mcrypt
Активируем mod_rewrite для Observium URL’s:
sudo a2enmod rewrite
После внесенных изменений надо перезапустить apache2:
sudo /etc/init.d/apache2 restart
***
Добавляем администратора системы:
./adduser.php admin YourPassword 10
Теперь можно зайти на Web-интерфейс (http://observium.DomainName.com или IP address) и попытаться залогиниться:
***
Далее в папке /etc/cron.d/ создаем файл observium с содержимым:
# Run a complete discovery of all devices once every 6 hours 33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1 # Run automated discovery of newly added devices every 5 minutes */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1 # Run multithreaded poller wrapper every 5 minutes */5 * * * * root /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1 # Run housekeeping script daily for syslog, eventlog and alert log 13 5 * * * root /opt/observium/housekeeping.php -ysel # Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data 47 4 * * * root /opt/observium/housekeeping.php -yrptb
Если этого не сделать, то добавляемые устройств в Observium не будут “мониториться”. Чтобы форсировать мониторинг вновь добавленного устройства, нужно выполнить две команды:
./discovery.php -h all
./poller.php -h all
Итак, мы установили и базово сконфигурировали Observium. Теперь мы можем добавить первые объекты для мониторинга.
Добавление объектов мониторинга
Сделаю маленькое отступление, объясняющее мою среду исполнения. В моем распоряжении есть небольшая, но реально работающая IT среда, которую мне необходимо “мониторить”. IT инфраструктура построена на базе VMWare ESXi 5.5 под управлением VCenter Server Appliance, состоящая из трех хостов в кластере. Плюс отдельным хостом стоит VMware ESXi 6.0 для нужд команды тестировщиков.
Доступность всех виртуальных машин в кластере я проверяю с помощью Zabbix агентов, но вот сами физические хосты в кластере “мониторятся” при помощи Observium. Zabbix-сервер и Observium-сервер стоят на одной виртуальной машине и прекрасно работают. Сама VM с системами мониторинга располагается на этом же кластере VMware – не оптимальное решение, но на отдельный сервер под задачу мониторинга бюджет выделен не был. Мной было принято решение развернуть еще одну виртуальную машину на отдельно стоящем хосте VMware 6.0 и развернуть второй Zabbix и Observium сервер на этой машине. При изменении конфигурации я просто экспортирую и импортирую данные конфигурации на соседние сервера мониторинга. На каждом Zabbix-сервере стоит агент, который проверяет доступность соседа и, в случаи выхода из строя одного сервера мониторинга, я узнаю об этом от другого сервера.
Добавим поочередно хосты ESXi в Observium. На ESXi хостах должен быть активирована служба SNMP, настроено community и разрешен трафик для SNMP. На том, как это сделать мы останавливаться не будем.
Добавить устройство в Observium можно как из через интерфейс командной строки, так и через веб-интерфейс. Пример добавления объекта мониторинга через интерфейс командной строки:
cd /opt/observium/
./add_device.php [hostname] [community] v2c
Результат успешного выполнения команды добавления будет выглядеть примерно следующим образом:
***
Пример добавления объекта мониторинга через Web-интерфейс:
В открывшейся форме заполняем соответствующие поля:
Результат успешного добавления устройства будет выглядеть примерно так:
***
После того, как вы добавили устройства в Observium, нужно запустить (или дождаться запуска по расписанию) две команды, которые опросят добавленные устройства и начнут снимать с них показания:
cd /opt/observium/
./discovery.php -h all
./poller.php -h all
Так устройство выглядит в веб-консоли до запуска команд:
А так — после запуска команд:
Как видим, Observium определил платформу, на которой работает VMware и версию гипервизора, UP Time ESXi хоста.
***
Выше описанными шагами я добавил все три ESXi хоста VMware кластера:
Если кликнуть по ссылке хоста, то открывается большое кол-во параметров, которые Observium собирает с хоста, анализируйте…..
Observium безошибочно определил кол-во виртуальных машин на всех ESXi хостах и их текущее состояние:
***
В моей инфраструктуре есть два Firewall’a Barracuda Next Generation x300. Если посмотреть на страницу Supported Devices на сайте Observium, то упоминаний о Barracuda там нет. Но я не стал расстраиваться и попытался добавить Firewall’ы в Observium:
Как видим из скриншота выше, Observium корректно определил производителя оборудования, линейку Next Generation и модель x300 и даже подставил рядом с устройством фирменный лейбл. Плюс ко всему он определил, что мои Firewall’ы работают в режиме High Availability (высокой доступности), и какой из них сейчас активный:
Активный Firewall — с меткой x300 (указатель 1), а там, где мы видим x300-ha (указатель 2) – это Firewall, находящийся в режиме ожидания.
Если кликнуть по ссылке Firewall’a, то мы увидим массу разнообразных графиков, как это было с VMware:
Observium сам корректно определил и переместил мои устройства по категориям:
***
Как я говорил ранее, базовые параметры с Windows-систем я снимаю при помощи Zabbix-агентов. Но нам ничего не мешает “натравить” вдобавок и Observium на Windows через встроенную службу SNMP.
Устанавливаем на Windows Server 2012 R2 Standard службу SNMP при помощи Server Manager из Features:
Далее открываем оснастку управления службами, находим SNMP Service, открываем свойства службы и выставляем опции:
После внесения изменения, обязательно перезапускаем службу.
Далее проделываем стандартную процедуру добавления хоста в Observium:
Результат:
Как видим, Observium прекрасно определил, что это Windows Server 2012 R2.
Особенности мониторинга систем Linux/Unix
в Observium существует понятие Unix Agent. Это дополнительный набор скриптов, которые помогают получать дополнительный набор информации с Linux/Unix систем. Unix Agent также использует SNMP. Цитата из документации по этому поводу:
Please note that SNMP is still required on any devices with the agent, the agent simply provides additional data which can’t be accessed via SNMP.
Еще одна важная заметка из документации:
The preferred method of running the Unix agent is via xinetd.
Переходим на машину, где нужно установить Agent (в моем случае это Linux-система) и выполняем последовательность команд:
sudo apt-get install snmpd xinetd vim
sudo mkdir -p /opt/observium && cd /opt
sudo wget http://www.observium.org/observium-community-latest.tar.gz
sudo tar zxvf observium-community-latest.tar.gz
sudo sed -e "/SNMPDOPTS=/ s/^#*/SNMPDOPTS='-Lsd -Lf \/dev\/null -u snmp -p \/var\/run\/snmpd.pid'\n#/" -i /etc/default/snmpd
sudo mkdir /usr/bin/distro/
sudo cp /opt/observium/scripts/distro /usr/bin/distro/
sudo chmod 755 /usr/bin/distro
sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.backup
Редактируем файл конфигурации SNMP:
sudo vim /etc/snmp/snmpd.conf
Вносим самые простые настройки. Обратите внимание на настройку “ВАША_COMMUNITY”:
com2sec readonly default ВАША_COMMUNITY group MyROGroup v1 readonly group MyROGroup v2c readonly group MyROGroup usm readonly view all included .1 80 access MyROGroup "" any noauth exact all none none #This line allows Observium to detect the host OS if the distro script is installed extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro
Выполняем ещё ряд команд:
sudo cp observium/scripts/observium_agent /usr/bin/observium_agent
sudo mkdir -p /usr/lib/observium_agent/local
sudo cp observium/scripts/agent-local/mysql /usr/lib/observium_agent/local/
Явно укажем то, на каком IP работает наш Observium:
sudo cp observium/scripts/observium_agent_xinetd /etc/xinetd.d/observium_agent
sudo vim /etc/xinetd.d/observium_agent
Перезапускаем xinetd и snmpd:
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/snmpd restart
Добавляем нашу Linux-машину в веб-консоли Observium (как это сделать смотрите выше) и получаем конечный результат:
Если на нашей Linux машине развёрнуты дополнительные службы, то мы можем скопировать нужные скрипты из каталога /opt/observium/scripts/agent-local/<ИмяНужногоСкрипта> в каталог /usr/lib/observium_agent/local/
Затем включаем опцию на Observium-сервере в файле /opt/observium/config.php
$config['poller_modules']['unix-agent'] = 1;
Стоит заметить, что скрипты в некоторых случаях требуют установки дополнительных пакетов или дополнительного конфигурирования системы.
Выводы
Подведём итоги по системе мониторинга Observium:
- Observium проста в конфигурировании;
- Observium хорошо документирована и имеет много статей от разных авторов (+1 :));
- Observium понимает много различного оборудования;
- Observium имеет эргономичный и продуманный Web-интерфейс;
- Observium расширяется сторонними скриптами
В очередной раз задался вопросом мониторинга и на этот раз решил попробовать Observium в редакции Community Edition. Почему именно Observium? Если посмотреть документацию, то Observium поддерживает большое количество вендоров программного и аппаратного обеспечения, то есть в нем уже есть шаблоны мониторинга массы конкретных моделей оборудования. Имеется адекватная документация по продукту и, честно говоря, мне очень понравился внешний вид дизайна веб-консоли управления. Кстати, можно пройти по ссылке http://demo.observium.org/ и посмотреть как это выглядит «вживую».
Развёртывание Observium
Observium будем устанавливать на Ubuntu 16.04 LTS. Оригинальную документацию по установке на эту ОС можно найти по ссылке Debian/Ubuntu Installation.
Установим необходимые для Observium пакеты:
sudo apt install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-mysqli php7.0-gd php7.0-mcrypt php7.0-json php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick apache2
Устанавливаем пакет libvirt-bin:
sudo apt install libvirt-bin
Цитата из документации по поводу необходимости этого пакета:
If you want to be able to monitor libvirt virtual machines, install libvirt-bin (beware: this pulls in a whole bunch of dependencies you otherwise probably wouldn’t need on your server)
***
Создаем директории, в которых будут располагаться файлы Observium:
sudo mkdir -p /opt/observium && cd /opt
Как я писал ранее, я устанавливаю версию Community Edition, и поэтому я скачаю архив в названии которого фигурирует слово «community«:
sudo wget http://www.observium.org/observium-community-latest.tar.gz
sudo tar zxvf observium-community-latest.tar.gz
Переходим в папку с конфигурационными файлами и создаем конфигурационный файл копированием скопировав .default-файл:
cd ./observium
sudo cp config.php.default config.php
Открываем файл config.php и редактируем настройки MySQL — username, password и dbname
sudo vim ./config.php
***
Заходим в контекст MySQL:
mysql -u root -p
Первой командой создаём базу данных с именем observium с требуемой кодировкой. Второй командой даём полные привилегии пользователю observium на одноименную базу данных.
CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'IDENTIFIED BY 'PASSWORD';
Далее нужно проверить активирован или нет в MySQL Strict mode, выполнив команду:
SELECT @@GLOBAL.sql_mode;
После выполнения команды я увидел STRICT_TRANS_TABLES:
Чтобы этот режим деактивировать, нужно выполнить ряд действий. Создаем конфигурационный файл, который деактивирует Strict mode:
sudo touch /etc/mysql/conf.d/disable_strict_mode.cnf
Добавим в файл disable_strict_mode.cnf следующие строки:
[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Перезапустим службу MySQL и проверим её статус:
sudo service mysql restart
sudo service mysql status
После выполнения выше описанных действий Strict mode будет деактивирован.
Следующим шагом выполняем скрипт конфигурации ранее созданной базы данных MySQL:
sudo ./discovery.php -u
***
Создаем дополнительные служебные директории и даем на них права доступа пользователю, от имени которого работает веб-сервер apache2 (www-data):
sudo mkdir ./logs
sudo mkdir ./rrd
sudo chown www-data:www-data ./logs
sudo chown www-data:www-data ./rrd
***
Заменяем содержимое файла или добавляем в файл /etc/apache2/sites-available/000-default.conf информацию о виртуальном хосте веб-сервера:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /opt/observium/html <FilesMatch \.phpgt;
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>Активируем php-модуль mcrypt:
sudo phpenmod mcrypt
Активируем mod_rewrite для Observium URL's:
sudo a2enmod rewrite
После внесенных изменений надо перезапустить apache2:
sudo /etc/init.d/apache2 restart
***
Добавляем администратора системы:
./adduser.php admin YourPassword 10
![]()
Теперь можно зайти на Web-интерфейс (http://observium.DomainName.com или IP address) и попытаться залогиниться:
![]()
***
Далее в папке /etc/cron.d/ создаем файл observium с содержимым:
# Run a complete discovery of all devices once every 6 hours 33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1 # Run automated discovery of newly added devices every 5 minutes */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1 # Run multithreaded poller wrapper every 5 minutes */5 * * * * root /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1 # Run housekeeping script daily for syslog, eventlog and alert log 13 5 * * * root /opt/observium/housekeeping.php -ysel # Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data 47 4 * * * root /opt/observium/housekeeping.php -yrptbЕсли этого не сделать, то добавляемые устройств в Observium не будут “мониториться”. Чтобы форсировать мониторинг вновь добавленного устройства, нужно выполнить две команды:
./discovery.php -h all ./poller.php -h all
Итак, мы установили и базово сконфигурировали Observium. Теперь мы можем добавить первые объекты для мониторинга.
Добавление объектов мониторинга
Сделаю маленькое отступление, объясняющее мою среду исполнения. В моем распоряжении есть небольшая, но реально работающая IT среда, которую мне необходимо “мониторить”. IT инфраструктура построена на базе VMWare ESXi 5.5 под управлением VCenter Server Appliance, состоящая из трех хостов в кластере. Плюс отдельным хостом стоит VMware ESXi 6.0 для нужд команды тестировщиков.
Доступность всех виртуальных машин в кластере я проверяю с помощью Zabbix агентов, но вот сами физические хосты в кластере “мониторятся” при помощи Observium. Zabbix-сервер и Observium-сервер стоят на одной виртуальной машине и прекрасно работают. Сама VM с системами мониторинга располагается на этом же кластере VMware – не оптимальное решение, но на отдельный сервер под задачу мониторинга бюджет выделен не был. Мной было принято решение развернуть еще одну виртуальную машину на отдельно стоящем хосте VMware 6.0 и развернуть второй Zabbix и Observium сервер на этой машине. При изменении конфигурации я просто экспортирую и импортирую данные конфигурации на соседние сервера мониторинга. На каждом Zabbix-сервере стоит агент, который проверяет доступность соседа и, в случаи выхода из строя одного сервера мониторинга, я узнаю об этом от другого сервера.
Добавим поочередно хосты ESXi в Observium. На ESXi хостах должен быть активирована служба SNMP, настроено community и разрешен трафик для SNMP. На том, как это сделать мы останавливаться не будем.
Добавить устройство в Observium можно как из через интерфейс командной строки, так и через веб-интерфейс. Пример добавления объекта мониторинга через интерфейс командной строки:
cd /opt/observium/ ./add_device.php [hostname] [community] v2c
Результат успешного выполнения команды добавления будет выглядеть примерно следующим образом:
***
Пример добавления объекта мониторинга через Web-интерфейс:
![]()
В открывшейся форме заполняем соответствующие поля:
![]()
Результат успешного добавления устройства будет выглядеть примерно так:
![]()
***
После того, как вы добавили устройства в Observium, нужно запустить (или дождаться запуска по расписанию) две команды, которые опросят добавленные устройства и начнут снимать с них показания:
cd /opt/observium/ ./discovery.php -h all ./poller.php -h all
Так устройство выглядит в веб-консоли до запуска команд:
![]()
А так - после запуска команд:
![]()
Как видим, Observium определил платформу, на которой работает VMware и версию гипервизора, UP Time ESXi хоста.
***
Выше описанными шагами я добавил все три ESXi хоста VMware кластера:
![]()
Если кликнуть по ссылке хоста, то открывается большое кол-во параметров, которые Observium собирает с хоста, анализируйте…..
![]()
Observium безошибочно определил кол-во виртуальных машин на всех ESXi хостах и их текущее состояние:
![]()
![]()
***
В моей инфраструктуре есть два Firewall’a Barracuda Next Generation x300. Если посмотреть на страницу Supported Devices на сайте Observium, то упоминаний о Barracuda там нет. Но я не стал расстраиваться и попытался добавить Firewall’ы в Observium:
![]()
Как видим из скриншота выше, Observium корректно определил производителя оборудования, линейку Next Generation и модель x300 и даже подставил рядом с устройством фирменный лейбл. Плюс ко всему он определил, что мои Firewall’ы работают в режиме High Availability (высокой доступности), и какой из них сейчас активный:
Активный Firewall - с меткой x300 (указатель 1), а там, где мы видим x300-ha (указатель 2) – это Firewall, находящийся в режиме ожидания.
Если кликнуть по ссылке Firewall’a, то мы увидим массу разнообразных графиков, как это было с VMware:
![]()
Observium сам корректно определил и переместил мои устройства по категориям:
![]()
***
Как я говорил ранее, базовые параметры с Windows-систем я снимаю при помощи Zabbix-агентов. Но нам ничего не мешает “натравить” вдобавок и Observium на Windows через встроенную службу SNMP.
Устанавливаем на Windows Server 2012 R2 Standard службу SNMP при помощи Server Manager из Features:
![]()
Далее открываем оснастку управления службами, находим SNMP Service, открываем свойства службы и выставляем опции:
![]()
После внесения изменения, обязательно перезапускаем службу.
Далее проделываем стандартную процедуру добавления хоста в Observium:
![]()
Результат:
![]()
![]()
Как видим, Observium прекрасно определил, что это Windows Server 2012 R2.
Особенности мониторинга систем Linux/Unix
в Observium существует понятие Unix Agent. Это дополнительный набор скриптов, которые помогают получать дополнительный набор информации с Linux/Unix систем. Unix Agent также использует SNMP. Цитата из документации по этому поводу:
Please note that SNMP is still required on any devices with the agent, the agent simply provides additional data which can't be accessed via SNMP.
Еще одна важная заметка из документации:
The preferred method of running the Unix agent is via xinetd.
Переходим на машину, где нужно установить Agent (в моем случае это Linux-система) и выполняем последовательность команд:
sudo apt-get install snmpd xinetd vim sudo mkdir -p /opt/observium && cd /opt sudo wget http://www.observium.org/observium-community-latest.tar.gz sudo tar zxvf observium-community-latest.tar.gz sudo sed -e "/SNMPDOPTS=/ s/^#*/SNMPDOPTS='-Lsd -Lf \/dev\/null -u snmp -p \/var\/run\/snmpd.pid'\n#/" -i /etc/default/snmpd sudo mkdir /usr/bin/distro/ sudo cp /opt/observium/scripts/distro /usr/bin/distro/ sudo chmod 755 /usr/bin/distro sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.backup
Редактируем файл конфигурации SNMP:
sudo vim /etc/snmp/snmpd.conf
Вносим самые простые настройки. Обратите внимание на настройку “ВАША_COMMUNITY”:
com2sec readonly default ВАША_COMMUNITY group MyROGroup v1 readonly group MyROGroup v2c readonly group MyROGroup usm readonly view all included .1 80 access MyROGroup "" any noauth exact all none none #This line allows Observium to detect the host OS if the distro script is installed extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distroВыполняем ещё ряд команд:
sudo cp observium/scripts/observium_agent /usr/bin/observium_agent sudo mkdir -p /usr/lib/observium_agent/local sudo cp observium/scripts/agent-local/mysql /usr/lib/observium_agent/local/
Явно укажем то, на каком IP работает наш Observium:
sudo cp observium/scripts/observium_agent_xinetd /etc/xinetd.d/observium_agent sudo vim /etc/xinetd.d/observium_agent
![]()
Перезапускаем xinetd и snmpd:
sudo /etc/init.d/xinetd restart sudo /etc/init.d/snmpd restart
Добавляем нашу Linux-машину в веб-консоли Observium (как это сделать смотрите выше) и получаем конечный результат:
![]()
Если на нашей Linux машине развёрнуты дополнительные службы, то мы можем скопировать нужные скрипты из каталога /opt/observium/scripts/agent-local/<ИмяНужногоСкрипта> в каталог /usr/lib/observium_agent/local/
![]()
Затем включаем опцию на Observium-сервере в файле /opt/observium/config.php
$config['poller_modules']['unix-agent'] = 1;
Стоит заметить, что скрипты в некоторых случаях требуют установки дополнительных пакетов или дополнительного конфигурирования системы.
Выводы
Подведём итоги по системе мониторинга Observium:
- Observium проста в конфигурировании;
- Observium хорошо документирована и имеет много статей от разных авторов (+1 :));
- Observium понимает много различного оборудования;
- Observium имеет эргономичный и продуманный Web-интерфейс;
- Observium расширяется сторонними скриптами
2023-03-02
·
3 мин. для прочтения
Система мониторинга Observium.
Содержание
1 Общая информация
- Сайт: https://www.observium.org/.
- Хорош тем, что практически не требует настройки. Работает из коробки.
- Observium доступен в двух версиях:
- бесплатная Community (выпускается раз в 6 месяцев);
- платная Professional;
- платная Enterprise.
- Observium Community годится только для сервисов не критичных к времени реакции, так как устройства по SNMP опрашиваются раз в 5 минут.
- В платной версии предусмотрен модуль Alarms.
- Опрос устройств осуществляется по протоколу SNMP.
- Наилучшим образом подходит для мониторинга коммутационного оборудования.
2 Подключение устройств
- Для добавления маршрутизатора Cisco достаточно задать SNMP community:
snmp-server community public RO
- Добавление устройств в Observium осуществляется либо через меню веб интерфейса (Devices->Add device), либо из командной строки сервера (из каталога Observium):
./add_device.php hostname
3 Принципы работы
- Сбор статистики поделен на 2 основных процесса:
discovery
: выполняется основное обнаружение поддерживаемых на данном устройстве датчиков;poller
: опрос устройств каждые 5 минут.
- В версии для подписчиков есть ещё 2 дополнительных процесса, работающих совместно с процессом
poller
:bill
: подсчёт биллинговой информации на отдельных портах для пользователей;alert
: генерация уведомлений по собираемым системой параметрам.
4 Установка Observium
- Создаем директории, в которых будут располагаться файлы Observium:
sudo mkdir -p /opt/observium
- Скачаем версию Community Edition:
cd /opt wget http://www.observium.org/observium-community-latest.tar.gz tar zxvf observium-community-latest.tar.gz
- Переходим в папку с конфигурационными файлами и создаем конфигурационный файл, скопировав файл по умолчанию:
cd /optobservium sudo cp config.php.default config.php
- Открываем файл
config.php
и редактируем настройки MySQL:username
,password
,dbname
. - Подключаемся к MySQL:
- Создаём базу данных с именем
observium
:CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
- Даём полные привилегии пользователю
observium
на одноименную базу данных:GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'IDENTIFIED BY 'PASSWORD';
- Выполняем скрипт конфигурации ранее созданной базы данных MySQL:
/opt/observium/discovery.php -u
- Создаем дополнительные служебные каталоги:
mkdir /opt/observium/logs mkdir /opt/observium/rrd
- Создайте файл
/etc/httpd/conf.d/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>
- Создайте файл
/etc/cron.d/observium
:# Run a complete discovery of all devices once every 6 hours 33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1 # Run automated discovery of newly added devices every 5 minutes */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1 # Run multithreaded poller wrapper every 5 minutes */5 * * * * root /opt/observium/poller-wrapper.py >> /dev/null 2>&1 # Run housekeeping script daily for syslog, eventlog and alert log 13 5 * * * root /opt/observium/housekeeping.php -ysel # Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data 47 4 * * * root /opt/observium/housekeeping.php -yrptb
- Чтобы форсировать мониторинг устройств, нужно выполнить команды:
/opt/observium/discovery.php -h all /opt/observium/poller.php -h all
5 Обновление Observium
- Переименуйте старую установку и скачайте и распакуйте новую (всё под пользователем
root
):cd /opt mv observium observium_old wget https://www.observium.org/observium-community-latest.tar.gz tar zxvf observium-community-latest.tar.gz mv /opt/observium_old/rrd observium/ mv /opt/observium_old/logs observium/ mv /opt/observium_old/config.php observium/
- Исправьте права доступа:
chown -R apache:apache /opt/observium
- Обновите схему БД:
/opt/observium/discovery.php -u
- Можно принудительно выполнить немедленное повторное обнаружение всех устройств:
/opt/observium/discovery.php -h all
- Можно удалить каталог
observium_old
:
Здравствуйте, уважаемые.
Что пробудило во мне интерес в написании данной статьи? То что бывает иногда появляется доказывать что нагрузка на систему возросла и необходимо показать сколько памяти было необходимо год назад и сколько жрет система сейчас. Для таких целей нужна система типа Observium чтобы держать историю по загрузке системы ну и конечно же мониторинг.
И так начнем.
Observium является PHP / MySQL системой мониторинга сети, ориентированной прежде всего на Cisco и Linux сети, но и включает поддержку широкого спектра сетевого оборудования и операционных систем.
Observium выросла из-за отсутствия простых в использовании NMSes. Она предназначена для обеспечения более нативного интерфейса управления. Разрабатан для быстрого сбора информации о устройствах и хранения истории изменений без ручного вмешательства
Observium является свободным программным обеспечением.
Тестовый стенд буду настраивать на CentOS 6 и Apache.
Репозитории
Для начала добавляем RPM Forge и EPEL репозитории чтобы установить доп.пакеты:
x86_64
rpm --import apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -Uvh packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
i386
rpm --import apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -Uvh packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i386.rpm
rpm -Uvh download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Пакеты
Установим необходимые пакеты для работы Observium:
yum install httpd php php-mysql php-gd php-snmp vixie-cron php-mcrypt \
php-pear net-snmp net-snmp-utils graphviz subversion mysql-server mysql rrdtool \
fping ImageMagick jwhois nmap ipmitool php-pear.noarch MySQL-python
On x86_64 systems this will tend to try to install i386 packages too unless you’ve explicitly blocked them, so you can try to install the x86_64 packages only:
yum install httpd.x86_64 php.x86_64 php-mysql.x86_64 php-gd.x86_64 php-snmp.x86_64 vixie-cron.x86_64 php-mcrypt.x86_64 \
net-snmp.x86_64 net-snmp-utils.x86_64 graphviz.x86_64 subversion.x86_64 mysql-server.x86_64 mysql.x86_64 rrdtool.x86_64 \
fping.x86_64 ImageMagick.x86_64 jwhois.x86_64 nmap.x86_64 ipmitool.x86_64 php-pear.noarch MySQL-python.x86_64
Если Вы собираетесь мониторит виртуальные машины, то необходимо установить libvirt:
yum install libvirt
Закачка
Создаем каталог для Obversium и заходим на него:
mkdir -p /opt/observium && cd /opt
Проверяем последнюю версию Observium c SVN репозитория:
svn co www.observium.org/svn/observer/trunk observium
Переходим на созданную для инсталяции директорию:
cd observium
База данных
Теперь идем дальше настраивать mysql, так как у нас новая система и необходимо настроит пароль root-а:
service mysqld start
/usr/bin/mysqladmin -u root password 'yournrewrootpassword'
Теперь необходимо ввести новый пароль для базы Observium-а:
mysql -u root -p
mysql> CREATE DATABASE observium;
mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'
-> IDENTIFIED BY '';
Конфигурация
Для начала необходимо отключить SELinux (Может кому то и не надо будет, но у меня не заработал пока не отключил):
setenforce 0
Так же необходимо в /etc/selinux/config сменить параметры SELinux-а на permissive
SELINUX=permissive
Копируем файл конфигурации для бекапа и начнем изменения:
cp config.php.default config.php
Добавляем fping и путь к нему в нашу конфигу:
$config['fping'] = "/usr/sbin/fping";
Setup the MySQL database and insert the default schema:
php includes/update/update.php
Create the rrd directory to store RRDs in:
Создаем директорию rrd для сохранения RRD файлов:
mkdir rrd
chown apache:apache rrd
Если на сервере работает только Observium, то вносим изменения в /etc/httpd/conf/httpd.conf типа:
<VirtualHost *:80>
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
Создаем директорию для сбора логов с вебсервера Apache:
mkdir /opt/observium/logs
chown apache:apache /opt/observium/logs
Создаем первого пользователя для Observium, для этого воспользуемся скриптом adduser.php который в каталоге Observium:
cd /opt/observium
./adduser.php komilgulboev papasword13 10
**цифра 10 означает группу Администратора системы
Добавляем первый хост для мониторинга:
./add_device.php server1 public v2c
**К сожалению Observium не может добавить по IP-адресу и для этого необходимо прописать в /etc/hosts след.
192.168.1.30 server1
След. скрипты необходимы для обзора и запроса данных:
./discovery.php -h all
./poller.php -h all
Cron
Для периодического обзора и сбора данных добавляем задачу в Cron-e, создаем файл /etc/cron.d/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 1 >> /dev/null 2>&1
Соответственно для вступления в силу новых изменений перезапускаем cron:
/etc/init.d/cron reload
Заходим на WEB-интерфейс для того чтобы увидеть что у нас получилось:
http://Если все в порядке то добавляем httpd и mysql в стартап:
chkconfig mysqld on
chkconfig httpd on
Ссылка на сайт разработчика платформы
P.S. Друзья ввиду того что пишу не часто и что русский язык мне не родной прошу особо не пинать за ошибки Удачи Вам!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какую систему мониторинга Вы используете?
Проголосовали 296 пользователей. Воздержались 105 пользователей.