Назад | Перейти на главную страницу

.bat файл - проверка службы Nagios v3.2 и запуск в случае остановки

Я едва вхожу в программирование, поэтому прошу прощения за свое невежество. Я пытаюсь создать .bat-файл, который будет проверять, работает ли служба на XP Pro.

Если служба запущена, она выйдет из 0. Если служба остановлена, запустите службу, подождите 10 секунд (я предполагаю, через ping) проверьте, работает ли служба, если служба работает, выход 0, если служба остановлена, запуск службы подождите 10 секунд

Сделайте эту проверку всего 3 раза. если услуга не появится в течение этого времени: выход 2

Выход 0 = нормально, выход 1 = предупреждение, выход 3 = критическое (и это будет предупреждать)

Мне нужно сделать это для трех разных служб, но я ожидаю, что было бы лучше создать по одной для каждой службы. Таким образом вы получите уведомление о том, что конкретная служба больше не работает.

Цель состоит в том, что если служба остановится, она запустит ее. Если через 30 секунд не удается запустить службу, она отправляет предупреждение.

Причина, по которой я пытаюсь сделать это с помощью .bat, заключается в том, что это согласуется со всеми другими сценариями, и я не хотел усложнять его еще больше, добавляя различные типы кода. Ура за последовательность!

Я снова прошу прощения за свое невежество, которое меня бросили в этот проект в последнюю минуту.

Спасибо за помощь и за чтение моего вопроса!

Проверка того, запущена ли служба, встроена в NSClient ++. Я перезапускаю службу, если она не работает с обработчиком событий NRPE. Обычно, если служба остановлена, NRPE запускает сценарий.

Сценарий

@echo off
net start %1
@exit 0

и я определил обработчик событий в nsclient.ini как, например:

restartwsus=scripts\runcmd.bat wsusservice

под ; A list of scripts available to run from the CheckExternalScripts module. Syntax is: <command>=<script> <arguments> заголовок.

(Перезапустите NSClient ++)

На сервере Nagios я определил команду в commands.cfg как:

define command{
 command_name restartwsus
 command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c restartwsus
}

и определили услугу как:

define service{
        use                     generic-service
        host_name               wsusserver
        service_description     WSUS
        contacts                me
        notification_options    w,c,r
        notification_period     24x7
        notification_interval   0
        check_command           check_nt!SERVICESTATE!-d SHOWALL -l WsusService
        event_handler           restartwsus
        }

Надеюсь, это поможет.