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
}
Комментариев нет:
Отправить комментарий