00-tech-book
.pdf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
define service{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
name |
|
local-service |
; название шаблона |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
use |
generic-service |
; наследуем значения generic- |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; service |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
check_period |
|
24x7 |
; период проверки |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
max_check_attempts |
|
4 |
; запрашивать статус сервиса до 4 |
||||||||||||||||||||
|
|
|
|
|
; раз |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
normal_check_interval |
5 |
; в нормальном состояние |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
; сервис проверять каждые |
5 |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
; минут |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
retry_check_interval |
|
1 |
; перепроверка сервиса каждую |
||||||||||||||||||||
|
|
|
|
|
; минуты |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
contact_groups |
|
admins |
; контактная группа |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
notification_options |
|
w,u,c,r |
; уведомления отправлять |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
; только в случае w – Warning |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
; state, u – Unknown state, c – |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
; Critical state и r – Recovery state |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
; (события наступающее в |
|
|
|||||||||||||||||
|
|
|
|
|
; момент восстановления |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
; работоспособности сервиса) |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
notification_interval |
|
60 |
; отправлять заново уведомление |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
; о проблеме с сервисами каждый |
час |
||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||
|
notification_period |
|
24x7 |
; период уведомления, |
||||||||||||||||||||
|
|
|
|
|
; круглосуточно |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|||||||||||||||||||
|
register |
|
0 |
; этот блок команд - шаблон |
||||||||||||||||||||
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#в конце описаны сервисы для мониторинга
#пингуем локальную машину, занятие конечно бесполезное но здесь это в
#качестве примера
|
|
|
|
|
|
|
|
define service{ |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
use |
|
local-service ; используемый шаблон |
||||
|
|
|
|
|
|
|
|
|
host_name |
localhost |
|
||||
|
|
|
|
|
|
||
|
service_description |
PING |
|
|
|
||
|
|
|
|
|
|||
|
check_command |
check |
_ping!100.0,20%!500.0,60% |
||||
} |
|
|
|
|
|
|
Модуль 12. Система мониторинга Nagios. |
|
151 |
|
|
|
|
|
# проверяем свободное место в корне (/) локальной машины, если свободно
#менее 20% то сервис устанавливаем вWarning state, если менее 10% то
#Critical state
|
|
|
|
|
|
|
|
|
|
define service{ |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
use |
|
local-service |
; используемый шаблон |
|||||
|
|
|
|
|
|
|
|
|
|
|
host_name |
localhost |
; какой хост проверяем |
|
|
||||
|
|
|
|
|
|
|
|||
|
service_description |
Root Partition |
; название сервиса в Nagios |
||||||
|
|
|
|
|
|
||||
|
check_command |
check_local_disk!20%!10%!/ ; команда |
|
||||||
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
# мониторинг подключенных пользователей в локальной системе, если
#подключено более 20 то сервис переходит в режим Warning state, если более
#50 то Critical state
|
|
|
|
|
|
|
|
|
|
define service{ |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
use |
|
local-service |
; используемый шаблон |
|||||
|
|
|
|
|
|
|
|
|
|
|
host_name |
localhost |
; какой хост проверяем |
|
|
||||
|
|
|
|
|
|
|
|
||
|
service_description |
Current Users |
; название сервиса в Na |
gios |
|||||
|
|
|
|
|
|
||||
|
check_command |
check_local_users!20!50 ; команда |
|
||||||
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
# мониторинг локальных процессов, если запущено более 250 то наступает
#Warning state, если более 400 наступает Critical state
|
|
|
|
|
|
|
|
|
|
|
|
|
define service{ |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
use |
|
local-service |
; используемый шаблон |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
host_name |
localhost |
; какой хост проверяем |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||
|
service_description |
Total Processes |
; название сервиса в Na |
gios |
||||||||
|
|
|
|
|
|
|
|
|
||||
|
check_command |
check_local_procs!250!400!RSZDT ; команда |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
# проверяем нагрузку на локальной машине |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
define service{ |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
use |
|
local-service |
; используемый шаблон |
||||||||
|
|
|
|
|
|
|
|
|
||||
|
host_name |
localhost |
; какой хост проверяем |
|
|
|
|
|
||||
|
|
|
|
|
|
|
||||||
|
service_description |
Current Load |
; название сервиса в Nagios |
|||||||||
|
|
|
|
|
||||||||
|
check_command |
check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 ; команда |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
Конфигурационный файл /etc/nagios/nagios.cfg
#NAGIOS.CFG - Sample Main Config File for Nagios 2.12
#LOG FILE
#Log-файл куда пишутся все события хостов и сервисов
|
152 |
|
Модуль 12. Система мониторинга Nagios. |
|
|
|
|
#NAGIOS.CFG - Sample Main Config File for Nagios 2.12
#LOG FILE
#Log-файл куда пишутся все события хостов и сервисов
#эта опция должна быть первой в конфигурационном файле! log_file=/var/log/nagios/nagios.log
#OBJECT CONFIGURATION FILE(S)
#Объектные файлы — это файлы в которых описываются хосты, хост группы,
#контакты, группы контактов, сервисы и т.д.
#все эти секции могут быть описаны в разных файлах, для этого нужно
#использовать директиву cfg_file
#Команды описаны в этом файле cfg_file=/etc/nagios/commands.cfg
#localhost и его сервисы описаны в этом файле cfg_file=/etc/nagios/localhost.cfg
#Ниже представлен пример разделения секций по разным файлам
#cfg_file=/etc/nagios/contactgroups.cfg #cfg_file=/etc/nagios/contacts.cfg #cfg_file=/etc/nagios/dependencies.cfg #cfg_file=/etc/nagios/escalations.cfg #cfg_file=/etc/nagios/hostgroups.cfg #cfg_file=/etc/nagios/hosts.cfg #cfg_file=/etc/nagios/services.cfg #cfg_file=/etc/nagios/timeperiods.cfg
# Nagios умеет обрабатывать все файлы с расширением .cfg в каком либо
#каталоге, для этого используется директива cfg_dir
#cfg_dir=/etc/nagios/servers #cfg_dir=/etc/nagios/printers #cfg_dir=/etc/nagios/switches #cfg_dir=/etc/nagios/routers
#OBJECT CACHE FILE
#Cache-файл Nagios. CGI — программы получают конфигурацию из него а не
#напрямую из объектных файлов. Это защищает от несогласованности
#конфигурации в случае, если она изменялась после старта Nagios.
object_cache_file=/var/log/nagios/objects.cache
# RESOURCE FILE
Модуль 12. Система мониторинга Nagios. |
|
153 |
|
|
|
#Файл содержащий $USERx$ макросы
#CGI-программы будут использовать указанный вами макрос но они не будут
#знать что внутри этого макроса. Макросы стоит использовать при указание в
#команде логинов/паролей и другой конфиденциальной информации.
#на файл /etc/nagios/private/resource.cfg установлены права 640
resource_file=/etc/nagios/private/resource.cfg
#STATUS FILE
#Файл в котором сохранен текущий статус всех сервисов и хостов, он
#очищается при перезагрузке Nagios
status_file=/var/log/nagios/status.dat
#NAGIOS USER
#От какого пользователя запускать процесс Nagios в операционной системе
nagios_user=nagios
#NAGIOS GROUP
#Рабочая группа Nagios
nagios_group=nagios
#EXTERNAL COMMAND OPTION
#Включать ли внешние команды. Если включим то появится возможность
#управлять хостами и сервисами через веб-интерфейс (включать/отключать
#уведомления для них, включать/выключать пассивные проверки и т.д.).
check_external_commands=0
#EXTERNAL COMMAND CHECK INTERVAL
#Интервал, через который Nagios будет проверять наличие команд для себя.
#Команды через веб-интерфейс выполняются не сразу а через определенный
#интервал. Этот интервал мы и указываем.
#Можно указать значение в секундах, например 15s а можно указать -1 что
#означает проверять наличие команд так часто, как только возможно
#command_check_interval=15s command_check_interval=-1
#EXTERNAL COMMAND FILE
#Файл в который будут записываться команды в очередь на выполнение. Он
#должен иметь права на запись для пользователя от которого выполняется
#процесс веб-сервера
command_file=/var/spool/nagios/cmd/nagios.cmd
154 |
|
Модуль 12. Система мониторинга Nagios. |
|
|
|
#EXTERNAL COMMAND BUFFER SLOTS
#Количество слотов для внешних команд. Значения по умолчанию более чем
#достаточно
external_command_buffer_slots=4096
#COMMENT FILE
#Файл в котором сохраняются комментарии для хостов и сервисов
comment_file=/var/log/nagios/comments.dat
#DOWNTIME FILE
#Файл в котором сохраняется информация о downtime-времени хостов и
#сервисов, То есть времени когда они не доступны
downtime_file=/var/log/nagios/downtime.dat
#LOCK FILE
#В этом файле хранится PID процесса Nagios. Используется сторонними
#программами
lock_file=/var/run/nagios.pid
#TEMP FILE
#Временный файл используется при обновление статус-лога, очистки
#комментариев и т.д.
temp_file=/var/log/nagios/nagios.tmp
#EVENT BROKER OPTIONS
#Благодря модулям, брокер может обслуживать различные происходящие
#события в Nagios
#Values: 0 = Broker nothing
#-1 = Broker everything
#<other> = See documentation
event_broker_options=-1
#EVENT BROKER MODULE(S)
#Здесь подгружаются модули брокера
#Example:
#
# broker_module=<modulepath> [moduleargs]
#broker_module=/somewhere/module1.o #broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
Модуль 12. Система мониторинга Nagios. |
|
155 |
|
|
|
#LOG ROTATION METHOD
#Способы ротации главного лога Nagios
|
|
|
|
|
|
# |
n |
= None - don’t rotate the log |
|||
|
|
|
|
|
|
# |
h |
= Hourly rotation (top of the hour) |
|||
|
|
|
|
||
# |
d |
= Daily rotation (midnight every day) |
|||
|
|
|
|||
# |
w |
= Weekly rotation (midnight on Saturday evening) |
#m = Monthly rotation (midnight last day of month)
log_rotation_method=d
#LOG ARCHIVE PATH
#Расположение архива лог-файлов
log_archive_path=/var/log/nagios/archives
#LOGGING OPTIONS
#Используем системную службу Syslog чтобы записывать логи
use_syslog=1
#NOTIFICATION LOGGING OPTION
#Уведомления тоже записывать в лог
log_notifications=1
#SERVICE RETRY LOGGING OPTION
#Повторные проверки сервисов тоже записывать в лог
log_service_retries=1
#HOST RETRY LOGGING OPTION
#Повторные проверки хостов тоже записывать в лог
log_host_retries=1
#EVENT HANDLER LOGGING OPTION
#Записываем в логи event handlers, event handlers — это опциональные программы
#которые могут быть выполнены когда состояние хоста или сервиса изменяется
log_event_handlers=1
#INITIAL STATES LOGGING OPTION
#Записывать ли initial state в лог-файл ? Initial state — это когда хост или сервис
#проверяется в первый раз, включить — 1, выключить — 0
log_initial_states=0
|
156 |
|
Модуль 12. Система мониторинга Nagios. |
|
|
|
|
#EXTERNAL COMMANDS LOGGING OPTION
#Записывать ли в лог активность внешних команд ?
#Опция не включает логирование пассивных проверок, для этого есть опция о
#которой ниже
log_external_commands=1
#PASSIVE CHECKS LOGGING OPTION
#Логирование пассивных проверок хостов и сервисов
log_passive_checks=1
#GLOBAL HOST AND SERVICE EVENT HANDLERS
#Опции позволяют указать команды event handler`а для хоста или сервиса,
#которые будут выполняться в случае изменения их состояния. global event
#handler выполняется немедленно, предшествуя event handler`у указанному в
#секции хоста или сервиса.
#global_host_event_handler=somecommand #global_service_event_handler=somecommand
#SERVICE INTER-CHECK DELAY METHOD
#Метод распределения нагрузки в момент старта мониторинга. Чтобы снизить
#нагрузку на сервер мониторинга, все запросы к сервисам отсылаются не в
#один момент времени а с определенным интервалом.
|
|
|
|
|
|
|
|
# |
n |
= None - don’t use any delay between checks |
|||||
|
|
|
|
|
|
|
|
# |
d |
= Use a “dumb” delay of 1 second between checks |
|||||
|
|
|
|
|
|
||
# |
s |
= Use “smart” inter-check delay calculation |
|||||
|
|
|
|
|
|||
# |
x.xx |
= Use an inter-check delay of x.xx seconds |
service_inter_check_delay_method=s
#MAXIMUM SERVICE CHECK SPREAD
#Временной фрейм в течение которого все первичные проверки сервисов
#должны быть завершены. По умолчанию 30 минут.
max_service_check_spread=30
#SERVICE CHECK INTERLEAVE FACTOR
#Это значение определяет метод чередования проверок хостов и сервисов,
#который позволит снизить нагрузку на удаленную машину
#s = Use “smart” interleave factor calculation
#x = Use an interleave factor of x, where x is a
#number greater than or equal to 1.
service_interleave_factor=s
Модуль 12. Система мониторинга Nagios. |
|
157 |
|
|
|
#HOST INTER-CHECK DELAY METHOD
#Метод распределения нагрузки в момент старта мониторинга. Чтобы снизить
#нагрузку на сервер мониторинга, все запросы к хостам отсылаются не в один
#момент времени а с определенным интервалом.
|
|
|
|
|
|
|
# |
n |
= None - don’t use any delay between checks |
||||
|
|
|
|
|
|
|
# |
d |
= Use a “dumb” delay of 1 second between |
checks |
|||
|
|
|
|
|
|
|
# |
s |
= Use “smart” inter-check delay calculation |
|
|||
|
|
|
|
|
||
# |
x.xx |
= Use an inter-check delay of x.xx seconds |
|
|
|
host_inter_check_delay_method=s
#MAXIMUM HOST CHECK SPREAD
#Временной фрейм в течение которого все первичные проверки сервисов
#должны быть завершены. По умолчанию 30 минут.
max_host_check_spread=30
#MAXIMUM CONCURRENT SERVICE CHECKS
#Опция позволяет задать максимальное число сервисов, проверяемых
#параллельно в определенный момент времени. 1 — запрещает проверку
#сервисов в параллельном режиме, 0 — не ограничивает число одновременных
#проверок
max_concurrent_checks=0
#SERVICE CHECK REAPER FREQUENCY
#Частота с которой Nagios обрабатывает результаты проверки сервисов.
#Указывается в секундах.
service_reaper_frequency=10
#CHECK RESULT BUFFER SLOTS
#Задает число слотов для хранения результатов проверки сервисов, после
#обработки результата слот освобождается. Значения по умолчанию более чем
#достаточно.
check_result_buffer_slots=4096
#AUTO-RESCHEDULING OPTION
#Опция может помочь сбалансировать нагрузку на сервер мониторинга
#автоматически переназначив проверку хостов и сервисов, распределяя
#нагрузку во времени. Опция эксперементальная и ее использование на свой
#страх и риск.
auto_reschedule_checks=0
# AUTO-RESCHEDULING INTERVAL
|
158 |
|
Модуль 12. Система мониторинга Nagios. |
|
|
|
|
#Интервал переназначения в секундах. auto_rescheduling_interval=30
#AUTO-RESCHEDULING WINDOW
#Размер «окна» в секундах. Проверки хостов и сервисов назначенные в
#следующие X секунд (размер окна) будут переназначены.
auto_rescheduling_window=180
#SLEEP TIME
#Время «сна» между которыми проверяются системные события и проверки
#сервисов которые должны быть выполнены
sleep_time=0.25
#TIMEOUT VALUES
#Как много времени давать на выполнение команде, после истечения которого
#она будет принудительно завершена. Значение указывается в секундах.
service_check_timeout=60 host_check_timeout=30 event_handler_timeout=30 notification_timeout=30 ocsp_timeout=5 perfdata_timeout=5
#RETAIN STATE INFORMATION
#Сохранять ли статусную информацию для хостов и сервисов в случае
#выключения Nagios. После рестарта Nagios вся сохраненная информация
#будет обратно загружена.
retain_state_information=1
#STATE RETENTION FILE
#Файл в котором сохраняется информация о статусе хостов и сервисов перед
#выключение Nagios. Файл используется только если preserve_state_information
#равен 1
state_retention_file=/var/log/nagios/retention.dat
#RETENTION DATA UPDATE INTERVAL
#Как часто сохранять в файл информацию о статусе хостов и сервисов пока
#Nagios нормально работает. Указывается в минутах.
retention_update_interval=60
Модуль 12. Система мониторинга Nagios. |
|
159 |
|
|
|
#USE RETAINED PROGRAM STATE
#Восстанавливать ли статус для хостов и сервисов из retention file. 1 —
#восстанавливать, 0 - нет
use_retained_program_state=1
#USE RETAINED SCHEDULING INFO
#Восстанавливать ли информацию о запланированной следующей проверке из
#retention file или нет.
use_retained_scheduling_info=0
#INTERVAL LENGTH
#Интервал проверки
interval_length=60
#AGGRESSIVE HOST CHECKING OPTION
#Включать ли агресивную проверку хостов. Это может занять больше времени
#чем обычная. 1 — включить, 0 - выключить
use_aggressive_host_checking=0
#SERVICE CHECK EXECUTION OPTION
#Выполнять ли активно проверки сервисов когда они стартуют первый раз
#1 — включать активные проверки, 0 — не включать
execute_service_checks=1
#PASSIVE SERVICE CHECK ACCEPTANCE OPTION
#Принимать ли результаты пассивных проверок когда сервисы только
#стартуют или рестартуют
#1 — принимать пассивные проверки, 0 — не принимать
accept_passive_service_checks=1
#HOST CHECK EXECUTION OPTION
#Выполнять ли активно проверки хостов когда они стартуют первый раз
#1 — включать активные проверки, 0 — не включать
execute_host_checks=1
#PASSIVE HOST CHECK ACCEPTANCE OPTION
#Принимать ли результаты пассивных проверок когда хосты только стартуют
#или рестартуют
accept_passive_host_checks=1
|
160 |
|
Модуль 12. Система мониторинга Nagios. |
|
|
|
|