пятница, 12 февраля 2010 г.

Nagios в ubuntu server , Установка и настройка nagios2 в ubuntu


Nagios в ubuntu server , Установка и настройка nagios2 в ubuntu

Настройка Nagios2 (Ubuntu server-8.10)
Краткое описание
Nagios — это приложение, предназначенное для выполнения мониторинга систем и сетей. Оно следит за назначенными приложениями и службами и генерирует оповещения в зависимости от поведения наблюдаемых служб.
Обычно более мение крупному провайдеру рано или позно потребуется следить за своими серверами свичами, рутерами, nagios предоставляет совокупность сервисов для этого также с его помощью можно выстроить виртуально сеть и настроить удобную систему оповещения при каких либо событиях в этой сети.

Нам потребуются следующие пакеты:
apache2
nagios2

Установка:
# apt-get install nagios2
# apt-get install apache2

Конфигурирование:
Обычно Nagios устанавливается в директорию /etc/nagios2/
Web директория лежит в /usr/share/nagios2/htdocs

Также следует добавить файл /etc/nagios2/apache.conf в файл конфигурации apahce2.
Делается это следующим образом:
Открываем файл /etc/apache2/apache2.conf и дописываем там

Include /etc/nagios2/apache.conf
После чего просто перезапускам apache:
#/etc/init.d/apache2 restart
Теперь подробно по конфигурации самого nagios-a
и так переходим в директорию /etc/nagios2/
# cd /etc/nagios2
Список файлов по умолчанию

cgi.cfg-sample
checkcommands.cfg-sample
contactgroups.cfg-sample
contacts.cfg-sample
dependencies.cfg-sample
escalations.cfg-sample
hostgroups.cfg-sample
hosts.cfg-sample
misccommands.cfg-sample
nagios.cfg-sample
resource.cfg-sample
services.cfg-sample
timeperiods.cfg-sample

естественно *.-sample стоит убрать из имён файлов просто переименованием.
После этой операции получим список файлов конфигурации, но мы будем использовать следующие файлы конфигурации:

apache.conf – файл конфигурации веб сайта nagios2 (обычно там ничего менять не приходится)

cgi.cfg – файл в котором описаны пользователи имеющие доступ к сомндам и сервисам nagios

commands.cfg — файл в ктором описаны команды nagios

contactgroups.cfg – файл в котором мы будем описывать группы пользователей

contacts.cfg — файл в котором мы будем описывать группы пользователей и их контактные данные

hostextinfo.cfg – конфигурационный файл для дополнительныйх настроек хостов отображаемых на 2d карте

hostgroups.cfg – файл описания групп хостов

hosts.cfg – файл конфигурации хостов

nagios.cfg – главный конфигурационный файл nagios-а

services.cfg – файл конфигурации сервисов

timeperiods.cfg — файл в котором будут описаны периоды времени нотификации и работы сервисов

Итак начнём кофигурирование:

nagios.cfg:

в этом файле мы должны описать все конфигурационные файлы которые нам нужнф для использования

открываем и редактируем nagios.cfg

cfg_file=/etc/nagios2/contactgroups.cfg

cfg_file=/etc/nagios2/contacts.cfg

#cfg_file=/etc/nagios2/dependencies.cfg

#cfg_file=/etc/nagios2/escalations.cfg

cfg_file=/etc/nagios2/hostgroups.cfg

cfg_file=/etc/nagios2/hosts.cfg

cfg_file=/etc/nagios2/services.cfg

cfg_file=/etc/nagios2/timeperiods.cfg

cfg_file=/etc/nagios2/hostextinfo.cfg

#cfg_file=/etc/nagios2/serviceextinfo.cfg

и

check_external_commands=1 ## здесь мы указываем разрешение выполнять команды для # ##пользователей

Остальное трогать не будем так как всё там нормально.

Далее переходим к файлу cgi.cfg

Вот пример моей конфигурации.

main_config_file=/etc/nagios2/nagios.cfg

physical_html_path=/usr/share/nagios2/htdocs

url_html_path=/nagios2

show_context_help=1

nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/cache/nagios2/status.dat 5 ‘/usr/sbin/nagios2′

use_authentication=1

default_user_name=nagiosadmin

authorized_for_system_information=*

authorized_for_configuration_information=*

authorized_for_system_commands=*

authorized_for_all_services=nagiosadmin, asad

authorized_for_all_hosts=nagiosadmin, asad

#authorized_for_all_services=nagiosadmin,guest

#authorized_for_all_hosts=nagiosadmin,guest

authorized_for_all_service_commands=nagiosadmin, asad

authorized_for_all_host_commands=nagiosadmin, asad

#statusmap_background_image=smbackground.gd2 ## картинка заднего плана для statusmap

default_statusmap_layout=5

default_statuswrl_layout=4

#statuswrl_include=myworld.wrl

ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$

refresh_rate=90 ## время обновления

## звуки

#host_unreachable_sound=hostdown.wav

#host_down_sound=hostdown.wav

#service_critical_sound=critical.wav

#service_warning_sound=warning.wav

#service_unknown_sound=warning.wav

#normal_sound=noproblem.wav

Он сконфигурированный так что бы пользователи авторизировавшиеся через веб имели доступ ко всем командам и процессам nagios доступным через web интерфейс.

Для этого стоит cделать файл паролей htpasswd.users с помощью htpasswd

# htpasswd -c htpasswd.users asad

ввести пароль и прописать этот файл для использования при авторизации в /etc/nagios2/apache.conf:

Options FollowSymLinks

DirectoryIndex index.html

AllowOverride AuthConfig

Options ExecCGI

Order Allow,Deny

Allow From All

AuthName «Nagios Access»

AuthType Basic

AuthUserFile /etc/nagios2/htpasswd.users ## путь к файлу паролей

require valid-user

Далее переходим к contacts.cfg

В нём мы опишем пользователя который будет получать уведомление и смогут просматривать информацию через веб.

contacts.cfg:

define contact{

contact_name asad

alias asad

service_notification_period 24×7

host_notification_period 24×7

service_notification_options u ## здесь я оставил только нотфикацию о том что хост недоступен

host_notification_options d,u ## а здесь только о том что сервис выключен или недоступен

service_notification_commands notify-by-email,notify-by-epager ## види оповещения через почту и смс

host_notification_commands host-notify-by-email,host-notify-by-epager

email asad@neocom.net.ua ## здесь можно написать почту

pager ххххххххх@sms.ecotel.com.ua ## а здесь мобильный номер и адрес оператора отсылки смс

}

contactgroup.cfg:

define contactgroup{

contactgroup_name domain-admins

alias Domain.Com Admins

members asad

}

Файл в котором описана группа пользователей

Далее файл в котором описаны период времени timeperiods.cfg. В нём я описал два периода

24х7 тоесть 5 дней в неделю и none тоетсь никогда.

timeperiods.cfg :

define timeperiod{

timeperiod_name 24×7

alias 24 Hours A Day, 7 Days A Week

sunday 00:00-24:00

monday 00:00-24:00

tuesday 00:00-24:00

wednesday 00:00-24:00

thursday 00:00-24:00

friday 00:00-24:00

saturday 00:00-24:00

}

# ‘none’ timeperiod definition

define timeperiod{

timeperiod_name none

alias No Time Is A Good Time

}

Далее переходим к непосредственной конфигурации сканируемых хостов и используемых для этого сервисов.

hosts.cfg здесь мы опишем наши хосты:

define host{

use generic-host

host_name myserver

contact_groups domain-admins

alias My Registered Domain

address 192.168.0.1

check_command check-host-alive #проверять жив ли хост? это будет выполнятся командой ping

max_check_attempts 10

notification_interval 120

notification_period 24×7

notification_options d # только если down

}

define host{

use generic-host

host_name myrouter

parents myserver ##здесь мы указали что предшественником будет хост myserver описанный #вышше

contact_groups domain-admins

alias My Registered

address 192.168.0.2

check_command check-host-alive

max_check_attempts 10

notification_interval 120

notification_period 24×7

notification_options d,u,r # down, unreachable, recover

}

Также нам поднадопится задать группу хостов для этого редактируем файл hostgroups.cfg:

define hostgroup{

hostgroup_name domain-servers

alias Domain Servers

members myserver, myrouter

}

Далее мы опишем сервис для команды PING в файле

services.cfg:

define service{

use generic-service

host_name myserver

service_description PING

is_volatile 0

check_period 24×7

max_check_attempts 3

normal_check_interval 1

retry_check_interval 1

contact_groups domain-admins

notification_interval 120

notification_period 24×7

notification_options u,c,r

check_command check_ping!100.0,20%!500.0,60%

}

define service{

# Name of service template to use

use generic-service

host_name myrouter

service_description PING

is_volatile 0

check_period 24×7

max_check_attempts 3

normal_check_interval 1

retry_check_interval 1

contact_groups domain-admins

notification_interval 120

notification_period 24×7

notification_options u,c,r

check_command check_ping!100.0,20%!500.0,60%

}

Итак nagios будет выполнять проверку 2-х хостов с помощью команды ping и отображать состояние хостов через веб страницу.

Но для удобства мы можем добавить ещё дополнительные настройки хоста например отображаемая пиктограмка хоста.

Всё это описывается в файле hostexinfo.cfg

define hostextinfo{

host_name myserver

icon_image serv.png

vrml_image serv.png

statusmap_image serv.png

}

define hostextinfo{

host_name myrouter

icon_image net.png

vrml_image net.png

statusmap_image net.png

}

Ну вот и всё для начала стоит запустить nagios в режиме проверки

# nagios -v /etc/nagios2/nagios.cfg

Команда загрузит все конфигурационные файлы и сообщит обо всех ошибках, которые она найдет. Исправляйте все ошибки по очереди, а потом запускайте команду снова.

Далее стоить запускать или перезапускать nagios так:

/etc/init.d/nagios2 start | restart | stop

Дополнительная информация

http://www.nagios.org/

Все замечаения и вопросы по почте asad@online.ua

Комментариев нет:

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