У нас есть задачи SSIS (dtexec
), которые выполняются диспетчером задач Windows и контролируются Nagios. Однако Nagios регулярно выдает предупреждения, потому что код выхода пуст (где должен быть 0). Это происходит, если проверка выполняется во время выполнения задачи (в случае с графическим интерфейсом диспетчер задач отображает своего рода временный код выхода).
define service{
use generic-service
host_name ms.example.com
service_description My task name
retry_interval 10
check_command check_schedtask!"TaskName=\\"\\Category\\My task name\\"" "ExitCode=0x0" "Elapsed=1.0:10" "LastEvent"
contact_groups
contacts Annoyed people
notification_interval 240
servicegroups functional_tasks
}
Как я могу игнорировать задачи, которые выполняются во время проверки?
Или вы можете использовать этот сценарий Powershell для отслеживания запланированных задач:
http://outsideit.net/check-ms-win-tasks/
Результат выглядит так:
1 / 11 tasks failed! {Taskname: "check_ms_win_tasks_subfolder_01_task" (Author: F1REBASE\Willem)(Exitcode: -2147023673)(Last runtime: 12/06/2014 11:35:56)} 1 / 11 tasks still running! {Taskname: "SamsungMagician" (Author: SamsungMagician)(Exitcode: 267009)(Last runtime: 06/21/2015 11:37:55)} | 'Total Tasks'=11, 'OK Tasks'=9, 'Failed Tasks'=1, 'Running Tasks'=1
Вы можете отслеживать все запланированные задачи на хосте с помощью одной службы и исключать те, которые вам не нужны.
Вы можете указать, чтобы проверка возвращала код 3 в nagios, когда процесс возвращает NULL () ?, что означает, что состояние НЕИЗВЕСТНО.
Подробнее о кодах здесь: https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/pluginapi.html