Observium является PHP / MySQL системой мониторинга сети, ориентированной прежде всего на Cisco и Linux сети, но и включает поддержку широкого спектра сетевого оборудования и операционных систем.
Observium выросла из-за отсутствия простых в использовании NMSes. Она предназначена для обеспечения более нативного интерфейса управления. Разрабатан для быстрого сбора информации о устройствах и хранения истории изменений без ручного вмешательства.Есть режим autodiscovery.
Observium еще не предназначен для замены существующих Nagios/Cacti/Zabbix системы мониторинга, а в дополнение к нему с интуитивным представлением исторических и текущих показателей статистики, настройки визуализации и syslog захвата.
Бесплатно.
Observium является свободным программным обеспечением.
Тестовый стенд буду настраивать на Gentoo.
Для установки Observium нужно установить такие пакеты:
subversion
net-snmp (нужно установить USE-флаг "diskio")
fping ("/usr/sbin/fping" должен иметь права "-r-s--x--x")
rrdtool
graphviz
php (у меня 5.3)
mysql (version 5.1)
apache (version 2) with mod_php (and mod_rewrite?)
PEAR-Net_IPv4
Если у вас в Portage нет пакета PEAR-Net_IPv6, его нужно установить руками: pear install pear.php.net/Net_IPv6
Приступаем к установке Observium.Переходим в каталог веб-сервера
cd /var/www/localhost/htdocs
Тянем последний релиз Observium:
svn co http://www.observium.org/svn/observer/trunk observium
Создаем доп.каталоги:
mkdir /var/www/localhost/htdocs/observium/graphs
mkdir /var/www/localhost/htdocs/observium/rrd
Создаем конфиги:
cp -iv /var/www/localhost/htdocs/observium/config.php.default /var/www/localhost/htdocs/observium/config.php
Редактируем конфиг и вносим правильные настройки подключения к БД и расположения самого Observium
nano /var/www/localhost/htdocs/observium/config.php
...
#MYCUSTOM ENTRY
$config['fping'] = "/usr/sbin/fping";
### Database config
$config['db_host'] = "localhost";
$config['db_user'] = "observiumuser";
$config['db_pass'] = "observiumpassword";
$config['db_name'] = "observium";
### Locations
$config['install_dir']  = "/var/www/localhost/htdocs/observium";
...
Идем в Мускуль и создаем пользователя и БД
mysql -u root -p
...создание БД...
CREATE DATABASE observium;
...создание пользователя...
GRANT ALL PRIVILEGES ON observium.* TO 'observiumuser'@'localhost' IDENTIFIED BY 'observiumpassword';
...переходим в нашу БД...
CONNECT observium;
...Создаем таблицы по шаблону из поставки...
SOURCE /var/www/localhost/htdocs/observium/database-schema.sql;
...все на выход:
QUIT;
Лезем в корневую директорию
cd /var/www/localhost/htdocs/observium
И начинаем обновлять структуру базы апдейтами:
scripts/update-sql.php database-update-pre1000.sql
        scripts/update-sql.php database-update-pre1435.sql
        scripts/update-sql.php database-update-pre2245.sql
        scripts/update-sql.php database-update.sql
В процессе выполнения не должно быть ошибок.
Делаем Апач владельцем нашего творения:
cd /var/www/localhost/htdocs
chown -R apache:apache observium/
Создаем виртуальный хост в нашем Apache
DocumentRoot /var/www/localhost/htdocs/observium/html/
ServerName  observium.domain.com
CustomLog /var/www/localhost/htdocs/observium/logs/access_log combined
ErrorLog /var/www/localhost/htdocs/observium/logs/error_log
AllowOverride All
    Options FollowSymLinks MultiViews
 
 
Создаем административную учетку
cd /var/www/localhost/htdocs/observium
./adduser.php myadminuser myadminpassword 10
Настраиваем SNMP сервер:
...
#       sec.name  source          community
com2sec local     localhost       testcom
com2sec mynetwork NETWORK/24      testcom
####
...
...and set the location and contact information (your email):
...
# System contact information
#
syslocation Kyiv
...
Стартуем сервер SNMP
/etc/init.d/snmpd start
Добавляем хост за которым будем вести слежку:
cd /var/www/localhost/htdocs/observium
./addhost.php localhost testcom v2c
Считываем инфу:
./discovery.php -h all
./poller.php -h all
Лучше добавить все это в крон:
crontab -e
...
40      23     *       *       *       cd /var/www/localhost/htdocs/observium && ./discovery.php -h all >> /dev/null 2>&1
*/30     *       *       *       *       cd /var/www/localhost/htdocs/observium && ./discovery.php -h new >> /dev/null 2>&1
*/5     *       *       *       *       cd /var/www/localhost/htdocs/observium && ./poller.php -h all >> /dev/null 2>&1
...
Правим маршруты к нашим утилитам
nano includes/defaults.inc.php
$config['temp_dir']      = "/tmp";
$config['install_dir']   = "/var/www/observium";
$config['html_dir']      = $config['install_dir'] . "/html";
$config['rrd_dir']       = $config['install_dir'] . "/rrd";
$config['log_file']      = $config['install_dir'] . "/observium.log";
### Location of executables
$config['rrdtool']        = "/usr/bin/rrdtool";
$config['fping']          = "/usr/sbin/fping";
$config['fping6']         = "/usr/sbin/fping6";
$config['snmpwalk']       = "/usr/bin/snmpwalk";
$config['snmpget']        = "/usr/bin/snmpget";
$config['snmpbulkwalk']   = "/usr/bin/snmpbulkwalk";
$config['whois']          = "/usr/bin/whois";
$config['ping']           = "/bin/ping";
$config['mtr']            = "/usr/sbin/mtr";
$config['nmap']           = "/usr/bin/nmap";
$config['nagios_plugins'] = "/usr/lib/nagios/plugins";
$config['ipmitool']       = "/usr/bin/ipmitool";
$config['virsh']          = "/usr/bin/virsh";
Ну вот собственно у все.
Если у вас вместо Apache установлен Nginx, то конфиг должен быть вот таким:
    server
    {
    listen 80;
    server_name monitoring.blah-blah.ch;
    access_log /var/log/nginx/monitoring.blah-blah.ch.access_log main;
    error_log /var/log/nginx/monitoring.blah-blah.ch.error_log info;
    root /var/www/localhost/htdocs/monitoring/html;
    index index.php;
    location / {
    try_files $uri $uri/ @observium;
    }
    location @observium {
    rewrite ^(.+)$ /index.php/$1/ last;
    }
    location ~ ^/(.*\.php).*$ {
    fastcgi_split_path_info ^(.*\.php)(.*)$;
    # or include the equivalent of below:
    fastcgi_pass 127.0.0.1:12345;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param DOCUMENT_URI $document_uri;
    fastcgi_param DOCUMENT_ROOT $document_root;
    fastcgi_param SERVER_PROTOCOL $server_protocol;
    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REMOTE_PORT $remote_port;
    fastcgi_param SERVER_ADDR $server_addr;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_NAME $server_name;
    # PHP only, required if PHP was built with --enable-force-cgi-redirect
    fastcgi_param REDIRECT_STATUS 200;
    fastcgi_intercept_errors on;
    }
    location ~ /\.ht {
    deny all;
    }
    }
И желательно скомпилить Nginx с USE-флагом stub_status для просмотра статистики
