Puedes configurar una política de alertas para que te notifique cada vez que aparezca un mensaje específico en los registros incluidos. Por ejemplo, si deseas saber cuándo un registro de auditoría registra un mensaje de acceso a los datos en particular, puedes recibir una notificación cuando aparezca el mensaje. Estos tipos de políticas de alertas se denominan políticas de alertas basadas en registros. En este documento, se describe cómo realizar las siguientes acciones con la consola de Google Cloud y la API de Cloud Monitoring:
- Crear y probar una política de alertas basada en registros
- Edita una política de alertas basada en registros.
- Borrar una política de alertas basada en registros.
Antes de comenzar
Revisa la comparación de alertas para determinar si las políticas de alertas basadas en registros son adecuadas para los datos de tus registros. Por ejemplo:
Las políticas de alertas basadas en registros no funcionan en registros excluidos.
No puedes usar políticas de alertas basadas en registros para obtener recuentos de tus registros. Para obtener recuentos, debes usar métricas basadas en registros.
Para crear y administrar políticas de alertas basadas en registros, tu rol de Identity and Access Management debe incluir los permisos que se describen en Permisos para políticas de alertas basadas en registros.
Crea una política de alertas basada en registros con el Explorador de registros
Puedes crear una política de alertas basada en registros desde la página Explorador de registros en la consola de Google Cloud o mediante la API de Monitoring. En esta sección, se describe cómo crear políticas de alertas basadas en registros con el Explorador de registros. Para obtener información sobre la API de Monitoring, consulta Crea una política de alertas basada en registros con la API de Monitoring.
La interfaz del Explorador de registros te guía a través de los siguientes pasos:
- Proporciona un nombre y una descripción para la política de alertas.
- Elige los registros para los que quieres recibir notificaciones.
- Establece el tiempo entre notificaciones.
- Establece la hora del cierre automático de los incidentes.
- Especifica a quién notificar.
Por ejemplo, supongamos que tienes una aplicación que escribe una entrada de registro syslog
con gravedad NOTICE
cuando cambia una dirección de red.
Las entradas de registro de los cambios de dirección de red incluyen una carga útil de JSON que se ve de la siguiente manera:
"jsonPayload": { "type": "Configuration change", "action": "Set network address", "result": "IP_ADDRESS", }
Quieres crear una política de alertas basada en registros que te notifique cuando una dirección IPv4 no válida aparezca en el campo jsonPayload.result
de entradas de registro en syslog
con gravedad NOTICE
.
Para crear esta política de alertas, sigue estos pasos:
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
Usa el panel Consulta para compilar una consulta que coincida con el mensaje que deseas usar en tu política de alertas basada en registros.
Por ejemplo, para encontrar entradas de registro con un nivel de gravedad de
NOTICE
en el registrosyslog
que tengan direcciones IP no válidas en la carga útil de JSON, puedes usar la siguiente consulta:log_id("syslog") severity = "NOTICE" jsonPayload.result !~ "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}$"
Haz clic en Ejecutar consulta para validar la consulta.
En la barra de herramientas Resultados de la consulta, expande el menú Acciones y selecciona add_alert Crear alerta de registro.
En el panel Detalles de la alerta, asigna un nombre y una descripción a la política de alertas:
Ingresa un nombre para la política de alertas en el campo Nombre de la política de alertas. Por ejemplo: “Dirección de red: valor IPv4 no válido”.
Selecciona una opción del menú Nivel de gravedad de la política. Los incidentes y las notificaciones muestran el nivel de gravedad.
Ingresa una descripción para la política de alertas. También puedes incluir información que pueda ayudar al destinatario de una notificación a diagnosticar el problema. La siguiente cadena resume el motivo de la notificación:
Log-based alerting policy in project ${project} detected an invalid IPv4 value.
Para obtener información sobre cómo puedes dar formato y adaptar el contenido de este campo, consulta Cómo usar Markdown y variables en plantillas de documentación.
Para avanzar al paso siguiente, haz clic en Siguiente.
En el panel Elegir registros para incluir en el alerta, haz clic en Obtener vista previa de los registros para verificar la consulta y los resultados.
Recomendamos compilar la consulta en el panel Consulta del Explorador de registros. La consulta que creaste en el panel Consulta también se muestra en este panel, por ejemplo:
log_id("syslog") severity = "NOTICE" jsonPayload.result !~ "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}$"
Si es necesario, puedes editar la consulta en este panel. Si editas la consulta, haz clic en Obtener vista previa de los registros para verificar los resultados.
Haz clic en Siguiente.
Selecciona el tiempo mínimo entre notificaciones. Este valor te permite controlar la cantidad de notificaciones que recibes de la supervisión si se cumple esta condición varias veces. En este ejemplo, selecciona 5 min de las opciones.
Opcional: Selecciona la duración del cierre automático de incidentes. De forma predeterminada, la duración del cierre automático de incidentes se establece en 7 días.
Haz clic en Siguiente.
Selecciona uno o más canales de notificaciones para tu política de alertas. Para este ejemplo, selecciona un canal de notificaciones por correo electrónico.
Si ya tienes configurado un canal de notificaciones por correo electrónico, puedes seleccionarlo de la lista. Si no es así, haz clic en Administrar canales de notificaciones y agrega un canal de correo electrónico. Para obtener información sobre cómo crear canales de notificaciones, consulta Cómo crear y administrar canales de notificaciones.
Haz clic en Guardar.
Tu política de alertas basada en registros ya está lista para probarse.
Prueba el ejemplo de política de alertas basada en registros
Para probar la política de alertas que creaste, puedes escribir de forma manual una entrada de registro que coincida con la consulta. Para escribir la entrada de registro, haz lo siguiente:
Para configurar la siguiente entrada de registro, cambia la variable
PROJECT_ID
a tu ID del proyecto:{ "entries": [ { "logName": "projects/PROJECT_ID/logs/syslog", "jsonPayload": { "type": "Configuration change", "action": "Set network address", "result": "999.027.405.1", }, "severity": "NOTICE", "resource": { "type": "generic_task", "labels" : { "project_id": "PROJECT_ID", "location": "us-east1", "namespace": "fake-task-2", "job": "write-log-entry", "task_id": "11", }, }, }, ], }
Ve a la página de referencia de
logEntries.write
o haz clic en el siguiente botón:Copia la entrada de registro que configuraste anteriormente.
En el panel Probar esta API, haz lo siguiente:
Reemplaza el contenido del campo Request body en el explorador de APIs por la entrada de registro que copiaste en el paso anterior.
Haz clic en Ejecutar. Si se te solicita, sigue el flujo de autenticación.
Si la llamada a
logEntries.write
se realiza correctamente, obtienes un código de respuesta HTTP200
y un cuerpo de respuesta vacío,{}
. Para obtener más información sobre el Explorador de APIs, consulta Cómo usar el Explorador de APIs en la documentación de supervisión. El Explorador de APIs funciona de la misma manera con la API de Logging.
La entrada de registro coincide con el filtro especificado para la política de alertas de las siguientes maneras:
- El valor
logName
especifica el registrosyslog
que se encuentra en tu proyecto de Google Cloud. - El valor de
severity
para esta entrada de registro esNOTICE
. - El valor de
jsonPayload.result
no es una dirección IPv4 válida.
Después de escribir la entrada de registro, se produce la siguiente secuencia:
- La nueva entrada de registro aparecerá en el Explorador de registros. La entrada de registro cumple con la condición de la política de alertas.
- Se abre un incidente en Cloud Monitoring.
Recibirás una notificación sobre el incidente. Si configuraste un canal de notificaciones por correo electrónico, la notificación se verá como en la siguiente captura de pantalla:
Puedes hacer clic en Ver incidente en el correo electrónico para ver el incidente en Cloud Monitoring. Si deseas obtener más información sobre los incidentes, consulta Administra los incidentes de políticas de alertas basadas en registros.
Otras situaciones: Alertas en los registros de auditoría
El ejemplo de la sección titulada Cómo crear una política de alertas basada en registros es artificial. Por lo general, no se crea una política de alertas y, luego, se escriben manualmente entradas de registro que cumplan con la condición de la política de alertas. Por lo general, las entradas de registro las escriben aplicaciones o algún otro servicio. Sin embargo, la fuente de las entradas de registro no importa. Para las políticas de alertas basadas en registros, lo que importa es la consulta que usas para seleccionar las entradas de registro.
En las siguientes secciones, se describen situaciones realistas para las políticas de alertasbasadas en registros según el contenido de los registros de auditoría. En cada situación, se muestra cómo crear una consulta que seleccione las entradas de registro de auditoría adecuadas. De lo contrario, el procedimiento para crear las políticas de alertas basadas en registros es el mismo que se muestra en Cómo crear una alerta basada en registros.
Políticas de alertas que supervisan el acceso manual a los Secrets
Supongamos que tu proyecto almacena secretos en Secret Manager y que algunos de estos secretos solo están destinados a que los usen las cuentas de servicio. Excepto en circunstancias inusuales, los usuarios humanos nunca acceden a estos secretos.
Si habilitaste los registros de auditoría para Secret Manager, cada intento exitoso de acceso a un secreto crea una entrada de registro de auditoría. Cada entrada incluye el nombre del secreto y la identidad del llamador.
Puedes crear una política de alertas basada en registros que te notifique cuando un usuario humano acceda a un secreto.
A continuación, se muestra un extracto de una entrada de registro de auditoría que escribió Secret Manager. En el extracto, se muestran los campos que son útiles para crear la consulta de una alerta basada en registros:
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "serviceName": "secretmanager.googleapis.com", "methodName": "google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion", "authenticationInfo": { "principalEmail": "my-svc-account@PROJECT_ID.iam.gserviceaccount.com", "serviceAccountDelegationInfo": [], "principalSubject": "serviceAccount:my-svc-account@PROJECT_ID.iam.gserviceaccount.com" }, ... }, ... }
Los siguientes subcampos de protoPayload
son de especial interés:
@type
: Indica que esta entrada de registro es una entrada de registro de auditoría.serviceName
: Registra el servicio que escribió la entrada de registro de auditoría. Usa este campo para identificar las entradas que escribió Secret Manager.methodName
: Identifica el método para el que se escribió esta entrada de registro de auditoría. Usa este campo para identificar la acción que causó la creación de esta entrada. En este ejemplo, es el métodoAccessSecretVersion
.authenticationInfo.principalEmail
: Registra la cuenta que invocó el método en el campomethodName
. El valor esperado para este campo es una cuenta de servicio, que termina congserviceaccount.com
.
Para encontrar entradas de registro de acceso a secretos por parte de un usuario humano, busca entradas de registro de auditoría escritas por Secret Manager. Quieres encontrar las entradas de registro en las que un principal que no termina en gserviceaccount.com
invocó el método AccessSecretVersion
.
La siguiente consulta aísla estas entradas de registro:
protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog" protoPayload.serviceName = "secretmanager.googleapis.com" protoPayload.methodName =~ "AccessSecretVersion$" protoPayload.authenticationInfo.principalEmail !~ "gserviceaccount.com$"
Para crear una política de alertas basada en registros para el acceso humano a secretos, usa esta consulta en el panel Choose logs to include in the alert.
Políticas de alertas que supervisan eventos de desencriptación
El análisis del ejemplo anterior se puede adaptar a otros servicios. Por ejemplo, si usas Cloud Key Management Service para encriptar y desencriptar datos sensibles, puedes usar los registros de auditoría que genera Cloud KMS para detectar cuándo un usuario humano desencripta un valor.
Para encontrar entradas de registro de la desencriptación que realiza un usuario humano, busca entradas de registro de auditoría escritas por Cloud KMS. Quieres encontrar las entradas de registro en las que un principal que no termina con gserviceaccount.com
invocó el método Decrypt
, lo que indica una cuenta de servicio.
La siguiente consulta aísla estas entradas de registro:
protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog" protoPayload.serviceName = "cloudkms.googleapis.com" protoPayload.methodName = "Decrypt" protoPayload.authenticationInfo.principalEmail !~ "gserviceaccount.com$"
Para crear una política de alertas basada en registros para la desencriptación que realiza un usuario humano, usa esta consulta en el panel Elige registros para incluir en la alerta.
Administra las políticas de alertas basadas en registros en Monitoring
Puedes ver, editar y borrar políticas de alertas basadas en registros con la consola de Google Cloud para Monitoring o con la API de Monitoring. En este documento, se describe cómo administrar las políticas de alertas con la consola de Google Cloud. Para obtener información sobre el uso de la API de Monitoring para administrar políticas de alertas, consulta Administra las políticas de alertas con la API.
Para ver una lista de todas las políticas de alertas de tu proyecto de Google Cloud, haz lo siguiente:
Para navegar desde Logging, sigue estos pasos:
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En la barra de herramientas Resultados de la consulta, expande el menú Acciones y selecciona edit Administrar alertas de registro.
-
Para navegar desde Monitoring, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página notifications Alertas.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
Para ver todas las políticas y habilitar el filtrado, en el panel Políticas, haz clic en Ver todas las políticas.
-
Ambas acciones te dirigen a la página Políticas de Monitoring, en la que se enumeran todas las políticas de alertas de tu proyecto de Google Cloud.
A fin de restringir las políticas de alertas que se enumeran, agrega filtros.
Cada filtro se compone de un nombre y un valor. Por ejemplo, puedes establecer que el valor sea una coincidencia exacta para un nombre de política o una coincidencia parcial. Las coincidencias no distinguen mayúsculas de minúsculas.
Si especificas varios filtros, estos se unen de manera implícita con un AND
lógico, a menos que insertes un filtro OR
.
En la siguiente captura de pantalla, se enumeran las políticas de alertas que están habilitadas y que se crearon después del 1 de enero de 2021:
Desde la página Políticas, puedes editar, borrar, copiar, habilitar o inhabilitar una política de alertas:
Para editar o copiar una política, haz clic en more_vert Más opciones y selecciona una opción. Editar y copiar una política es similar al procedimiento que se describe en Crea una política de alertas basada en registros. Puedes cambiar y, en algunos casos, borrar los valores en los campos. Cuando termines, haz clic en Guardar.
También puedes editar una política de alertas basada en registros haciendo clic en su nombre en la lista de políticas.
Para borrar una política, haz clic en Más opciones more_vert y selecciona Borrar. En el diálogo de confirmación, selecciona Borrar.
Para habilitar o inhabilitar la política de alertas, haz clic en el botón de activación ubicado bajo el encabezado Habilitado (Enabled).
Crea una política de alertas basada en registros con la API de Monitoring
Puedes crear políticas de alertas basadas en registros mediante la API de Monitoring. Proporcionas la misma información a la API de Monitoring que la que proporcionas cuando usas el Explorador de registros en la consola de Google Cloud:
- Un nombre y una descripción para la política de alertas.
- Los registros para los que quieres recibir notificaciones.
- Es el tiempo entre notificaciones.
- Es la hora del cierre automático de los incidentes.
- A quién notificar.
Para crear políticas de alertas con la API de Monitoring, debes crear un objeto AlertPolicy
y enviarlo al método alertPolicies.create
.
Para poder usar la API de Monitoring, primero debes habilitarla y tener autorización para usarla. Para obtener más información, consulta la siguiente documentación:
Estructura de las políticas de alertas
La API de Monitoring representa una política de alertas con la estructura AlertPolicy
.
La estructura AlertPolicy
tiene varias estructuras incorporadas, incluida una descripción de la condición de la política de alertas. Las políticas de alertasbasadas en registros difieren de las políticas de alertas basadas en métricas de las siguientes maneras:
- Para describir la condición, usa el tipo de condición
LogMatch
. Las políticas de alertas basadas en métricas usan diferentes tipos de condiciones. - Una política de alertas basada en registros solo puede tener una condición.
- Para especificar el tiempo entre las notificaciones y el período de cierre automático de incidentes, incluye una estructura
AlertStrategy
. Las políticas de alertas basadas en métricas no incluyen un tiempo entre notificaciones.
En esta sección, se describe cómo crear una política de alertas basada en registros. Estas políticas difieren de las políticas de alertas basadas en métricas en el tipo de condición que usas. Para las políticas de alertas basadas en registros,
el tipo de condición es LogMatch
. Cuando usas la API de Monitoring para administrar políticas de alertas, no hay diferencias en la forma en que enumeras, editas o borras las políticas basadas en métricas y registros.
En Administra las políticas de alertas con la API, se describe cómo crear, enumerar, editar y borrar políticas de alertas con la API de Monitoring.
Reglas de notificación
Cuando creas una política de alertas basada en registros, el registro crea un objeto interno llamado regla de notificación. El registro usa la regla de notificación para hacer coincidir las entradas de registro entrantes con el filtro de tu política de alertas y, luego, crear una notificación cuando una entrada coincida con los criterios del filtro. No interactúas directamente con la regla de notificaciones. Sin embargo, para crear una política de alertas basada en registros, debes tener el permiso logging.notificationRules.create
.
Diseña la política de alertas
En la sección titulada
Crea una política de alertas basada en registros mediante el Explorador de registros,
se describe una forma de crear una política de alertas basada en registros.
En esa sección, se muestra cómo crear una política de alertas basada en registros que te notifique cuando una entrada de registro syslog
tenga un nivel de gravedad NOTICE
y una dirección IPv4 no válida en el campo jsonPayload.result
.
Para crear la misma política de alertas basada en registros con la API de Monitoring, debes crear un objeto AlertPolicy
que se vea como la siguiente estructura JSON:
{ "displayName": "Network address: invalid IPv4 value (API)", "documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value.", "mimeType": "text/markdown" }, "conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\") severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\"", }, } ], "combiner": "OR", "alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "604800s", }, "notificationChannels": [ "projects/PROJECT_ID/notificationChannels/CHANNEL_ID" ] }
Este código JSON especifica la misma información que especificas
cuando creas una política de alertas basada en registros con el Explorador de registros. En las siguientes
secciones, se asigna el contenido de esta estructura AlertPolicy
a los pasos que
sigues cuando usas el Explorador de registros para crear una alerta basada en registros. El valor del campo conditionMatchedLog
es una estructura LogMatch
.
Proporciona un nombre y una descripción
Una política de alertas tiene un nombre visible y documentación asociada que se proporciona con notificaciones para ayudar a los responsables. En el Explorador de registros, estos campos se denominan Nombre de la alerta y Descripción de la alerta. Representa estos valores en una estructura AlertPolicy
de la siguiente manera:
{ "displayName": "Network address: invalid IPv4 value (API)", "documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value.", "mimeType": "text/markdown" }, ... }
En este ejemplo, el valor de displayName
incluye “(API)” para que puedas distinguir entre las dos políticas de ejemplo cuando veas la lista de políticas en la consola de Google Cloud. En la página Políticas de supervisión, se enumeran las políticas por nombre visible y se indica si se basan en métricas o registros. Para obtener más información, consulta Administra políticas de alertas basadas en registros en Monitoring.
El campo documentation
incluye, en el subcampo content
, la descripción que podrías proporcionar cuando usas el Explorador de registros. El segundo subcampo, mimeType
, es obligatorio cuando especificas un valor para el campo documentation
.
El único valor válido es "text/markdown"
.
Elige los registros para los que quieres recibir notificaciones
Una política de alertas basada en registros tiene una sola condición. En el Explorador de registros,
especificas la condición cuando proporcionas una consulta en el campo Define las entradas de registro sobre las que alertar. Representa estos valores en una estructura AlertPolicy
de la siguiente manera:
{ ... "conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\" severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\"", }, } ], "combiner": "OR", ... }
El campo conditions
toma una lista de estructuras Condition
, aunque una política de alertas basada en registros solo debe tener una condición. Cada Condition
tiene un nombre visible y una descripción de la condición.
El valor del campo
displayName
es una descripción breve de la condición. Cuando usas el Explorador de registros para crear políticas de alertas basadas en registros, el nombre visible siempre es “Condición de coincidencia de registro”. Cuando usas la API de Monitoring, puedes proporcionar un nombre visible más preciso. Es obligatorio ingresar un valor.El valor del campo
conditionMatchedLog
es una estructuraLogMatch
, y el valor del campofilter
es la consulta que especificas en el Visor de registros. Debido a que esta consulta se proporciona como el valor de un campo JSON, la consulta completa aparece entre comillas, y las comillas de la consulta deben escaparse con el carácter\
(barra invertida).La estructura
LogMatch
también incluye un campolabelExtractors
opcional. Puedes usar extractores de etiquetas para crear etiquetas personalizadas a partir de tus entradas de registro y, luego, hacer referencia a esas etiquetas en tus notificaciones.Por ejemplo, para extraer el valor de la etiqueta
labels."compute.googleapis.com/resource_id"
de tu entrada de registro en una etiqueta llamadavm_identifier
, la condición anterior podría verse de la siguiente manera:"conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\" severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\")", "labelExtractors": { "vm_identifier": "EXTRACT(labels.\"compute.googleapis.com/resource_id\")" } }, } ],
Usa la función
EXTRACT
para hacer coincidir todo el valor o usaREGEXP_EXTRACT
para hacer coincidir substrings basadas en expresiones regulares. Estas son las mismas funciones que se usan para la extracción de etiquetas en las métricas basadas en registros. Consulta Cómo crear una etiqueta para obtener más información.Puedes usar estas etiquetas extraídas en la documentación de la política de alertas para que se informen en las notificaciones. En el campo
documentation
de tu política de alertas, puedes hacer referencia a las etiquetas extraídas con una variable del formato${log.extracted_label.KEY}
, en la que KEY es el nombre que le asignaste a la etiqueta extraída.En el siguiente ejemplo, se muestra cómo hacer referencia a la clave de la etiqueta extraída
vm_identifier
, de modo que el valor de la etiqueta de registrolabels."compute.googleapis.com/resource_id"
se incluya en las notificaciones:"documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value on VM with ID ${log.extracted_label.vm_identifier}.", "mimeType": "text/markdown" },
El valor del campo combiner
especifica cómo combinar los resultados de varias condiciones en las políticas de alertas basadas en métricas. Solo puedes usar una
condición en las políticas de alertas basadas en registros,
y debes especificar el campo combiner
con
el valor "OR"
. No puedes crear políticas de alertas basadas en registros
con varias condiciones.
Establece valores de notificación y cierre automático
Una política de alertas basada en registros especifica el tiempo mínimo entre notificaciones. En el explorador de registros, selecciona un valor del menú Tiempo entre notificaciones.
Para representar este valor en una estructura AlertPolicy
, especifica un valor, en segundos, para el campo period
de una estructura NotificationRateLimit
incorporada en una estructura AlertStrategy
.
Del mismo modo, la política de alertas incluye el período para cerrar incidentes automáticamente. El valor predeterminado es de 7 días.
En el explorador de registros, puedes seleccionar un valor diferente en el menú Duración del cierre automático de incidentes. La opción corresponde al campo autoclose
en la estructura de la API de AlertStrategy
.
Cuando uses este campo, especifica el valor en segundos. El valor mínimo es de 1,800 segundos o 30 minutos.
{ ... "alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "604800s", }, ... }
El valor del campo period
en este ejemplo, 300s
, equivale a 5 minutos. El valor de autoclose
, 604800s
, equivale a 7 días.
Especifica a quién notificar
Una política de alertas puede incluir una lista de canales de notificación.
En el explorador de registros, puedes seleccionar canales desde un menú.
Para representar estos valores en una estructura AlertPolicy
, proporciona una lista de uno o más nombres de recursos para los objetos NotificationChannel
configurados:
{ ... "notificationChannels": [ "projects/PROJECT_ID/notificationChannels/CHANNEL_ID" ] }
Cuando creas un canal de notificaciones, se le asigna un nombre de recurso. Para obtener información sobre cómo recuperar la lista de canales de notificaciones disponibles, que incluye sus nombres de recursos, consulta Cómo recuperar canales en la documentación de Supervisión. No puedes obtener los IDs de canal con la console de Google Cloud.
Envía tu política de alertas a la API de Monitoring
Para crear una política de alertas con la API de Monitoring, debes crear un objeto AlertPolicy
y enviarlo al método alertPolicies.create
. Puedes invocar
alertPolicies.create
con Google Cloud CLI,
llamando directamente a la API de Monitoring.
También puedes crear políticas de alertas basadas en registros
mediante las bibliotecas cliente para
C#, Go, Java, Python y Ruby. También es posible que puedas usar otras bibliotecas cliente. La biblioteca de tu idioma debe incluir el tipo de condición LogMatch
.
Para crear una política de alertas con gcloud CLI, haz lo siguiente:
Coloca la representación JSON de tu política de alertas en un archivo de texto, por ejemplo, en un archivo llamado
alert-invalid-ip.json
.Pasa este archivo JSON a gcloud CLI con el siguiente comando:
gcloud alpha monitoring policies create --policy-from-file="alert-invalid-ip.json"
Si funciona, este comando muestra el nombre de la política nueva, por ejemplo:
Created alerting policy [projects/PROJECT_ID/alertPolicies/POLICY_ID].
Para crear una política de alertas llamando directamente a alertPolicies.create
, puedes usar la herramienta del Explorador de APIs de la siguiente manera:
Ve a la página de referencia de
alertPolicies.create
.En el panel Probar esta API, haz lo siguiente:
En el campo
name
, ingresa el siguiente valor:projects/PROJECT_ID
Copia la representación JSON de tu política de alertas y reemplaza el contenido del campo Cuerpo de la solicitud en el Explorador de APIs por la política de alertas copiada.
Haz clic en Ejecutar.
Si la llamada a
alertPolicies.create
se realiza correctamente, obtienes un código de respuesta HTTP200
y un cuerpo de respuesta vacío,{}
. Para obtener más información sobre el Explorador de APIs, consulta Cómo usar el Explorador de APIs en la documentación de supervisión.
Para obtener más información sobre cómo crear políticas de alertas con la API de Monitoring, consulta Crea políticas. En los ejemplos de ese documento, se usan tipos de condiciones para las políticas de alertas basadas en métricas, pero los principios son los mismos.
Prueba la política de alertas
Para probar tu nueva política de alertas, puedes usar el mismo procedimiento que se describe en Cómo probar la alerta basada en registros de ejemplo.
Ejemplo: Crea una política de alertas cuando una entrada de registro contiene una cadena de texto
En este ejemplo, se usa la consola de Google Cloud para crear una política de alertas, el Explorador de registros para ver las entradas de registro y Google Cloud CLI para escribir una entrada de registro:
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En el panel Consulta, ingresa la siguiente consulta después de actualizar el valor de PROJECT_ID:
logName="projects/PROJECT_ID/logs/test-log" textPayload:"Oops"
La consulta busca en el registro con el nombre
test-log
entradas de registro que tengan un campotextPayload
que contenga la cadena "Oops".En la barra de herramientas Resultados de la consulta, expande el menú Acciones y selecciona add_alert Crear alerta de registro. Luego, completa el diálogo.
Debes ingresar un nombre para la política, como
Alert on Oops
. La consulta que ingresaste en el paso anterior se incluye automáticamente en la política de alertas.Para probar la política de alertas, abre Cloud Shell y, luego, ejecuta el siguiente comando:
gcloud logging write test-log --severity=ERROR --payload-type=text 'This log entry contains Oops'
El comando anterior escribe una entrada en el registro llamado
test-log
. La entrada tiene un nivel de gravedad deERROR
y, además, incluye un campotextPayload
.En el Explorador de registros, haz clic en Ejecutar consulta.
Después de que se actualice la pantalla, podrás ver los detalles de la entrada de registro que escribiste en el paso anterior.
-
En la consola de Google Cloud, ve a la página notifications Alertas.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
En el panel Incidentes, se muestra el incidente y los detalles de la política de alertas.
Si no ves un incidente cuando abres la página Alertas, espera unos minutos y, luego, actualiza la página.
No verás otro incidente ni recibirás otra notificación si repites el comando de Google Cloud CLI de inmediato. La configuración de la política de alertas especifica el período mínimo entre incidentes. Puedes ver y cambiar esos parámetros de configuración si editas la política.