Una integración de Prometheus en ARMS Alert Management recibe eventos de alerta desde instancias de Prometheus autogestionadas y los enruta a través del pipeline de alertas de ARMS. Puede conectar instancias de Prometheus gestionadas por Prometheus-Operator u otros despliegues autogestionados.
Contexto
Prometheus de código abierto reporta las alertas a Alertmanager. Configure <alertmanager_config> en Prometheus.yaml para enviar alertas a ARMS Alert Management. Para consultar la referencia de configuración, véase [[alertmanager_config]](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config).
ARMS Alert Management proporciona un endpoint compatible con Alertmanager para Prometheus de código abierto. Al crear una integración de Prometheus, ARMS Alert Management genera una dirección de integración y un bearer token que su instancia de Prometheus utiliza para enviar alertas.
Requisitos previos
Acceso a la consola de ARMS. El bearer token para la autenticación se obtiene en la página de configuración de la integración después de crearla.
Para el método de Prometheus-Operator:
kubectlinstalado y configurado con acceso a su clúster de Kubernetes.Para otras instancias de Prometheus autogestionadas: acceso de escritura al archivo de configuración
prometheus.yamlen su host de Prometheus.
Paso 1: Crear una integración y conectar una instancia de Prometheus autogestionada
Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, seleccione .
En la pestaña
Alert Integration
haga clic en
Prometheus
.
-
En el cuadro de diálogo New Prometheus Integration, introduzca el nombre y la descripción de la integración de Prometheus, así como el tiempo de recuperación automática de los eventos de alerta; luego haga clic en Save.Instancias de Prometheus gestionadas por Prometheus-OperatorOtras instancias de Prometheus autogestionadasOK
NotaTiempo de recuperación automática tras timeout: si un evento de alerta no se activa nuevamente dentro del periodo especificado, el evento se borra automáticamente.
Seleccione el método de conexión según su despliegue de Prometheus. Si su Prometheus está desplegado mediante Prometheus-Operator, seleccione
. De lo contrario, seleccione
. A continuación, haga clic en
.
Instancias de Prometheus gestionadas por Prometheus-Operator
Cree el archivo arms-alertmanager-config.yaml en su computadora local y pegue el siguiente contenido en el archivo.
- scheme: https
bearer_token: ******
static_configs:
- targets: ['alerts.aliyuncs.com']
Obtenga el valor de bearer_token desde la consola de ARMS una vez creada la integración. Reemplace ****** con el token real.
Utilice el archivo arms-alertmanager-config.yaml para crear un secret llamado arms-am-config.
kubectl create secret generic arms-am-config --from-file=arms-alertmanager-config.yaml
Cree el archivo prometheus-patch.yaml en su computadora local y pegue el siguiente contenido en el archivo.
spec:
additionalAlertManagerConfigs:
key: arms-alertmanager-config.yaml
name: arms-am-config
Ejecute el siguiente comando para obtener el objeto Prometheus.
kubectl get prometheus
Respuesta de ejemplo:
NAME VERSION REPLICAS AGE
prometheus-operator-160879-prometheus v2.18.2 1 4d1h
Ejecute el siguiente comando para aplicar el archivo prometheus-patch.yaml al objeto Prometheus. Reemplace
prometheus-operator-160879-prometheuscon el nombre devuelto en el paso anterior.
kubectl patch prometheus prometheus-operator-160879-prometheus --patch "$(cat prometheus-patch.yaml)" --type=merge
Other Self-managed Prometheus Instances
Modifique el archivo de configuración prometheus.yaml. El siguiente ejemplo aplica a Prometheus 2.x. Para los formatos de configuración de otras versiones, consulte la documentación de Prometheus.
alerting:
alertmanagers:
- api_version: v1
authorization:
type: Bearer
credentials: <bearer_token>
scheme: https
static_configs:
- targets: ["alerts.aliyuncs.com"]
Obtenga el bearer token desde la consola de ARMS. Reemplace <bearer_token> con el valor real del token.
Abra la página de configuración de Prometheus en su navegador y compruebe que la sección
alertingcontiene la configuración de Alertmanager con el destinoalerts.aliyuncs.com.
Integrar otros sistemas de observability compatibles con Prometheus en ARMS Alert Management
Thanos utiliza el parámetro --alertmanagers.config del comando thanos rule para especificar el archivo de configuración de Alertmanager. Introduzca la dirección de integración y el token descritos en los pasos anteriores. Para más información sobre la configuración, consulte la documentación de Thanos.
VictoriaMetric utiliza el parámetro -notifier.config del comando ./bin/vmalert para especificar el archivo de configuración del notificador. Introduzca la dirección de integración y el token descritos en los pasos anteriores. Para más información sobre la configuración, consulte la documentación de VictoriaMetric.
(Opcional) Editar la integración
ARMS Alert Management predefine las asignaciones de campos entre el origen de alertas de Prometheus autogestionado y ARMS Alert Management. Puede agregar o modificar las asignaciones de campos en la página Edit Integration según sea necesario.
En la pestaña Alert Integration, localice la integración que desea gestionar y haga clic en Edit en la columna Actions.
En la sección Event Mapping, haga clic en Send Test Data.
En el cuadro de diálogo Send Test Data, introduzca el contenido de alerta de un origen de alertas externo en formato JSON y haga clic en Send.
Si aparece el mensaje Uploaded. No events are generated. Configure mappings based on the original data., significa que los campos del origen de alertas 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 más información, consulte View alert event history.
En el cuadro de diálogo Send Test Data, haga clic en Disable.
En la parte izquierda de la sección Event Mapping, haga clic en los registros de datos para los que desea configurar asignaciones y consultar los detalles.
En la parte derecha de la sección
Event Mapping
configure las asignaciones entre los campos del origen de alertas y las alertas de ARMS.
Opcional:En la sección Select Root Node, especifique si desea habilitar el procesamiento por lotes.
Si existe un nodo de tipo array en los datos de alerta, puede especificarlo como nodo raíz. Los datos pertenecientes al nodo raíz se procesan en lotes.
Después de seleccionar Use Batch Processing, seleccione el nodo de tipo array que se procesará por lotes como nodo raíz.
Si existen varios nodos de tipo array en los datos de alerta, solo puede seleccionar uno de ellos para el procesamiento por lotes.
En la sección Map Source Fields to Target Fields, asigne los campos del origen de alertas 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 alertas se asigna directamente al campo de alerta correspondiente en ARMS.
Serie: puede usar delimitadores para concatenar varios campos del origen de alertas en un solo campo y luego asignar este campo al campo de alerta especificado en ARMS. Solo se permiten caracteres especiales como delimitadores.
Condicional: los campos especificados del origen de alertas se asignan a los campos de alerta de ARMS únicamente cuando los valores cumplen las condiciones definidas.
Tabla de asignación: la severidad del origen de alertas se asigna a la severidad de la alerta en ARMS. La tabla de asignación contiene únicamente el campo de severidad.
La siguiente tabla describe los campos de alerta de ARMS.
|
Campo de alerta |
Descripción |
|
alertname |
Nombre de la alerta personalizada. |
|
severity |
Nivel de severidad de la alerta. Debe configurar la asignación 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. La longitud máxima es de 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 verificación de la alerta. Ejemplos: CPU, JVM, Application Crash y Deployment. |
|
source |
Origen de la alerta. |
|
class |
Tipo de objeto que desencadena 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 con los detalles del evento. |
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. ARMS Alert Management le permite previsualizar los resultados de agrupación por deduplicación de datos históricos mostrados en la sección Event Mapping. Puede modificar los campos que se deduplicarán.
Solo puede configurar la deduplicación para eventos que no han sido borrados.
-
En la sección Event Deduplication de la página Integration Details, seleccione los campos que se utilizarán para la deduplicación.
Si varios eventos tienen el mismo valor en un campo especificado, se fusionan en una sola notificación de alerta.
-
Haga clic en Deduplication Test para previsualizar el grupo de alertas después de la deduplicación.
NotaLa prueba de deduplicación solo tiene efecto en los últimos 10 registros de datos cargados en la parte izquierda de la sección Event Mapping.
Una vez completada la configuración, haga clic en Save.
Consultar los detalles de un evento de alerta
En el panel de navegación izquierdo de la consola de ARMS, seleccione .
En la página Alert Event History, haga clic en el nombre del evento de alerta para consultar sus detalles. Para más información, consulte View alert event history.
Actualizar la clave de integración
En el panel de navegación izquierdo, seleccione . En la pestaña Alert Integration, puede realizar las siguientes operaciones en las integraciones que haya creado:
Consultar los detalles de una integración: localice la integración y haga clic en la fila correspondiente. En la página Integration Details, consulte la información detallada de la integración.
Para actualizar la clave de una integración, en la columna Actions situada a la derecha de la integración deseada, seleccione MoreUpdate Key. En el cuadro de diálogo que aparece, haga clic en Confirm.
Después de actualizar la clave, vuelva a configurar la instancia de Prometheus autogestionada con la nueva clave. Para más información, consulte Configure Prometheus.
Modificar una integración: localice 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 haga clic en Save.
Habilitar o deshabilitar una integración: localice la integración y haga clic en Disable o Enable en la columna Actions.
Eliminar una integración: localice 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: localice la integración y haga clic en Add Event Processing Flow en la columna Actions. Para más información, consulte Event processing flow.
Crear una directiva de notificación: localice la integración para la que 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 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 la directiva configurada. Para más información, consulte Notification policies. En la página Alert Sending History, puede consultar las alertas generadas conforme a la directiva de notificación establecida. Para más información, consulte View alert sending history.