OpsView или Nagios могут быть созданы для создания отчетов относительно устройства на основе электронных писем состояния, которые это отсылает?

Я смотрю на установку Nagios (или возможно OpsView) сервер для контроля нашей сети.

У меня есть несколько устройств периферии, схема oid которых не включает узлы для некоторой метрики, которую я хочу контролировать. В настоящее время я контролирую метрику на основе электронных писем состояния, посланных от самого устройства периодически.

Может Nagios (или Opsview) быть настроенным для создания отчетов о состоянии устройства на основе содержания полученного электронного письма?

В конечном счете я хотел бы свалить его к чему-то как красное/зеленое состояние. Бонусные очки, если я могу получить треть (например, желтый) состояние, указывающее, что ожидаемое электронное письмо состояния не было получено.

Если ни Nagios, ни Opsview не могут сделать это, я открыт для предложения для чего-то, что может. Даже если это делает просто это, и я буду использовать Nagios для остатка сетевые контрольные задачи / типичные сетевые контрольные задачи.

Спасибо все.

Редактирование - Согласно просьбе, это - [санированный] пример электронного письма, на котором я хотел бы анализировать/действовать:

Return-path: <notificationsvc@example.com>
Envelope-to: admin@example2.com
Delivery-date: Fri, 28 Nov 2014 03:15:21 -0600
Received: from [xx.xx.xx.xx] (port=49676 helo=DiskStation)
    by mailserver.example.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256)
    (Exim ver x.xx)
    (envelope-from <notificationsvc@example.com>)
    id 123456-000000-1Z
    for admin@example2.com; Fri, 28 Nov 2014 03:15:21 -0600
Date: Fri, 28 Nov 2014 04:15:21 -0500
From: "Fifteen " <notificationsvc@example.com>
To: <admin@example2.com>
Subject: =?UTF-8?B?RmlmdGVlb[snipped]
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Dear user,

Function X on Fifteen has been completed.

Task: Function X to server3
Target Server: server3.example.com (xx.xx.xx.xx)
Action Time: 2014/11/28 04:15

РЕДАКТИРОВАНИЕ 2 - Поэтому только для развития @DanielAgans предложения это немного слишком произведено своими силами для меня в это время. Это просто немного слишком далеко из моего набора навыков и зоны комфорта для занятия прямо сейчас, но я действительно хотел бы иметь способ контролировать эти поля вместо того, чтобы иметь необходимость вручную смотреть и обработать электронные письма. Действительно надеялся найти своего рода включать для nagios или Opsview. Мой поиск и комментарий Daniel заставляют меня чувствовать, как будто это могло бы быть тупиковым запросом.

Кто-либо может подтвердить, что Nagios/Ops действительно НЕ сделает то, в чем я нуждаюсь?

И, конечно, откройтесь к предложениям того, как может сделать это, хотя меньше программирования, интенсивного, чем какой Daniel, уже предложенный.

Спасибо.

0
задан 30 November 2014 в 03:41
1 ответ

Я все время делаю такие вещи, используя рукописные синтаксические анализаторы и send_nsca . В качестве примера, давайте остановимся на функции под названием «функция X» на машине с именем server3.

Обычно я использую адрес получателя, специфичный для данной службы - скажем, (скрытый) Вы можете сделайте это в почтовом ящике общего назначения, но это означает больше логики в анализаторе (что означает больше шансов ошибок, вызывающих ложноотрицательные результаты) и шанс случайного удаления электронной почты, предназначенной для человека. Мой почтовый сервер получает адрес в небольшой программе, например для sendmail, в файле псевдонимов:

functionXs3:              "|/usr/local/bin/functionx"

В свою очередь, / usr / local / bin / functionx - это небольшой, легкий скрипт, который ищет характерные признаки успеха / неудачи и соответствующим образом реагирует. Я предполагаю, что текст Function X on Fifteen был завершен сигнализирует об успехе, а его отсутствие сигнализирует об ошибке, поэтому синтаксический анализатор может быть примерно таким:

#!/bin/bash
grep "Function X on Fifteen has been completed" && \
 ( echo "server3   function X   0   success" | send_nsca -H nagios.example.com ) || \
 ( echo "server3   function X   1   failure" | send_nsca -H nagios.example.com )

Это не подходящее место для начинающих по установка и настройка send_nsca на клиенте, равно как и демона прослушивания NSCA на сервере, но обратите внимание, что группы пробелов в приведенных выше инструкциях echo должны быть отдельными вкладками TAB, и что успех и сбой - это условный текст, который будет отображаться в столбце «информация о состоянии» NAGIOS, а также в любых правильно настроенных уведомлениях.

Внутри NAGIOS вы определяете хост и service соответственно:

define host{
        use                     host-template
        host_name               server3
        address                 192.168.34.56
        }

define service{
        use                     passive-service-template
        host_name               server3
        service_description     function X
        max_check_attempts      1
        check_freshness         1
        freshness_threshold     100000
}

Обратите внимание, как host_name и service_description точно совпадают с первыми двумя полями, отображаемыми в send_nsca . freshness_threshold должен быть установлен на значение в секундах, несколько большее, чем нормальная частота, с которой должно выполняться задание функции; в моем случае задание должно выполняться один раз в день (86400 сек). Написание шаблонов службы и хоста следует оставить в основном как упражнение, но в качестве руководства будет полезно что-то вроде этого:

define service{
        name                            passive-service-template
        use                             service-template
        normal_check_interval           60
        retry_check_interval            60
        active_checks_enabled           0 ; passive checks already enabled
        check_command                   check_dummy!2 "STALE SERVICE"
        register                        0      
        }

define command{
        command_name    check_dummy
        command_line    $USER1$/check_dummy  $ARG1$ 
        }

Обратите внимание на использование check_dummy для проверки актуальности. Это то, что NAGIOS вызывает, когда у него не было уведомления о пассивной службе в последние freshness_threshold секунд, и все, что он делает, это выдаёт КРИТИЧЕСКОЕ предупреждение с текстом статуса «STALE SERVICE». Это означает, что если по какой-либо причине цепочка уведомлений выйдет из строя тихо - задание не было выполнено, электронная почта не была доставлена, сценарий синтаксического анализа был сломан, NSCA не удалось - NAGIOS будет ворчать на соответствующих получателей, чтобы можно было изучить проблему.

Это может быть лишь мимолетный обзор ответа. Я думал, что некоторые конкретные примеры конфигурации могут быть полезны, но полная кулинарная книга способом выходит за рамки ответа SF, поэтому , пожалуйста, не запрашивайте много дополнительных деталей конфигурации.

0
ответ дан 5 December 2019 в 13:01

Теги

Похожие вопросы