Здравствуйте, уважаемые.
Что пробудило во мне интерес в написании данной статьи? То что бывает иногда появляется доказывать что нагрузка на систему возросла и необходимо показать сколько памяти было необходимо год назад и сколько жрет система сейчас. Для таких целей нужна система типа 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