Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

00-tech-book

.pdf
Скачиваний:
42
Добавлен:
10.02.2016
Размер:
7.86 Mб
Скачать

#NOTIFICATIONS OPTION

#Уведомлять когда хост или сервис стартуют первый раз ?

#1 — да, 0 — нет

enable_notifications=1

#EVENT HANDLER USE OPTION

#Запускать ли event handler для только что запущенного хоста или сервиса

#1 — запускать, 0 — не запускать

enable_event_handlers=1

#PROCESS PERFORMANCE DATA OPTION

#Обрабатывать ли информацию о производительности полученную от хостов и

#сервисов. Информация может содержать в себе задержку в проверке (разницу

#с запланированной проверкой), сколько проверка заняла времени и т.д.

#Проверка производительности осуществляется командами

#host_perfdata_command (о ней ниже) и service_perfdata_command (о ней ниже).

#1 — обрабатывать данные о производительности, 0 — не обрабатывать

process_performance_data=0

#HOST AND SERVICE PERFORMANCE DATA PROCESSING COMMANDS

#Команды запускаются после того, как проверка хостов и сервисов

#завершится. Команды выполняются только если enable_performance_data

#равняется 1. Командный аргумент — короткое имя команды которое указано в

#host configuration file

#host_perfdata_command=process-host-perfdata #service_perfdata_command=process-service-perfdata

#HOST AND SERVICE PERFORMANCE DATA FILES

#Файлы в которые сохраняется информация о производительности хостов и

#сервисов. Должна быть включена опция enable_performance_data

#host_perfdata_file=/tmp/host-perfdata #service_perfdata_file=/tmp/service-perfdata

#HOST AND SERVICE PERFORMANCE DATA FILE TEMPLATES

#Шаблон для файлов содержащих информацию о производительности. Здесь

#описаны правила по которым нужно писать информацию в файлы. Шаблоны

#могут содержать макросы, специальные символы (\t — табуляция, \r —

#перевод каретки, \n — новая строка) и обычный текст. Новая строка

#автоматически добавляется после каждой записи в файл. Пара примеров дана

#ниже.

#host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t

Модуль 12. Система мониторинга Nagios.

 

161

 

 

 

 

 

#$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$

#service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t

#$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t

#$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$

#HOST AND SERVICE PERFORMANCE DATA FILE MODES

#Режим работы с файлами

#a — append (дописывать в файл), w — write (записывать). Режим по

#умолчанию вполне всем хорош.

#host_perfdata_file_mode=a

#service_perfdata_file_mode=a

#HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING #INTERVAL

#Как часто обрабатывать performance files командами которых указаны ниже.

#Значение указывается в секундах. 0 означает что обрабатывать не нужно.

#host_perfdata_file_processing_interval=0

#service_perfdata_file_processing_interval=0

#HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING #COMMANDS

#Используемые команды для обработки performance data files

#host_perfdata_file_processing_command=process-host-perfdata-file

#service_perfdata_file_processing_command=process-service-perfdata-file

#OBSESS OVER SERVICE CHECKS OPTION

#Если не планируется система распределенного мониторинга то опцию лучше

#не включать

obsess_over_services=0

#OBSESSIVE COMPULSIVE SERVICE PROCESSOR COMMAND

#Команда запускаемая для каждого сервиса. Работает только если

#obsess_over_services равняется 1

#ocsp_command=somecommand

#ORPHANED SERVICE CHECK OPTION

#Опция призвана решать редкую проблему, когда сервис не может быть

#перезапущен.

check_for_orphaned_services=1

#SERVICE FRESHNESS CHECK OPTION

#Проверять ли «свежесть» сервисов, это полезно при пассивных проверках

 

162

 

Модуль 12. Система мониторинга Nagios.

 

 

 

 

#когда нужно убедится что информация о сервисах поступает с нормальной

#переодичностью.

#1 — включить проверку, 0 — отключить

check_service_freshness=1

# SERVICE FRESHNESS CHECK INTERVAL

#Интервал проверки «свежести» сервисов в секундах. service_freshness_check_interval=60

#HOST FRESHNESS CHECK OPTION

#Проверять ли «свежесть» хостов, это полезно при пассивных проверках

#когда нужно убедится что информация о хостах поступает с нормальной

#переодичностью.

#1 — включить проверку, 0 — отключить

check_host_freshness=0

# HOST FRESHNESS CHECK INTERVAL

#Интервал проверки «свежести» хостов в секундах. host_freshness_check_interval=60

#AGGREGATED STATUS UPDATES

#Объединять обновления хостов, сервисов и данные состояния программ или

#нет. Обычно результаты обновляются моментально, что может создать

#большую нагрузку на сервер мониторинга.

#1 — включить объединение результатов, 0 — не включать

aggregate_status_updates=1

#AGGREGATED STATUS UPDATE INTERVAL

#Интервал в секундах объединенного обновления статуса хостов и сервисов

status_update_interval=15

#FLAP DETECTION OPTION

#Влючать или нет обнаружение частой смены состояния хоста или сервиса.

#1 — включить, 0 — выключить

enable_flap_detection=0

#FLAP DETECTION THRESHOLDS FOR HOSTS AND SERVICES

#Пороговые значения для flapping`а

#Подробнее про это написано здесь - #http://nagios.sourceforge.net/docs/2_0/flapping.html

Модуль 12. Система мониторинга Nagios.

 

163

 

 

 

low_service_flap_threshold=5.0 high_service_flap_threshold=20.0 low_host_flap_threshold=5.0 high_host_flap_threshold=20.0

#DATE FORMAT OPTION

#Формам отображения даты

 

 

 

#

us

(MM-DD-YYYY HH:MM:SS)

#euro (DD-MM-YYYY HH:MM:SS)

 

 

 

#

iso8601

(YYYY-MM-DD HH:MM:SS)

#strict-iso8601 (YYYY-MM-DDTHH:MM:SS)

date_format=euro

#P1.PL FILE LOCATION

#Путь к скрипту p1.pl который используется встроенными Perl интерпретатором

p1_file=/usr/sbin/p1.pl

#ILLEGAL OBJECT NAME CHARACTERS

#Здесь можно указать символы которые не могут быть использованы в

#название хостов, описание сервисов или в название других типах объектов

illegal_object_name_chars=`~!$%^&*|’”<>?,()=

#ILLEGAL MACRO OUTPUT CHARACTERS

#Здесь можно указать символы которые будут убраны из макросов до того как

#будут использованы в уведомлениях и т.д. Это не распространяется на макросы

#используемые в командах проверки хостов и сервисов

illegal_macro_output_chars=`~$&|’”<>

#REGULAR EXPRESSION MATCHING

#Использовать регулярные выражения или нет

#1 — включить, 0 — выключить

use_regexp_matching=0

#“TRUE” REGULAR EXPRESSION MATCHING

#Опция используется только если use_regexp_matching равняется 1. При

#отключенной опции совпадение происходит только на основание маски (*

#и ?), при включенной это происходит всегда, что может раздражать.

#0 — отключить, 1 — включить

use_true_regexp_matching=0

# ADMINISTRATOR EMAIL ADDRESS

 

164

 

Модуль 12. Система мониторинга Nagios.

 

 

 

 

# Почтовый адрес администратора этого сервера

admin_email=nagios

#ADMINISTRATOR PAGER NUMBER/ADDRESS

#Номер пейджера администратора этого сервера. Определенно устаревшая опция.

admin_pager=pagenagios

#DAEMON CORE DUMP OPTION

#Разрешать создавать core dump или нет. Может использоваться для отладки.

#1 — разрешать создавать, 0 — не разрешать

daemon_dumps_core=0

Конфигурационный файл /etc/nagios/private/resource.cfg

#RESOURCE.CFG - Sample Resource File for Nagios 2.12

#Этот файл содержит различные макросы, CGI-программы будут обращаться

#именно к ним а не к этому файлу напрямую. Поэтому здесь можно

#использовать все возвожные пароли и логины и не бояться утечки информации.

#Макрос $USER1$ будет содержать путь к плагинам

$USER1$=/usr/lib/nagios/plugins

#Макрос $USER2$ будет содержать путь к event handlers

#$USER2$=/usr/lib/nagios/plugins/eventhandlers

#Store some usernames and passwords (hidden from the CGIs)

#$USER3$=someuser

#$USER4$=somepassword

#service httpd start

#service nagios start

Собственно все. Теперь у нас есть полнофункциональный сервер мониторинга. В файлы конфигурации можете внести изменения по своему вкусу, но опции по умолчанию вполне нормальные. Пока в нашей системе мониторинга только localhost. Допустим появилась необходимость добавить

на мониторинг еще один сервер, сделать это очень легко и сейчас я это продемонстрирую.

Модуль 12. Система мониторинга Nagios.

 

165

 

 

 

Добавление хостов и сервисов на мониторинг

Есть linux-сервер с IP 192.168.146.135 и на нем работает веб-сервер,

DHCP-сервер и SMTP-сервер.

Добавим проверку этих трех служб и обычную доступность сервера

Мне повезло, все нужные мне плагины поставляются с Nagios и их не пришлось искать в Интернет

Добавляем в файл /etc/nagios/localhost.cfg

#Чтобы поставить на мониторинг новый сервер необходимо описать секцию

#host с его участием. Здесь указываем какой шаблон настроек будем

#использовать, хостнейм который должен резолвится с помощью DNS или

#быть указанным в /etc/hosts, альяс и IP-адрес сервера

 

 

 

 

 

 

 

define host{

 

 

 

 

 

 

 

 

 

 

 

 

use

 

linux-server

 

 

 

 

 

 

 

host_name

mylinuxbox

 

 

 

 

 

 

 

alias

mylinuxbox

 

 

 

 

 

 

 

 

 

address

192.168.146.13

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#А теперь опишим сервисы которые хотим поставить на мониторинг на этом

#сервере

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

define service{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

use

 

local-service

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

host_name

mylinuxbox

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

service_description

PING

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

check_command

check

_ping!100.0,10%!200.0,60%

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

define service{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

use

 

local-service

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

host_name

mylinuxbox

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

service_description

SMTP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

check_command

check_smtp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

define service{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

use

 

local-service

 

 

 

 

 

 

 

 

 

 

 

host_name

mylinuxbox

 

 

 

 

 

 

 

 

 

 

service_description Apache

 

 

 

 

 

 

 

 

 

 

 

 

 

check_command

check_

http

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

166

 

Модуль 12. Система мониторинга Nagios.

 

 

 

 

 

define service{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

use

 

local-service

 

 

 

 

 

 

 

host_name

mylinuxbox

 

 

 

 

 

 

 

service_description

DHCPD

 

 

 

 

 

 

 

check_command

check_dhcp

 

}

 

 

 

 

 

 

Чтобы узнать какие опции можно применить к командам check_* делаем

следующее

#/usr/lib/nagios/plugins/check_<название плагина> -h, например

#/usr/lib/nagios/plugins/check_http -h

Плагин check_dhcp есть в /usr/lib/nagios/plugins но не описан в /etc/nagios/ commands.cfg поэтому внесем соответствующию запись

define command{

command_name check_dhcp

command_line $USER1$/check_dhcp -s $HOSTADDRESS$

}

Проверить ошибки в конфигурации можно командой #/usr/sbin/nagios -v /etc/nagios/nagios.cfg

Перезагружаем Nagios

# service nagios restart

Все должно заработать.

Мониторинг различных параметров сервера

Ниже я привел некоторые способы мониторинга основных системных параметров и служб. Думаю пригодится.

Мониторинг свободного места

Выведем список 5 пользователей занимающих наибольшее количество дискового пространства в своем домашнем каталоге.

# du -cms /home/* | sort -rn | head -6

Модуль 12. Система мониторинга Nagios.

 

167

 

 

 

8200 total

6100 /home/james

900 /home/ronaldo

570 /home/neo

420 /home/tester

210 /home/mybestuser

Как видим пользователь james занимает 6.1 Гб места и т.д.

Защита системы от пользовательских процессов

Пользовательскиепроцессыбезпроблеммогутзанятьвседисковоепространство и тем самым положить сервер. Чтобы этого избежать воспользуемся командой ulimit и ограничим возможный размер файла до 10Мб.

#ulimit -f 10000

#yes 'some shit' > shit.txt File size limit exceeded

#ls -l

total 10016

-rw-r--r-- 1 root root 10240000 Mar 14 21:36 shit.txt

Точнотакжеможнозадаватьдругиеопцииограничения,такиекакмаксимальное количество файлов, максимальное количество открытых дескрипторов, процессорное время, объем виртуальной памяти доступный в shell и т.д.

Просмотреть все возможные параметры

# ulimit -a

Ограничение в 10 Мб конечно врядли подойдет, а вот ограничить в 10 Гб уже можно. Защита от дурака так сказать.

Мониторинг S.M.A.R.T. - параметров жесткого диска

# smartctl -a /dev/sda

Напомню, S.M.A.R.T. - это Self-Monitoring, Analysis and Reporting Technology. Технология самоконтроля и анализа, которой снабжены все современные диски. Она позволяет отслеживать основные параметры жестких дисков и прогнозировать потенциальный отказ.

 

168

 

Модуль 12. Система мониторинга Nagios.

 

 

 

 

Один из способов выяснить как ваш HDD называется в системе это выполнить команду fdisk -l, значение без цифры и будет нужным устройством.

Мониторинг сетевых портов в Linux

Просмотреть конкретный сетевой порт можно вот так

# netstat -nlp | grep :8080

 

 

tcp

0 0 :::8080

:::*

LISTEN 2697/httpd

Как видим на порту 8080 выполняется веб-сервер Apache Весь список активных портов

# netstat -tlnp

Мониторинг открытых файлов и сокетов

Для этих целей хорошо подойдет lsof. Вывод всех открытых файлов

# lsof

Смотрим открытые файлы работающие с сетью по IPv4

 

# lsof -i 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

COMMAND

PID USER

FD TYPE DEVICE SIZE NODE NAME

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

portmap 2341

rpc

3u IPv4

6692

UDP *:sunrpc

 

 

 

 

 

 

 

 

 

 

 

rpc.statd 2366 root 7u IPv4 6748

TCP *:852 (LISTEN)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cupsd

2657

root

3u

IPv4

7392

TCP localhost.localdomain:ipp (LISTEN)

 

 

 

 

 

 

 

 

 

 

 

 

 

cupsd

2657

root

5u

IPv4

7395

UDP *:ipp

 

 

 

 

 

 

 

 

php-cgi

2662

nginx 0u IPv4 7415

TCP localhost.localdomain:cslistener (LISTEN)

 

 

 

 

 

 

 

 

 

nginx

3915

nginx

5u

IPv4 10864

TCP *:https (LISTEN)

 

 

 

 

 

 

 

 

nginx

3915

nginx

6u

IPv4 10865

TCP *:http (LISTEN)

Список открытых файлов по NFS

# lsof -N

Список открытых файлов в /var/log/

Опция +d покажет открытые файлы только в этом каталоге а +D и во вложенных

Модуль 12. Система мониторинга Nagios.

 

169

 

 

 

 

 

# lsof +d /var/log

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

COMMAND PID USER

FD TYPE DEVICE

SIZE NODE NAME

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

syslogd

2289

root

1w

REG 253,0 382311 3047763 /var/log/messages

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

syslogd

2289

root

2w

REG 253,0 25939 3047764 /var/log/secure

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

syslogd

2289

root

3w

REG 253,0

6285 3047765

/var/log/maillog

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

syslogd

2289

root

4w

REG 253,0

7348 3047768

/var/log/cron

 

 

 

 

 

 

 

 

 

 

 

 

 

syslogd

2289

root

5w

REG 253,0

0 3047766 /var/log/spooler

 

 

 

 

 

 

 

 

 

 

 

 

 

syslogd

2289

root

6w

REG 253,0

1532 3047767

/var/log/boot.log

 

 

 

 

 

 

 

 

 

 

acpid

2590

root

2w

REG 253,0

3374 3047640 /var/log/acpid

 

 

 

 

 

nginx

3914 root

2u REG 253,0 3398 3047715 /var/log/nginx.error_log

Список открытых файлов для конкретного пользователя

# lsof -u james

Мониторинг запущенных процессов

Все процессы

# ps -eF

Вывести дерево процессов

# ps -ejH

Мониторинг системных ресурсов

# top

или, если хочется чтобы все было красиво (не забудьте подключить репозиторий EPEL)

#yum -y install htop

#htop

Мониторинг свободного места в разделах

# df -h

Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00

23G 2.4G 20G 11% /

 

170

 

Модуль 12. Система мониторинга Nagios.