|
Ипотека на жилье Новости, статьи, доски объявлений, справочники. О банковских услугах. becar.ru |
|
Сборщик мебели Конкурсы красоты. Новости рынка труда. potap.org |
Статья напечатана в журнале
Современный бизнес прочно завязан на IT-технологиях. От стабильности работы серверного и сетевого оборудования зависит эффективность компании любого размера и ее престиж. Постоянное наблюдение за всеми компонентами позволит выявить проблемные участки и устранить их до того, как произойдет сбой, или они смогут повлиять на работу сети, а оповещение поможет быстро устранить неисправность.
Задача проекта – разработка свободной системы мониторинга компьютерных систем и сетей. Такая система следит за узлами или службами и в случае возникновения проблем (например, служба не отвечает) оповещает администратора. Nagios производит мониторинг работы большинства сетевых сервисов: SMTP, POP3, IMAP, SSH, TELNET, FTP, HTTP, DNS и многих других. Также с его помощью можно отслеживать использование ресурсов серверов: загруженность процессора, расходование оперативной памяти, дискового пространства и т.д. Причем не только в Unix, но и в других ОС. Например, мониторинг работы серверов под управлением Windows обеспечивается модулем NRPE_NT. Возможен удаленный мониторинг через шифрованные SSH или SSL туннели. Простая архитектура модулей расширений позволяет создавать свои способы проверки служб и обработчики событий (например, перезапуск зависшего сервиса). Концепция «родительских» узлов дает возможность определить иерархию и зависимости между хостами, таким образом, можно отличать действительно неработающие узлы от тех, которые недоступны системе мониторинга из-за неполадок на промежуточных пунктах. Администраторы любят Nagios за умение строить карты сетевой инфраструктуры и графики различных параметров наблюдаемых систем.
Проект возник в 2002 году, хотя первое время он был известен как NetSaint. Его лидером является программист Этан Галстад. Само слово Nagios является рекурсивным акронимом, который расшифровывается как Nagios Ain’t Gonna Insist On Sainthood (Nagios не собирается настаивать на святости), что является намеком на предыдущее название проекта Saint. Функциональность расширяется за счет плагинов и аддонов, большая часть из которых доступна на странице закачки.
В настоящее время предлагается две ветки продукта: ранняя 2.х и новая 3.х. В последней не только исправлены найденные ранее ошибки, добавлены новые макросы и многое другое, но, что не менее важно, пересмотрен алгоритм сканирования, с целью устранить один из главных недостатков этой системы – медлительность при проверке больших сетей. В 2.х все тесты проходят практически последовательно, в новой редакции задачи выполняются параллельно. Хотя вторая версия пока еще развивается, очевидно, что в будущем все силы будут брошены на ветку 3. Поэтому дальше речь пойдет именно о ней, хотя отличия в настройках не значительны.
Установку будем производить в Ubuntu, в других дистрибутивах процесс полностью аналогичен, за исключением начального этапа – установки зависимостей. Поиск в репозитарии командой:
$ sudo apt-cache search nagios
Выдаст ряд пакетов. Причем в этом списке присутствуют обе версии Nagios (пакеты 2-ой версии называются nagios2).
Но в репозитарии не всегда самая свежая версия, поэтому будем ставить из исходников.
Если еще не устанавливался компилятор и прочие необходимые инструменты, ставим метапакет build-essential. Для просмотра статистики Nagios нам понадобится веб-сервер и графическая библиотека GD2 (нужна для динамической работы с изображениями):
$ sudo apt-get install apache2 libgd2-xpm-dev
$ sudo apt-get install build-essential
Перед компиляцией Nagios следует создать специального пользователя и группу, от имени которых он будет работать. Если этого не сделать, Nagios собрать не удастся.
$ sudo useradd -m nagios
$ sudo passwd nagios
В некоторых дистрибутивах при создании нового пользователя автоматически создается группа с таким же именем.
Проверяем, так ли это:
$ grep nagios /etc/group
nagios:x:1001:
Если вывод ничего не показал, создаем такую группу вручную:
$ sudo usermod -G nagios nagios
Группа nagcmd необходима для управления настройками через веб-интерфейс, в эту группу должна быть включена учетная запись веб-сервера (в Ubuntu — www-data) и пользователь nagios:
$ sudo groupadd nagcmd
$ sudo usermod -G nagcmd nagios
$ grep -i user /etc/apache2/envvars
export APACHE_RUN_USER=www-data
$ sudo usermod -G nagcmd www-data
Теперь заходим на страницу и скачиваем последние версии Nagios и плагины (Plugins). Кроме стабильных версий, можно скачать последний CVS срез, но это, наверное, больше для экспериментаторов. Плагины можно скачать также со специального сайта nagiosplugins.org. Здесь же доступна и ссылка на страницу с аддонами (www.nagios.org/download/addons). Для установки они не нужны, но могут в последствии понадобиться при настройке мониторинга некоторых сервисов. Распаковываем полученные архивы и конфигурируем:
$ tar xzf nagios-3.0.3.tar.gz
$ cd nagios-3.0.3
$ ./configure -–with-command-group=nagcmd
По окончании процедуры конфигурирования будет выведена таблица настроек, следует убедиться в том, что все нужное найдено, и параметры верны:
General Options:
————————-
…
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagcmd
…
Web Interface Options:
————————
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgi-bin/
Теперь компилируем:
$ make all
По окончании сборки будет выдан список команд для установки различных компонентов Nagios. Ставим все:
$ sudo make install
$ sudo make install-init
$ sudo make install-config
$ sudo make install-commandmode
$ sudo make install-webconf
После выполнения третьей команды в каталог /usr/local/nagios/etc/ будут скопированы примеры конфигурационных файлов (cgi.cfg nagios.cfg resource.cfg). Команда «make install-webconf» создаст файл /etc/apache2/conf.d/nagios.conf, необходимый для работы с веб-сервером Apache.
Чтобы получить возможность регистрироваться через веб-интерфейс, при помощи htpasswd создадим учетную запись nagiosadmin:
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Перезапускаем апач командой:
$ sudo /etc/init.d/apache2 reload
После установки в каталог /etc/init.d/ будет помещен скрипт для запуска Nagios, обеспечим его автоматическую загрузку при старте системы:
$ sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Установка плагинов, в общем-то, стандартна:
$ tar xzf nagios-plugins-1.4.12.tar.gz
$ cd nagios-plugins-1.4.12
Есть и другие опции конфигурирования, но нам подходят установки по умолчанию:
$ ./configure —with-nagios-user=nagios -—with-nagios-group=nagios
$ make
$ sudo make install
Теперь все готово к первому запуску Nagios, конфигурационные файлы уже настроены на мониторинг локальной системы. Проверяем конфиг:
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
Things look okay — No serious problems were detected during the pre-flight check
Запускаем Nagios командой «sudo /etc/init.d/nagios start», некоторое время будет затрачено на сбор параметров локальной системы. Чтобы их просмотреть, при помощи веб-браузера заходим по адресу, подсказанному при установке — http://localhost/nagios/. Вводим логин nagiosadmin и пароль. Разобраться с веб-интерфейсом легко, не смотря на отсутствие локализации. Теперь заглянем в конфиги.
Как отмечалось выше, после установки Nagios появится несколько конфигурационных файлов. Основной конфиг, содержащий большое количество директив, которые считывает при запуске демон, называется nagios.cfg. Этот файл ссылается еще на два типа файлов. В файлах ресурсов содержатся пользовательские макросы, в том числе и пароли для доступа к объектам. Эту информацию специально разместили отдельно, чтобы не было возможности получить к ней доступ из CGI. В целях безопасности на такие файлы устанавливаются права 600 или 660. По умолчанию файл ресурсов один — resource.cfg. Использовав директиву resource_file в nagios.cfg, можно добавить любое их количество. Объекты, то есть все элементы, участвующие в мониторинге и оповещении (узлы, сервисы, контакты, команды и т.д.), описываются файлами определения объектов (Object Definition Files). За счет cfg_file можно прописать несколько таких файлов, но для удобства вместо отдельных файлов используют директиву cfg_dir, при помощи которой можно указать Nagios на каталог, где он будет искать файлы с описаниями объектов. Таких каталогов также может быть несколько. После установки в /usr/local/nagios/etc/ будет создан подкаталог objects с примерами таких файлов. И, наконец, файл cgi.cfg содержит настройки CGI.
Параметров в nagios.cfg и cgi.cfg довольно много, но их назначение часто очевидно. Полное описание всех возможных параметров конфигурационных файлов можно найти в документации Nagios . Что касается файла ресурсов, то он очень прост. Наибольший интерес представляют объектные файлы. Чтобы пример сделать интереснее, настроим мониторинг удаленного сервера, работающего под управлением Windows.
В подкаталоге objects есть готовые шаблоны объектных файлов для большинства случаев. В качестве шаблона настройки возьмем windows.cfg. Подключаем его, сняв комментарий в nagios.cfg:
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
Теперь открываем windows.cfg и правим:
$ sudo nano /usr/local/nagios/etc/objects/windows.cfg
# Описание узла (IP адрес, имя)
define host{
; Наследование значений по умолчанию из шаблона
use windows-server
host_name server01
alias Windows Server
address 192.168.1.20
}
# Описание контролируемых сервисов
define service{
use generic-service
host_name server01
service_description NSClient++ Version
# Команда для проверки
check_command check_nt!CLIENTVERSION
}
# Контроль загрузки процессора
define service{
use generic-service
host_name server01
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
# Расход оперативной памяти нас также интересует
define service{
use generic-service
host_name server01
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
# Чтобы добавить контроль конкретного сервиса (например Explorer), используем такую конструкцию:
define service{
use generic-service
host_name server01
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
И так далее. Описание параметров можно найти в указанном файле и конфиге клиента (о нем чуть ниже). Теперь на сервер под управлением Windows необходимо установить программу-клиент , первые версии которой были написаны еще для NetSaint. На странице для закачки можно найти zip архив или установочный файл. Обрати внимание, что для 32 и 64 битных систем следует брать разные файлы. Установка msi файла стандартна, в случае zip архива его нужно распаковать, а затем, перейдя в этот каталог, ввести в окне терминала две команды:
> nsclient++ /install
> nsclient++ SysTray
После этого в консоли Службы появится новый сервис. Вызываем окно свойств, переходим на вкладку «Вход в систему» и взводим флажок «Разрешить взаимодействие с рабочим столом«. Запустить ее можно отсюда же или из меню Пуск, выбрав нужный пункт в появившейся вкладке, или введя в терминале:
> nsclient++ /start
Но перед запуском следует изменить параметры в конфигурационном файле NSC.ini, который находится в подкаталоге, где установлен NSClient++. Не смотря на то, что параметров внутри много, часто достаточно просто снять комментарии.
Файл NSC.ini
[modules]
# Снимаем ремарки с нужных модулей
# (есть и другие, но они пока находятся в стадии тестирования)
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll
[Settings]
# Пароль для доступа
password=secret-password
# Узел или узлы, которым разрешено подключение
allowed_hosts=192.168.1.100
[NSClient]
# Порт, на котором будет работать NSClientListener.dll
port=12489
Если был установлен пароль для доступа к NSClient++ клиенту, следует изменить команду для подключения. Команды описываются в файле commands.cfg, по умолчанию он уже подключен в nagios.cfg, но не поленись проверить, так ли это.
сfg_file=/usr/local/nagios/etc/objects/commands.cfg
Для считывания данных и передачи их серверу используется плагин check_nt, входящий в стандартную поставку Nagios. Открываем commands.cfg и приводим запись check_nt к следующему виду, указав после параметра ‘-s‘ пароль для доступа.
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 \
-s secret_password -v $ARG1$ $ARG2$
}
Следует потратить некоторое время на изучение этого файла. Это снимет ряд вопросов о том, как работает Nagios. После всех изменений проверяем конфиги и перезапускаем Nagios:
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
$ sudo /etc/init.d/nagios reload
Все, теперь программа некоторое время потратит на сбор информации, после чего данные будут доступны через веб-интерфейс.
Как говорилось, Nagios может не только собирать статистику, но и оповещать при возникновении проблем. Две команды notify-host-by-email и notify-service-by-email, описанные в commands.cfg, позволяют отсылать предупреждения на e-mail. Но чтобы они работали, в Ubuntu необходимо установить пакет mailx и изменить путь в описании с /bin/mail на /usr/bin/mail (или сделать соответствующий симлинк). Куда отправлять сообщение, описывается в файле contacts.cfg.
$ sudo nano /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name nagiosadmin
alias Nagios Admin
# Период оповещения
service_notification_period 24×7
host_notification_period 24×7
# Параметры состояния объектов u = unknown (неизвестное), w = warning (предупреждение), c = critical (критическое), r = recoveries (восстановлено), f = старт/стоп, n = none (отключение уведомлений)
service_notification_options w,u,c,r
host_notification_options d,u,r
# Тип оповещения из commands.cfg
service_notification_commands notify-by-email,notify-by-epager
host_notification_commands host-notify-by-email,host-notify-by-epager
# Адреса
email nagios@domain.com
pager nagios@domain.com
address1 11111111@icq.com
}
Используя контактные группы (contactgroups.cfg), можно определить пользователей, которым будут отправляться оповещения о работе конкретных типов серверов или сервисов. Не забудь проверить, чтобы этот файл был подключен в nagios.cfg.
Это далеко не все возможности Nagios, их насколько много, что на описание не хватит и книги. Наверное, Nagios не очень удобен для мониторинга единичного компьютера или сервиса, его потенциал полностью раскрывается в средних и больших сетях со сложной структурой. Это как раз тот случай, когда следует познакомиться с ним поближе.
15 Комментариев к Установка и настройка Nagios в Ubuntu
Декабрь 29th, 2008 | 13:01
А я бы за такое подчиненному админу руки оторвал. )
Неужели тяжело в пакет собрать и устанавливать? Тем более что nagios предыдущей версии в ubuntu уже есть.
Декабрь 29th, 2008 | 17:10
Статья писалась несколько месяцев назад.
В формат всего не втиснешь, приходится чем-то жертвовать.
Январь 25th, 2009 | 11:24
про винду зачет!!! не знал =))
Февраль 18th, 2009 | 11:42
тут неплохо про мониторинг Оракла написано… мож пригодится кому
http://berghowto.info/viewtopic.php?f=67&t=82
Июль 11th, 2009 | 9:37
Приветствую.
В линухе не селен, учусь. Была команда развернуть Nagios
Установил все по инструкции, все село нормально. Но когда ввожу localhost, не открывается указанная страница, дает скачать какой файлик, внутри хтмл код(ссылки).
Кто подскажет что я сделал неправильно????
Июль 11th, 2009 | 13:25
Нужно обработку PHP в веб-сервере установить.
Поищи здесь на сайте недавно была статья.
Июль 20th, 2009 | 5:28
Пасиб grinder.
Но уже разобрался. дабы долго не мучиться в поисках, снес все и поставил заново, сейчас все работает.
Думаю дело было в том что в первом случае после установки Ubuntu сходу накатил все пакеты обновления.
Во втором случае после установи сразу начал ставить Nagios хотя схема установки в 2-ом случае аналогично первой, но все заработало.
А твою подсказку на учту будущее.
Июль 29th, 2009 | 9:15
Ребята подскажите в чем за байда?
В общем Ubuntu 9.04 (на виртуалке) (IP 192.168.88.28)
Nagios 3.1.2 настроил все по инструкции http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html
NSClient настроен по вашей инструкции
Тестовая машина (IP 192.160.88.20) отображается в web нормально? видны все процессы.
Боевой сервак (IP 192.168.14.5) статус “Warning”could not fetch information from server ”
порты открыты 12489, 5666, телнетом с сервера nagios по портам хожу, пароли убрал ваще.
Или то что разные зоны, в этом причина?
Что где недоглядел? Подскажите пожалуйста!!!
Июль 29th, 2009 | 14:03
а что в NSC.ini?
Июль 30th, 2009 | 9:20
Все спасибо, разобрался.
дело в стом что разные сети, боевые стоят в DMZ, там прикручен NAT вот нужно было прописывать его IP, вместо IP конкретного сервера (у них один Vlan)
Ноябрь 5th, 2009 | 12:20
Вот тут LAMP расписан http://www.tux.in.ua/articles/1169
Май 28th, 2010 | 4:53
Доброе время суток!! Я так-же не силён в линуксе,нопоявилась необходимость установить Nagios..и так-же как и у RUMа после ввода localhost/nagios он скачивает файл ***.phtml.part и всё.. ничем открыть не получается, он пишет что нет файла main.php и side.php..подскажите пожалуйста что делать…статью о которой говорил Грингер не нашёл…
Ноябрь 26th, 2010 | 18:21
2 Kaplia
ковыряй apache2
http://forum.sape.ru/showthread.php?t=6135 первая статья по запросу в гугл
у тя пхп апачем не обрабатывается
по теме!
блин, а что каждый вендор даёт датчикам температурным свой mib oid?
и стандартизация только у крупных вендоров типо hp dell cisco и то не на всё?
тем более в nsclient ++ есть параметр в настройках отвечающий за температуру как считать то это всё?
Декабрь 20th, 2010 | 10:40
Срочно нужна помощь
Nagios пишет, что в критической зоне находится параметр Swap Usage 265d 0h 33m 0s SWAP CRITICAL — 100% free (0 MB out of 0 MB) — это я понимаю, как не хватает (заполнена) свободная память… Помогите как ее почистить … сможете мне подсказать
Июль 12th, 2011 | 10:49
статьи нужно писать более конкретно и сжато, опуская лишние детали