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 для просмотра статистики