Todos los productos
Search
Centro de documentos

Application Real-Time Monitoring Service:Integrar Nagios con ARMS

Última actualización: Sep 04, 2026

Este tema describe cómo integrar Nagios con Alert Management.

Paso 1: Crear una integración de Nagios

  1. Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, seleccione Alert Management > Integrations.

  2. En la pestaña Alert Integration, haga clic en Nagios.

  3. En el asistente New Nagios Integration, introduzca un nombre y una descripción para la integración, establezca el tiempo de recuperación automática para los eventos de alerta y luego haga clic en Save.

    Nota

    Tiempo de recuperación automática tras agotar el tiempo de espera: si un evento de alerta no se activa nuevamente dentro del periodo especificado, el evento se borra automáticamente.

  4. En la pestaña Alert Integration, busque su integración de Nagios y copie su dirección de integración.

Paso 2: Configurar una plantilla de alertas de Nagios

  1. Cree un script de notificación de alertas.

    1. Inicie sesión en el servidor donde se encuentra Nagios e introduzca la siguiente ruta:

      cd /usr/local/nagios/libexec/
    2. Cree un archivo de script llamado nagios-alert.py. Agregue el siguiente contenido al archivo:

      Nota

      Reemplace integration_url en el script con la dirección de integración obtenida en Step 1.

      #!/usr/bin/python
      # -*- coding: utf-8 -*-
      import requests
      import json
      import sys
      import os
      headers = {'Content-Type': 'application/json;charset=utf-8'}
      api_url = "integration_url"      # Replace integration_url with the integration address from Step 1.
      def parse(sys):
          object_type = str(sys.argv[1])
          notification_type = str(sys.argv[2])
          host_name = str(sys.argv[3])
          host_ip = str(sys.argv[4])
          state = str(sys.argv[5])
          time = str(sys.argv[6])
          info = str(sys.argv[7])
          if object_type == 'host':
              description = "[{}] {} alert: {} is {}".format(notification_type, object_type, host_name, state)
              service = ""
          else:
              service = str(sys.argv[8])
              description = "[{}] {} alert: {}/{} is {}".format(notification_type, object_type, host_name, service, state)
          content_dict = {'service':""}
          content_dict['object_type'] = object_type
          content_dict['notification_type'] = notification_type
          content_dict['host_name'] = host_name
          content_dict['host_ip'] = host_ip
          content_dict['state'] = state
          content_dict['time'] = time
          content_dict['info'] = info
          content_dict['service'] = service
          content_dict['description'] = description
          print(content_dict)
          return content_dict
      def msg(text):
          result = requests.post(url=api_url, data=json.dumps(text), headers=headers)
          print(result)
      if __name__ == '__main__':
          text = parse(sys)
          msg(text)
    3. Ejecute el siguiente comando para instalar la biblioteca Requests:

      pip install requests
  2. Configure el archivo Commands.

    1. Ejecute el siguiente comando para modificar el archivo commands.cf:

      vim /usr/local/nagios/etc/objects/commands.cf
    2. Agregue el siguiente contenido al archivo commands.cf:

      define command{
          command_name notify-host-by-alert
          command_line python /usr/local/nagios/libexec/nagios-alert.py "host" "$NOTIFICATIONTYPE$" "$HOSTALIAS$" "$HOSTADDRESS$" "$HOSTSTATE$" "$LONGDATETIME$" "$HOSTOUTPUT$"
          }
      define command{
          command_name notify-service-by-alert
          command_line python /usr/local/nagios/libexec/nagios-alert.py "service" "$NOTIFICATIONTYPE$" "$HOSTALIAS$" "$HOSTADDRESS$" "$SERVICESTATE$" "$LONGDATETIME$" "$SERVICEOUTPUT$" "$SERVICEDESC$"
          }
    3. Introduzca el comando :wq para guardar los cambios en el archivo commands.cf.

  3. Especifique la información de contacto.

    1. Ejecute el siguiente comando para modificar el archivo contacts.cfg:

      vim /usr/local/nagios/etc/objects/contacts.cfg
    2. Agregue el siguiente contenido al archivo contacts.cfg:

      service_notification_commands   notify-service-by-alert
      host_notification_commands      notify-host-by-alert
      define contact{
              contact_name                    nagiosadmin             ; Short name
              use                             generic-contact         ; Inherit de
              alias                           Nagios Admin            ; Full name
              email                           nagios@localhost         ; <<***** Ch
              service_notification_commands   notify-service-by-alert
              host_notification_commands      notify-host-by-alert
      }
      ################################################################
    3. Introduzca el comando :wq para guardar los cambios en el archivo contacts.cfg.

  4. Ejecute el siguiente comando para reiniciar Nagios:

    systemctl restart nagios

(Opcional) Paso 3: Modificar la integración

Alert Management proporciona asignaciones de campos predeterminadas entre el origen de alertas de Nagios y las alertas de ARMS. También puede agregar o modificar asignaciones de campos en la página Edit Integration.

Ejemplo de origen de alerta:

{
    "info":"SWAP CRITICAL - 0% free (0 MB out of 0 MB) - Swap is either disabled, not present, or of zero size.",
    "description":"[PROBLEM] service alert: localhost/Swap Usage is CRITICAL",
    "service":"Swap Usage",
    "host_ip":"127.0.0.1",
    "state":"CRITICAL",
    "object_type":"service",
    "time":"Tue Sep 14 10:46:49 CST 2021",
    "notification_type":"PROBLEM",
    "host_name":"localhost"
}
  1. En la pestaña Alert Integration, busque la integración que desea gestionar y haga clic en Edit en la columna Actions.

  2. En la sección Event Mapping, haga clic en Send Test Data.

  3. En el cuadro de diálogo Send Test Data, introduzca el contenido de alerta de un origen de alertas de terceros en formato JSON y haga clic en Send.

    Nota
    • Si aparece el mensaje Uploaded. No events are generated. Configure mappings based on the original data., significa que los campos del origen de alerta no están asignados a los campos de los eventos de alerta de ARMS. Los datos enviados se muestran en el cuadro izquierdo, lo que le permite seleccionar los campos de origen al configurar las asignaciones.

    • Si aparece el mensaje Uploaded., el contenido de la alerta se reporta en la página de historial de eventos de alerta. Para obtener más información, consulte View alert event history.

  4. En el cuadro de diálogo Send Test Data, haga clic en Disable.

  5. En la parte izquierda de la sección Event Mapping, haga clic en los registros de datos para los que desea configurar asignaciones y así ver sus detalles.

  6. En el panel derecho de la sección Event Mapping, configure la asignación entre los campos del origen de alerta y los campos de alerta de ARMS.

    1. Opcional:En la sección Select Root Node, especifique si desea habilitar el procesamiento por lotes.

      Si existe un nodo de matriz en los datos de alerta, puede especificar dicho nodo como nodo raíz. Los datos pertenecientes al nodo raíz se procesan por lotes.

      Después de seleccionar Use Batch Processing, seleccione el nodo de matriz que se procesará por lotes como nodo raíz.

      Nota

      Si existen varios nodos de matriz en los datos de alerta, solo puede seleccionar uno de ellos para el procesamiento por lotes.

    2. En la sección Map Source Fields to Target Fields, asigne los campos del origen de alerta a los campos de alerta de ARMS.

      Haga clic en el icono de asignación para cambiar el método de asignación de campos.

      • Directa: el campo especificado del origen de alerta se asigna directamente al campo de alerta de ARMS correspondiente.

      • Serie: puede usar delimitadores para concatenar varios campos del origen de alerta en un solo campo y luego asignar este campo al campo de alerta de ARMS especificado. Solo se pueden utilizar caracteres especiales como delimitadores.

      • Condicional: los campos del origen de alerta especificados se asignan a los campos de alerta de ARMS solo cuando los valores de los campos cumplen las condiciones establecidas.

      • Tabla de asignación: la gravedad del origen de alerta se asigna a la gravedad de la alerta de ARMS. La tabla de asignación contiene únicamente el campo de gravedad.

      La siguiente tabla describe los campos de alerta de ARMS.

      Campo de alerta

      Descripción

      alertname

      Nombre de la alerta personalizada.

      severity

      Nivel de gravedad de la alerta. Debe configurar asignaciones para este campo. El método de asignación debe establecerse en Directa.

      message

      Descripción de la alerta. Se utiliza como contenido del mensaje de alerta y no puede exceder los 15,000 caracteres.

      value

      Valor de muestra de una métrica.

      imageUrl

      URL del gráfico de líneas que contiene métricas de Grafana. Se usa para asignar el gráfico de líneas.

      check

      Elemento de comprobación de la alerta. Ejemplos: CPU, JVM, Application Crash y Deployment.

      source

      Origen de la alerta.

      class

      Tipo de objeto que activa el evento de alerta; por ejemplo, host.

      service

      Servicio de origen de la alerta. Ejemplo: Login Service.

      startat

      Marca de tiempo que representa la hora de inicio del evento.

      endat

      Marca de tiempo que representa la hora de finalización del evento.

      generatorUrl

      URL de los detalles del evento.

  7. Configure la deduplicación de campos para los eventos de alerta.

    Para reducir datos duplicados, el sistema utiliza campos relevantes como base para la deduplicación. Alert Management de ARMS le permite previsualizar los resultados de agrupación por deduplicación de datos históricos de eventos que se muestran en la sección Event Mapping. Puede cambiar los campos que se van a deduplicar.

    Nota

    Solo puede configurar la deduplicación para eventos que no se han borrado.

    1. En la sección Event Deduplication de la página Integration Details, seleccione los campos que se usarán para la deduplicación.

      Si varios eventos tienen el mismo valor para un campo especificado, estos se fusionan en una sola notificación de alerta.

    2. Haga clic en Deduplication Test para previsualizar el grupo de alertas después de la deduplicación.

      Nota

      La prueba de deduplicación solo surte efecto en los últimos 10 registros de datos cargados en la parte izquierda de la sección Event Mapping.

  8. Una vez configurados los ajustes, haga clic en Save.

Consultar los detalles de un evento de alerta

  1. En el panel de navegación izquierdo de la consola de ARMS, seleccione Alert Management > Alert Event History.

  2. En la página Alert Event History, haga clic en el nombre del evento de alerta para ver sus detalles. Para obtener más información, consulte View alert event history.

Gestionar la integración

En el panel de navegación izquierdo, seleccione Alert Management > Integrations. En la pestaña Alert Integration, puede realizar las siguientes operaciones en las integraciones que haya creado:

  • Consultar los detalles de una integración: busque la integración y haga clic en la fila correspondiente. En la página Integration Details, revise la información detallada de la integración.

  • Actualizar una clave: para modificar la clave de una integración, seleccione More > Update Key en la columna Actions de la integración objetivo y haga clic en Confirm.

    Importante

    Después de actualizar la clave, debe modificar la dirección de integración en el archivo de script. Para obtener más información, consulte Step 2: Configure Nagios alerts.

  • Modificar una integración: busque la integración y haga clic en Edit en la columna Actions. En la página Integration Details, modifique la información de la integración y luego haga clic en Save.

  • Habilitar o deshabilitar una integración: busque la integración y haga clic en Disable o Enable en la columna Actions.

  • Eliminar una integración: busque la integración y haga clic en Delete en la columna Actions. En el mensaje que aparece, haga clic en OK.

  • Agregar un flujo de procesamiento de eventos a una integración: busque la integración y haga clic en Add Event Processing Flow en la columna Actions. Para obtener más información, consulte Event processing flow.

  • Crear una directiva de notificación: busque la integración para la cual desea crear una directiva de notificación y haga clic en More en la columna Actions. En la lista que aparece, haga clic en Create Notification Policy. Para obtener más información, consulte Notification policies.

Siguientes pasos

Después de crear una directiva de notificación, el sistema genera alertas y envía notificaciones para los eventos reportados según dicha directiva. Para obtener más información, consulte Notification policies. En la página Alert Sending History, puede consultar las alertas generadas con base en la directiva de notificación configurada. Para obtener más información, consulte View alert sending history.