Установка 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…).
Инвентаризация ИТ ресурсов сети и удаленное администрирование серверов.
Итак, приступим к установке.
Установим необходимые пакеты
Создадим пользователя icinga и зададим пароль
Создадим группу icinga-cmd
Теперь качаем icinga:
Конфигурируем, компилируем и устанавливаем icinga:
Устанавливаем конфигурационный файл:
Скопируем конфигурационные файлы idoutils для установки:
Разрешим использование idomod:
Тут нужно разкоментировать строку, начинающуюся с broker_module
Создадим базу:
Конфигурируем web-интерфейс:
Создадим пароль для пользователя icingaadmin:
Перегружаем web-сервер:
Скачаем и установим необходимые для работы плагины:
Проверяем конфигурацию.
Если ошибок нет, идем дальше.
Добавим Icinga и IDOUtils в автозагрузку:
Стартуем Icinga и IDOUtils.
Убедитесь, что можете зайти на сервер http://<адрес_сервера>/icinga с логином icingaadmin и ранее созданным паролем.
Теперь займемся NConf.
NConf это web-интерфейс для настройки программного обеспечения мониторинга.
Установка NConf:
Саздаем файл конфигурации Apache для NConf:
вставляем в этот файл:
и перегружаем Apache:
Создадим базу NConf:
где <password> - наш пароль
Заходим через web-броузер по адресу: http://<адрес_сервера>/nconf/INSTALL.php
Здесь производим следующие изменения:
cd /var/www/nconf
sudo rm -R INSTALL UPDATE INSTALL.php UPDATE.php
Теперь нажимаем `Finish`
Конфигурируем Icinga для работы с NConf:
Закоментируем все строки, которые начинаются с `cfg_file=` и добавим в этот файл:
Теперь отредактируем скрипт deploy_local.sh:
приведя его в такой вид:
Делаем его исполняемым:
и добавим его запуск каждые 10 минут:
Влючаем в 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
Создаем базу icinga_web:
Установка icinga-web
Перегружаем Apache:
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`
Здравствуйте! Огромное спасибо за статью! Установил 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.
Спасибо за Ваш труд!
Добрый день, сделал все по вашему how-to, вроде все завелось, но вот вопрос, в icinga и nconf наблюдаю заведённые хосты и т.д., а icinga-web девственно пуст :(
ОтветитьУдалитьА где взять mysql.sql для этого
ОтветитьУдалитьmysql -u root -p icinga_web < /usr/src/icinga-web/etc/schema/mysql.sql ?
Ага, разобрался. Для этого надо вначале выполнить абзац ниже(поставить 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 ?
ОтветитьУдалитьИ к этому надо добавить сноску как раньше, что вводить свой пароль от 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;