Установка Icinga на Ubuntu 11.04 (включая Icinga-Web, Icinga-API, IDOUtils, NConf).

Icinga - это система мониторинга, которая может следить за сетью и любыми ресурсами сети.

Icinga позволяет вести on-line контроль за активным оборудованием и IT-сервисами вычислительной сети компании
(мониторинг сетевых сервисов: SMTP, POP3, IMAP, SSH, Telnet, FTP, HTTP, DNS…;
контроль утилизации серверных ресурсов: загруженность процессора, расходование оперативной памяти, дискового пространства…).

Своевременное и всеобъемлющее информирование ответственных администраторов о состоянии информационно-технологических ресурсов. В рамках данного среза система Icinga имеет возможность проводить информирование через различные каналы коммуникации как аудио-визуальные, так и электронные (e-mail, sms, messenger…).
Инвентаризация ИТ ресурсов сети и удаленное администрирование серверов.

Итак, приступим к установке.
sudo apt-get update
sudo apt-get upgrade

Установим необходимые пакеты

sudo apt-get install apache2 build-essential mailutils libgd2-xpm-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-0-dev mysql-server mysql-client libdbi0 libdbi0-dev libdbd-mysql libdbi-perl libdbd-mysql-perl php5-mysql libapache2-mod-php5 libnet-snmp-perl libradius1 libtalloc2 libwbclient0 radiusclient1 samba-common samba-common-bin smbclient snmp git-core libssl-dev openssl php5-cli php5-xsl php-pear


Создадим пользователя icinga и зададим пароль
sudo useradd -m icinga
sudo passwd icinga

Создадим группу icinga-cmd
sudo groupadd icinga-cmd
sudo usermod -a -G icinga-cmd icinga
sudo usermod -a -G icinga-cmd www-data

Теперь качаем icinga:
cd /usr/src
git clone git://git.icinga.org/icinga-core.git

Конфигурируем, компилируем и устанавливаем icinga:
cd icinga-core
sudo ./configure --enable-idoutils --with-command-group=icinga-cmd
sudo make all
sudo make fullinstall

Устанавливаем конфигурационный файл:
sudo make install-config

Скопируем конфигурационные файлы idoutils для установки:
cd /usr/local/icinga/etc
sudo cp idomod.cfg-sample idomod.cfg
sudo cp ido2db.cfg-sample ido2db.cfg

Разрешим использование idomod:
sudo nano /usr/local/icinga/etc/icinga.cfg

Тут нужно разкоментировать строку, начинающуюся с broker_module
brocker_module=/usr/local/icinga/bin/idomod.o config_file=/usr/local/icinga/etc/idomod.cfg

Создадим базу:
sudo mysql -u root -p
mysql> CREATE DATABASE icinga;
mysql> GRANT USAGE ON *.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON icinga.* TO 'icinga'@'localhost';
mysql> FLUSH PRIVILEGES ;
mysql> quit

cd /usr/src/icinga-core/module/idoutils/db/mysql
sudo mysql -u root -p icinga < mysql.sql

Конфигурируем web-интерфейс:
cd /usr/src/icinga-core
sudo make install-webconf

Создадим пароль для пользователя icingaadmin:
sudo htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin

Перегружаем web-сервер:
sudo /etc/init.d/apache2 reload
sudo chgrp -R www-data /usr/local/icinga/var/rw


Скачаем и установим необходимые для работы плагины:
cd /usr/src
sudo wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz
sudo tar xzvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
sudo ./configure --prefix=/usr/local/icinga --with-nagios-user=icinga --with-openssl=/usr/bin/openssl
sudo make
sudo make install

Проверяем конфигурацию.
sudo /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg

Если ошибок нет, идем дальше.

Добавим Icinga и IDOUtils в автозагрузку:
sudo update-rc.d icinga defaults
sudo update-rc.d ido2db defaults

Стартуем Icinga и IDOUtils.
sudo service ido2db start
sudo service icinga start

Убедитесь, что можете зайти на сервер http://<адрес_сервера>/icinga с логином icingaadmin и ранее созданным паролем.

Теперь займемся NConf.
NConf это web-интерфейс для настройки программного обеспечения мониторинга.
Установка NConf:
cd /usr/src
sudo wget http://downloads.sourceforge.net/project/nconf/nconf/1.2.6-0/nconf-1.2.6-0.tgz
sudo tar xzvf nconf-1.2.6-0.tgz
sudo mv nconf /var/www
sudo chown -R www-data:www-data /var/www/nconf

Саздаем файл конфигурации Apache для NConf:
sudo nano /etc/apache2/conf.d/nconf.conf

вставляем в этот файл:
<Directory "/var/www/nconf">
  # SSLRequireSSL
  Options None
  AllowOverride None
  Order allow,deny
  Allow from all
  # Order deny,allow
  # Deny from all
  # Allow from 127.0.0.1
  AuthName "Icinga Access"
  AuthType Basic
  AuthUserFile /usr/local/icinga/etc/htpasswd.users
  Require valid-user
</Directory>

и перегружаем  Apache:
sudo /etc/init.d/apache2 reload

Создадим базу NConf:
sudo mysql -u root -p
mysql> CREATE DATABASE nconf;
mysql> GRANT USAGE ON *.* TO 'nconf'@'localhost' IDENTIFIED BY '<password>' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
mysql> GRANT ALL PRIVILEGES ON nconf.* TO 'nconf'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

где <password> - наш пароль

Заходим через web-броузер по адресу: http://<адрес_сервера>/nconf/INSTALL.php

Здесь производим следующие изменения:
 
DBNAME: nconf
DBUSER: nconf
DBPASS: <password>
NAGIOS_BIN: /usr/local/icinga/bin/icinga
Перед тем, как нажать `Finish` нужно удалить инталяционные файлы:

cd /var/www/nconf
sudo rm -R INSTALL UPDATE INSTALL.php UPDATE.php

Теперь нажимаем `Finish`

Конфигурируем Icinga для работы с NConf:
sudo chgrp www-data /usr/local/icinga/bin/icinga
sudo nano /usr/local/icinga/etc/icinga.cfg

Закоментируем все строки, которые начинаются с `cfg_file=` и добавим в этот файл:
cfg_dir=/usr/local/icinga/etc/objects/global
cfg_dir=/usr/local/icinga/etc/objects/Default_collector

Теперь отредактируем скрипт deploy_local.sh:
sudo nano /var/www/nconf/ADD-ONS/deploy_local.sh

приведя его в такой вид:
#!/bin/bash
OUTPUT_DIR="/var/www/nconf/output/"
NAGIOS_DIR="/usr/local/icinga/etc/objects/"
TEMP_DIR=${NAGIOS_DIR}"import/"
CONF_ARCHIVE="NagiosConfig.tgz"

if [ ! -e ${TEMP_DIR} ] ; then
  mkdir -p ${TEMP_DIR}
fi

if [ ${OUTPUT_DIR}${CONF_ARCHIVE} -nt ${TEMP_DIR}${CONF_ARCHIVE} ] ; then
  cp -p ${OUTPUT_DIR}${CONF_ARCHIVE} ${TEMP_DIR}${CONF_ARCHIVE}
  tar -xf ${TEMP_DIR}${CONF_ARCHIVE} -C ${NAGIOS_DIR}
  /etc/init.d/icinga reload
fi
exit

Делаем его исполняемым:
sudo chmod +x /var/www/nconf/ADD-ONS/deploy_local.sh

и добавим его запуск каждые 10 минут:
sudo crontab -e
*/10 * * * * /var/www/nconf/ADD-ONS/deploy_local.sh

Влючаем в Icinga оповещение по электронной почте.

Заходим http://<адрес_сервера>/nconf

В разеле Misccommands нажмем Show

и меняем в пунктах `notifiy-host-by-email` и `notifiy-service-by-email` /bin/mail на /usr/bin/mail

В разеле Contacts - Show - nagiosadmin в пунктах `host notification options` и `service notification options` нужно удалить `,n`

Установка Icinga API
sudo git clone git://git.icinga.org/icinga-api.git
cd icinga-api
sudo ./configure --datarootdir=/usr/local/icinga/share --sysconfdir=/usr/local/icinga/etc --with-command-user=icinga-cmd --with-command-group=icinga-cmd --with-icinga-user=icinga --with-icinga-group=icinga --with-web-user=www-data --with-web-group=www-data
sudo make install

Создаем базу icinga_web:
sudo mysql -u root -p
mysql> CREATE DATABASE icinga_web;
mysql> GRANT USAGE ON *.* TO 'icinga_web'@'localhost' IDENTIFIED BY '<password>' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost';
mysql> FLUSH PRIVILEGES ;
quit

mysql -u root -p icinga_web < /usr/src/icinga-web/etc/schema/mysql.sql

Установка icinga-web
cd /usr/src
sudo git clone git://git.icinga.org/icinga-web.git
cd icinga-web
sudo ./configure --prefix=/usr/local/icinga-web --with-web-user=www-data --with-web-group=www-data --with-web-path=/icinga-web --with-web-apache-path=/etc/apache2/conf.d --with-db-type=mysql --with-db-host=localhost --with-db-port=3306 --with-db-name=icinga_web --with-db-user=icinga_web --with-db-pass=<your-mysql-password> --with-icinga-api=/usr/local/icinga/share/icinga-api
sudo make install
sudo make install-apache-config
sudo make install-done

Перегружаем  Apache:
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
sudo service apache2 restart

Заходим по адресу http://<адрес_сервера>/icinga-web c логином `root` и паролем `password`

Комментарии

  1. Здравствуйте! Огромное спасибо за статью! Установил icinga с Вашей помощью. Единственное что пришлось подправить, так это при созданни базы для icinga-web, при добавлении прав пользователь подправил строку
    "GRANT USAGE ON *.* TO 'icinga_web'@'localhost'..."
    на
    "GRANT USAGE ON icinga_web.* TO 'icinga_web'@'localhost'...".
    Только в этом случае пропала ошибка:
    "SQLSTATE[28000] [1045] Access denied for user 'icinga_web'@'localhost' (using password: YES)"
    и мне удалось войти на http:///icinga-web.
    Спасибо за Ваш труд!

    ОтветитьУдалить
  2. Добрый день, сделал все по вашему how-to, вроде все завелось, но вот вопрос, в icinga и nconf наблюдаю заведённые хосты и т.д., а icinga-web девственно пуст :(

    ОтветитьУдалить
  3. А где взять mysql.sql для этого
    mysql -u root -p icinga_web < /usr/src/icinga-web/etc/schema/mysql.sql ?

    ОтветитьУдалить
  4. Ага, разобрался. Для этого надо вначале выполнить абзац ниже(поставить icinga-web). Второй вопрос: тут sudo ./configure --prefix=/usr/local/icinga-web --with-web-user=www-data --with-web-group=www-data --with-web-path=/icinga-web --with-web-apache-path=/etc/apache2/conf.d --with-db-type=mysql --with-db-host=localhost --with-db-port=3306 --with-db-name=icinga_web --with-db-user=icinga_web --with-db-pass= --with-icinga-api=/usr/local/icinga/share/icinga-api вместо пишем свой пароль на sql ?

    ОтветитьУдалить
  5. И к этому надо добавить сноску как раньше, что вводить свой пароль от sql вместо
    mysql> GRANT USAGE ON *.* TO 'icinga_web'@'localhost' IDENTIFIED BY '' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Проверка работы почтового сервера из командной строки

Как включить RDP на компьютерах через GPO