Меню

fully automated nagios настройка

Развертывание и настройка Nagios v.3

Исходная задача звучала примерно так.
Развертывание на сервере Ubuntu платформы Nagios, для мониторинга следующих узлов организации:

Сайт lala.ru: IP_1: доступ по ping; http
Сервер mocs: IP_2: доступ по ping;
Сервер ipaddress: IP_3: доступ по ping;
Сервер Mr: IP_4: доступ по ping, smtp;
DNS сервер: IP_5: доступ по ping;
Exchange сервер: IP_6: доступ по https, pop3,smtp.

Также необходимо место на диске, загрузку CPU, загрузку память для данных серверов.

Реализация.

Установка вспомогательных программ:
apt-get install:
apache
gcc
build-essential
libd2-xpm-dev
Создаем пользователя и группу, от которых будет работать Nagios:
useradd -m nagios
passwd nagios
usermod -G nagios nagios

Создаем отдельную группу для управления настройками ч/з веб-интерфейс: nagcmd. Включим в нее учетную запись веб-сервера (www-data) и пользователя nagios:
group add nagcmd
usermod -G nagcmd nagios
grep -i user /etc/apache2/envvars
usermod -G nagcmd www-data

Устанавливаем nagios:
apt-get install nagios

2)
Настраиваем работу самого Nagios.

Прописываем в /etc/nagios3/cgi.cfg пользователя-админа, который может конфигурировать Nagios через веб-интерфейс.
В нашем случае это:
manage
Выставляем пароль для доступа пользователя manage в вебке:
htpasswd -c /etc/nagios3/htpasswd.users manage
(если мы хотим создать другую учетку (например User1) для доступа к вебке nagios, это делается командой:
htpasswd -c /etc/nagios3/htpasswd.users User1)
Перезапускаем apache:
/etc/init.d/apache2 reload
Поставим nagios в автозагрузку:
ln -s /etc/init.d/nagios /etc/reS.d/S99nagios

— Проверка nagios.cfg на наличие ошибок:
nagios3 -v /etc/nagios3/nagios.cfg
— 3)
Настройка мониторинга узлов в Nagios.

В папке /etc/nagios3/conf.d/ содержатся основные конфигурационные файлы, из которых Nagios читает информацию об узлах.
1) ./hosts_nagios2.cfg — здесь прописываем названия и IP-адреса узлов, которые хотим мониторить.

Здесь были прописаны все требуемые в задаче узлы.
Пример:
#Основной DNS сервер
define host <
use generic-host
host_name DNS Preferred
alias Preferred DNS Server
address IP_5
>

#
define host <
use generic-host
host_name Mr server
alias
address IP_4
>

2) ./hostgroup_nagios2.cfg — задаем группы хостов, к которым хотим применить один из сервисов Nagios.

Здесь хосты были объединены в группы согласно сервисам, по которым их следует мониторить: http, https, pop3, smtp, ping, CPU, Mem, Disk_Space.
Пример:
#smtp-accessible servers
define hostgroup <
hostgroup_name smtp-servers
alias SMTP servers
members Mr server, Exchange
>

3) ./services_nagios2.cfg — задаем, какие службы, протоколы и т.д. будут проверяться Nagios, для каких групп узлов это действует.

Здесь были описаны все используемые Nagios сервисы.
Пример:
# check that smtp services are running
define service <
hostgroup_name smtp-servers
service_description smtp
check_command check_smtp
use generic-service
notification_interval 0; set > 0 if you want to be renotified
>

Заходим на Nagios через веб-интерфейс:
10.33.10.170/nagios3
логин-пароль: YOUR_PASS

Для мониторинга за железом (CPU, Mem, Disk_Space), необходимо установить демон
NRPE
NSClient++

На клиенте (ОС Linux).
Предварительный этап:
apt-get install xinetd
apt-get install libssl-dev
apt-get install openssl
groupadd nagios
useradd nagios -d /home/nagios -g nagios -m
Установка:
cd /home/manage
wget citylan.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz
tar -xzf ./nrpe-2.13.tar.gz
cd ./nrpe-2.13
./configure —with-ssl=/usr/bin/openssl —with-ssl-lib=/usr/lib/x86_64-linux-gnu
make all
make install && make install-xinetd
Конфигурирование:
Редактируем /etc/xinetd.d/nrpe, находим строку
only_from = 127.0.0.1,10.33.10.170 (без пробела после «,» . )
дописываем IP-адрес хоста Nagios (в общем случае — узлов, с которых будет осуществляться мониторинг)

Добавить описание NRPE в конец файла /etc/services.
nrpe 5666/tcp # NRPE
Далее:
service xinetd restart

На клиенте (ОС Windows).
NSClient++ качаем отсюда: files.nsclient.org/x-0.4.x/NSCP-0.4.1.61-x64.msi
или files.nsclient.org/x-0.4.x/NSCP-0.4.0.183-Win32.msi
Конфигурирование:
Делаем все, как на картинках: habrahabr.ru/sandbox/41657 (IP: 10.33.10.170, обязательно проставляем все галочки)
C:\Program Files\NSClient++\nsclient.ini
Далее идём в «Службы», открываем NSClient++ и ставим галочку напротив «Разрешить взаимодействие с рабочим столом» на вкладке «Вход в систему». Если служба не запущена, нажимаем «старт».

Читайте также:  настройка sagemcom fast 2804 v7 adsl только pppoe

Перед запуском определенного сервиса, Nagios в папке /etc/nagios-plugins/ смотрит согласно $service_description .cfg-файл, находит путь до плагина $check_command, запускает ее. Числовые и прочие параметры для запуска плагинов указываются в ./services_nagios2.cfg.

4)
Если сбой! Настройка оповещения админа.

1)
vim /etc/nagios3/commands.cfg — изменяем параметры отправки почты:
В конец команд host-notify-by-email и notify-by-email вместо $CONTACTEMAIL$ прописываем через пробел адреса получателей (admin@yandex.ru, root@localhost, . )

либо (если не заработает, как было у меня: на виртуалке этот вариант прошел)

vim /etc/nagios3/conf.d/contacts_nagios2.cfg — добавляем описания контактов, которых хотим включить в рассылку уведомлений, добавляем их в группу admins.

define contact <
contact_name manage
alias Nagios Administrator
service_notification_period 24×7
host_notification_period 24×7
service_notification_options c,r // c – сообщать о критических состояниях, r – сообщать о восстановлении сервиса
host_notification_options d,r // d — оповещение в том случае, если система отключилась, r – сообщать о восстановлении системы
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email admin@yandex.ru
>

define contactgroup <
contactgroup_name admins
alias Nagios Administrators
members root, manage
>

2)
vim /etc/nagios3/conf.d/generic-service_nagios2.cfg — указываем настройки оповещения (через какой временной интервал и в ответ на какие события высылать письма)
notification_interval 240 //240 = 4 часа
notification_options c,r // c – сообщать о критических состояниях, r – сообщать о восстановлении сервиса

vim /etc/nagios3/conf.d/generic-host_nagios2.cfg
notification_interval 240
notification_options d,u,r // d — оповещение в том случае, если система отключилась, u – если она недоступна, r – сообщать о восстановлении системы

5)
Конфигурирование Nagios через php-шный веб-интерфейс NConf (http://exchange.nagios.org/directory/Addons/Configuration/NConf/details)

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

источник

Установка и настройка Nagios. Мониторинг Windows-хостов и Cisco. Настройка уведомлений по email

Установка и настройка Nagios 3

Требования
Установка

Заходим в консоль с правами root:

Вводим свой пароль. Далее скачиваем необходимые нам пакеты:

#apt-get install apache2 php5 nagios3

Во время установки он задаст несколько вопросов в зависимости от вашей конфигурации сервера и попросит ввести пароль для учетной записи nagiosadmin.Теперь после окончания установки вы можете зайти на веб-интерфейс вашего Nagios. Для примера наш IP 192.168.0.1:

Настройка Nagios для мониторинга Windows-хостов

Все необходимые конфигурационные файлы лежат в папке /etc/nagios3/conf.d/. А глобальный конфигурационный файл nagios и файл команд лежат здесь /etc/nagios3/ и называется nagios.cfg и commands.cfg соответственно.
Чтобы мониторить windows-хосты нам необходимо подключить к nagios плагин check_nt, добавить необходимые компьютеры, которые мы хотим мониторить, в конфигурационные файлы и настроить на этих же компьютерах NSClient++.

Для начала настроим NSClient++.

Скачать его можно отсюда www.nsclient.org/nscp/downloads. Есть как 32-разрядная, так и 64-разрядная версии. Скачиваем и запускаем установку. Далее мы со всем соглашаемся и в окошке, где необходимо вписать информацию вводим ip нашего nagios-сервера, пароль и ставим везде галочки, кроме WMI.

Нажимаем Next и заканчиваем установку.

Идём в папку C:\Program Files\NSClient++ и открываем для редактирования файл NSC.ini. Здесь нам нужно изменить некоторые строчки:

;# PASSWORD
; This is the password (-s) that is required to access NSClient remotely. If you leave this blank everyone will be able to access the daemon remotly.
password=12345

;# ALLOWED HOST ADDRESSES
; This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.
; If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).
; The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access
allowed_hosts=192.168.0.1/255.255.255.0

Читайте также:  в биосе нет настроек для разгона

;# USE THIS FILE
; Use the INI file as opposed to the registry if this is 0 and the use_reg in the registry is set to 1
; the registry will be used instead.
use_file=1
allowed_hosts=192.168.0.1
password=12345

Далее идём в службы, открываем NSClient++ и ставим галочку напротив «Разрешить взаимодействие с рабочим столом» на вкладке «Вход в систему».

Теперь нам нужно запустить клиент. Из командной строки:

Идем в диспетчер задач и проверяем запущен ли клиент.

На этом настройка NSClient++ закончена.

Теперь нам необходимо настроить Nagios.

Идем в файл /etc/nagios3/commands.cfg и добавляем следующие строчки:

# check_nt command definition
define command <
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s 12345 -v $ARG1$ $ARG2$
>

Этой строкой мы включаем плагин check_nt. Не забываем указать наш пароль, который мы вводили при настройке NSClient++ (12345).
После этого добавим необходимый нам хост. Для этого создадим файлик myhosts.cfg в папке
/etc/nagios3/conf.d/. Дадим ему необходимые права для пользователя nagiosadmin. Запишем в нем следющее:

# WINDOWS SERVERS
define host <
host_name windows-server
alias WINDOWS-SERVER
address 192.168.0.2
use generic-host
>

Так как хост у нас предполагается быть не один, то создадим группу для всех windows-хостов. Сделаем это в файле /etc/nagios3/conf.d/hostgroups_nagios2.cfg

# WINDOWS SERVERS
define hostgroup <
hostgroup_name windows-servers
alias WINDOWS SERVERS
members windows-server, windows-server2
>

Теперь нам необходимо добавить сервисы, которые будут мониториться. Делается это в файле /etc/nagios3/conf.d/services_nagios2.cfg

# NSCLIENT
define service <
hostgroup_name windows-servers
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
use generic-service
>

# PING
define service <
hostgroup_name windows-servers
service_description PING
check_command check_ping!100.0,20%!500.0,60%
use generic-service
>

# CPU
define service <
hostgroup_name windows-servers
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
use generic-service
>

# MEMORY
define service <
hostgroup_name windows-servers
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
use generic-service
>

— распределение места на системном диске:

# DISK SPACE
define service <
hostgroup_name windows-servers
service_description C: Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
use generic-service
>

Теперь перезапускаем Nagios:

Заходим в веб-интерфейс nagios и по нашему хосту видим следующую инфу:

Настройка Nagios для мониторинга CISCO (2960 и 3750)

Для начала нам нужно настроить SNMP на самой CISCO. Заходим в консоль и прописываем следующее:

#snmp-server community RO-COMMUNITY RO
#snmp-server trap-source Vlan1
#snmp-server source-interface informs Vlan1
#snmp-server location LOCATION
#snmp-server contact admin@admin.com
#snmp-server host 192.168.0.1 RO-COMMUNITY
#exit

Теперь проверим работает ли snmp следующей командой с хоста, где стоит Nagios:

# snmpwalk –v2c –c RO-COMMUNITY 192.168.0.4

192.168.0.4 – ip нашей Cisco 2960.

После этой команды должно пойти огромное количество записей по вашей Cisco. Если ругается, то скорее всего не установлен пакет snmpd и snmp-utils. Или следует проверять конфиг Cisco.

Итак, мы убедились, что все работает. Идём подключать плагин check_snmp. Лезем в файлик commands.cfg в /etc/nagios3/ и вбиваем следующее:

# check_snmp command definition
define command <
command_name check_snmp
command_line usr/lib/nagios/plugins/check_snmp -H $HOSTADRESS$ $ARG1$
>

Добавляем нужные нам хосты в тот же файлик myhosts.cfg

define host <
host_name CISCO 2960
alias CISCO 2960
address 192.168.0.4
use generic-host
>

Можно также создать группу, если свитчей много.

Описываем необходимые нам сервисы:

# CISCO 2960
# PING
define service <
host_name cisco 2960
service_description PING
check_command check_ping!100.0,20%!500.0,60%
use generic-service
>

# UPTIME
define service <
host_name cisco 2960
service_description UPTIME
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o .1.3.6.1.2.1.1.3.0 -l «Uptime is»
use generic-service
>

Читайте также:  установка виндовс для майнинга

— порты FastEthernet с 1 по 6:

# PORT STATUS for SWITCHES-24
define service <
host_name cisco 2960
service_description FastEthernet Port 1-6 Link Status
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o ifOperStatus.10001 -r 1 -m RFC1213-MIB, -o ifOperStatus.10002 -r 1 -m RFC1213-MIB, -o ifOperStatus.10003 -r 1 -m RFC1213-MIB, -o ifOperStatus.10004 -r 1 -m RFC1213-MIB, -o ifOperStatus.10005 -r 1 -m RFC1213-MIB, -o ifOperStatus.10006 -r 1 -m RFC1213-MIB
use generic-service
>

Прошу обратить внимание, что на гигабитных свитчах номер портов указывается, как 10001, 10002. А гигабитные порты — 10101, 10102.

— порты GigabitEthernet отдельно:

define service <
host_name cisco 2960
service_description GigabitEthernet Port 1 Link Status
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o ifOperStatus.10101 -r 1 -m RFC1213-MIB
use generic-service
>
define service <
host_name cisco 2960
service_description GigabitEthernet Port 2 Link Status
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o ifOperStatus.10102 -r 1 -m RFC1213-MIB
use generic-service
>

define service <
host_name cisco 2960
service_description FAN Status
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o .1.3.6.1.4.1.9.9.13.1.4.1.2.1004 -l «Fan Status»
use generic-service
>

define service <
host_name cisco 2960
service_description Power Supply Status
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o .1.3.6.1.4.1.9.9.13.1.5.1.2.1003 -l «Power Supply Status»
use generic-service
>

define service <
host_name cisco 2960
service_description Temperature Status
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o .1.3.6.1.4.1.9.5.1.2.13.0 -l «Temp Status»
use generic-service
>

define service <
host_name cisco 2960
service_description CPU Load
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o .1.3.6.1.4.1.9.9.109.1.1.1.1.5.1 -w 90 -c 95 -u % -l «CPU Load»
use generic-service
>

define service <
host_name cisco 2960
service_description Memory Usage
check_command check_snmp! -H 192.168.0.4 -C RO-COMMUNITY -o .1.3.6.1.4.1.9.9.48.1.1.1.5.1 -l «Mem Used»
use generic-service
>

Теперь перезапускаем Nagios и видим примерную картину по нашей железке. Для себя я добавил еще промежутки портов.

В промежутке портов он сообщает состояние CRITICAL, даже если один из портов находится в состоянии «down».
В вышеуказанных сервисах прописаны oid’ы для Cisco 2960, которые мне в итоге подошли и для 3750. Необходимые вам oid’s можно найти на сайте Cisco или с помощью, например, MIB Browser.

Настройка уведомлений по email

Для начала нужно поставить следующие пакеты:

#apt-get install libio-socket-ssl-perl libnet-ssleay-perl perl
#apt-get install sendemail

Создадим для nagios почтовый ящик, например на gmail.

Теперь в файле commands.cfg пропишем следующее:

# ‘notify-host-by-email’ command definition
define command <
command_name notify-host-by-email
command_line /usr/bin/printf «%b» «***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n» | /usr/bin/sendemail -f username@gmail.com -t yourmail@gmail.com -u «NAGIOS WARNING» -s smtp.gmail.com -o tls=yes -xu username -xp password -m
>
# ‘notify-host-by-emailz’ command definition
define command <
command_name notify-host-by-emailz
command_line /usr/bin/printf «%b» «***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n» | /usr/bin/sendemail -f username@gmail.com -t yourmail@gmail.com -u «NAGIOS WARNING» -s smtp.gmail.com -o tls=yes -xu username -xp password -m
>

username@gmail.com – созданный почтовый ящик
yourmail@gmail.com – ящик, куда будут приходить оповещения.
username – логин от созданного почтового ящика
password – пароль от созданного почтового ящика

Теперь создадим нужный нам контакт в файле /etc/nagios3/conf.d/contacts_nagios2.cfg

define contact <
contact_name user
alias Root
service_notification_period 24×7
host_notification_period 24×7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email username@gmail.com
>

Перезапускаем Nagios. Настройка закончена.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

источник

Добавить комментарий

Adblock
detector