Показаны сообщения с ярлыком NRPE. Показать все сообщения
Показаны сообщения с ярлыком NRPE. Показать все сообщения

13 февр. 2014 г.

Установка системы мониторинга Nagios Core 4 на Linux Debian 6

Недавно возникла необходимость установить систему мониторинга Nagios Core 4 на сервер под управлением Linux Debian 6 (Squeeze). Здесь изложу свой опыт. В принципе, на Debian 7, Ubuntu, а также RHEL-ы (CentOS, Oracle Linux, Fedora) Nagios ставится походим образом. Необходимо лишь учитывать особенности путей на этих системах и наименования пакетов для установки.

Подробнее про Nagios, различие его редакций и т. д. можно прочитать на официальном сайте проекта.

Планируется установить следующие компоненты:

  • Nagios Core, 
  • Nagios Plugins, 
  • NRPE, 
  • Nagios V-Shell (симпатичный фронт-энд для Nagios Core). 

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

30 янв. 2013 г.

Nagios, ошибка при долгой перезагрузке сервера: CHECK_NRPE: Socket timeout after 10 seconds

По умолчанию nrpe-плагин для системы мониторинга Nagios ждет 10 сек. ответа от клиента, а если время перезагрузки сервера, который мы мониторим, больше заданного значения, то письма с такими фейковыми проблемами могут напрягать...

Редактируем файл (путь при установки из исходников) /usr/local/nagios/etc/objects/commands.cfg и находим определение команды чека nrpe. Будет что-то на подобии:

define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

дописываем в команду параметр -t и значение ожидания в сек, например:

command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 60

Всё, этого типа фейковых ошибок уже не будет (если сервер успеет перезагрузиться за заданное время).

3 июл. 2012 г.

Проверка заданий планировщика Windows Scheduler в Nagios

Понадобилось сделать проверку, которая бы раз в день проверяла дату последнего выполнения заданий на сервере и отсылала отчетик по почте.

Такую задачу можно решить многими способами. Здесь опишу свой вариант.

Использовать я буду NRPE для Windows, а точнее его реализацию в NSC++ клиенте (0.3.х версия). NRPE позволяет выполнять на стороне клиента любые скрипты и получать от них результаты - главное всё правильно настроить ;) Как установить и настроить NRPE на сервере и клиенте я писал в этой статье. Для скриптов будем использовать Python 3. Почему? Во 1-х я знаю этот язык :) а во 2-х, я долго мучался с PowerShell, в котором очень криво работает парсинг CSV и мне так и не удалось заставить его нормально вытягивать данные. В итоге, я положий большой и толстый на мракобесную приблуду и заюзал православный питон, в котором тоже была пара граблей, но гугл помог их решить :)

Итак. Для начала настроим клиента.

Идем на http://python.org/download/ и скачиваем 3ю версию питона для Windows, устанавливаем (Далее, Далее... Готово :) ).

Открываем конфиг NSC++ и в секцию [External Scripts] прописываем:

check_scheduler=C:\Python32\python.exe "C:\Program Files\NSClient++\scripts\script.py"

Затем собсно и пишем этот скриптец (создаем текстовый файлик, переименовываем и ПКМ / Edit with IDLE):


import csvimport sys
import os
##Deleting old log
os.system('del "log.csv"')
##Performing schtasks command
os.system('schtasks /query /fo CSV /v >> "log.csv"')
##Clean bad characters inserted by schtasks
fi = open('log.csv', 'rb')
data = fi.read()
fi.close()
fo = open('log.csv1', 'wb')
fo.write(data.replace(b'\x00', b''))
fo.close()
##Opening cleaned CSV
ifile  = open('log.csv1', "r")
reader = csv.reader(ifile, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
##Extracting needed data
for row in reader:
    if (row[1] == "rdc_106") or (row[1] == "rdc_108") or (row[1] == "rdc_115") or (row[1] == "rdc_116"):
        print (row[1]+" : "+row[5])
ifile.close()

Алгоритм работы скрипта такой:
  • удаляем старый лог чтоб не мешал
  • командой schtasks /query /fo CSV /v >> "log.csv" получаем список заданий и в формате CSV записываем в лог-файл
  • очищаем файлик от символов неотображаемых null которые мракософтные команды и Excel зачем-то пихают в файлик CSV, а питон ругается на аткие символы
  • а затем извлекаем в командную строку поля TaskName и Last Run Time для нужных нам заданий.
Перезапускаем службу NSClient++. Всё, если вы ничего не напутали с путями, то клиент настроен.
Настроим теперь сервер.

Тут всё даже попроще. Редактируем файл команд /usr/local/nagios/etc/objects/commands.cfg добавив в конец:

define command{
        command_name    check_scheduler
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_scheduler
        }

Затем пишем скриптец на bash, который будет чекать наши задания и отправлять результаты по почте. Мне не надо было делать постоянный чек, потому я не прописывал сервис для хоста.

#!/bin/bash
#удаляем старый лог чтоб не мешал
rm /home/user/daily_log
#тут пишем комментарии, чеки и всё такое
echo " `date ` \n\n Daily report for Super-duper server.\n\n [Disk space on D:]" >> /home/user/daily_log>
/usr/local/nagios/libexec/check_nt -H 192.168.1.4 -p 12489 -v USEDDISKSPACE -l d -d SHOWALL >> /home/user/daily_log
echo "\n [Processes state:]" >> /home/user/daily_log
/usr/local/nagios/libexec/check_nt -H 192.168.1.41 -p 12489 -v PROCSTATE -l someprocess.exe -d SHOWALL >> /home/user/daily_log
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.4 -p 5666 -c check_scheduler >> /home/user/daily_log
cat /home/user/daily_log | mail -s "Report for Super-duper" -c copy_mail@domain.com recipient@domain.com 

chmod +x /home/user/daily_report.sh

И пихаем этот скриптик в планировщик на нужное на время crontab -e (например, в 6-45 по рабочим дням):

45 6 * * 1-5 sh /home/user/daily_report.sh

Усё. Если всё сделано правильно, то пожинаем плоды своего труда.

29 июн. 2012 г.

Nagios NRPE контроль размера файла (filesize)

Сразу оговорюсь, что система, в которой я настраивал это хозяйство, ранается на Debian 6, а сам Nagios установлен не из пакетов, а из сорцов как в RedHat - в /usr/local/nagios - так проще и удобней, т. к. почти вся документация написана под такой вариант установки.

Для мониторинга нам понадобится плугин к Nagios - NRPE(Nagios Remote Plugin Executor). Смысл его работы показан на рисунке:


На винде он так же точно работает, только через NSClient++.

Итак, приступим. Процесс настройки и установки хорошо описан в официальной пдф-ке: http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf . Но я опишу свои шаги.

1. Устанавливаем необходимую библиотеку:

apt-get update
apt-get install build-essential libssl-dev xinetd