This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Introducción
Si utilizas el software Jira para la gestión de proyectos, el desarrollo de software o el seguimiento de errores,
con las ediciones comerciales
puedes enviar notificaciones desde Checkmk a Jira y crear o actualizar incidencias allí.
Esto funciona con los productos Jira Work Management (antes Jira Core), Jira Software y Jira Service Management (antes Jira Service Desk).
Se admiten las siguientes opciones:
Crear incidencias para problemas de host y de servicio.
Crear incidencias con una prioridad definida.
Crear incidencias con una etiqueta definida.
Establecer enlaces a hosts/servicios en Checkmk desde los incidencias de Jira generadas.
Establecer una resolución en el ticket cuando se cumplan las condiciones de «OK».
Para configurar la conexión entre Checkmk y Jira, primero crea algunos campos nuevos en Jira y define algunos ID de Jira.
A continuación, configura el método de notificación para Jira en Checkmk, introduciendo los ID de Jira que has creado y leído. Ganarás más flexibilidad si también utilizas atributos de usuario personalizados. En lugar de introducir los ID de Jira directamente en el método de notificación, puedes definir algunos ID de Jira como atributos de usuario personalizados. Esto facilita a los usuarios individuales la creación de incidencias en diversos proyectos de JIRA.
2. Configuración de Jira
Al interactuar con Jira, Checkmk necesita saber qué notificaciones ya han creado un incidente y cuáles no. Para que esto sea posible, tienes que crear dos campos personalizados en Jira: uno para las notificaciones sobre incidencias de host y otro para las incidencias de servicio.
Para poder identificar correctamente las incidencias de host y de servicio, los ID de estas incidencias deben ser únicos. Esto es así si tu instancia de Jira recibe notificaciones de un solo sitio de Checkmk, ya que el core de monitorización de un sitio de Checkmk garantiza la unicidad. Ahora bien, en la monitorización distribuida, varios sitios de Checkmk pueden enviar notificaciones si se ha configurado la notificaciones descentralizadas. Si tu instancia de Jira recibe notificaciones de varios sitios de Checkmk, es muy probable que la unicidad se pierda, como muy tarde cuando el ID de un problema de host ya haya sido utilizado por otro sitio de Checkmk. En una configuración así, necesitas otro campo personalizado para el sitio de Checkmk con el que vuelva a ser posible una asignación única.
Para la configuración en Checkmk necesitas los ID de Jira de los campos personalizados que has creado, y además los de algunos otros campos, por lo que en total se requieren los siguientes:
ID del proyecto
ID del tipo de incidencia
ID de prioridad (opcional)
ID del campo personalizado del host
ID del campo personalizado del servicio
ID del campo personalizado del site (opcional)
ID de transición (Flujo de trabajo) (opcional)
La gran mayoría de estos ID se pueden leer usando el script que aparece a continuación a través de una de las API-REST de Jira. Los administradores de Jira también pueden recuperar los ID a través de la GUI de Jira, incluso aquellos ID que no se pueden recuperar a través de la API-REST y, por lo tanto, del script.
2.1. Configuración de los campos personalizados en Jira
Puedes aprender a crear campos personalizados en Jira en la documentación de Jira, incluida la asignación del campo a las llamadas pantallas de incidencias en Jira.
Al crear los campos necesarios para Checkmk, ten en cuenta los siguientes puntos relativos al tipo de campo. Puedes nombrar tus campos como quieras. Sin embargo, los nombres de los campos que se muestran en la siguiente tabla tienen una coincidencia con el script con el que puedes leer los ID de Jira en la siguiente sección: Determinación de los ID de Jira mediante un script externo.
| Campo personalizado | Tipo de campo | Nombre |
|---|---|---|
Campo personalizado de host |
|
|
Campo personalizado de servicio |
|
|
Campo personalizado del site (opcional) |
|
|
El tipo de campo « |
Asegúrate también de que el usuario de Jira que utiliza Checkmk para crear incidencias, es decir, el introducido en la regla de notificación de Checkmk, tenga acceso de lectura y escritura a estos campos personalizados.
2.2. Determinar los ID de Jira mediante un script externo
Puedes consultar los ID de forma conjunta con el siguiente script, que utiliza la API-REST de Jira.
Sustituye JIRA_USERNAME, JIRA_PASSWORD, PROJECT_KEY y https://jira.server.your-domain.de por tus valores correspondientes.
También puedes obtener el PROJECT_KEY desde la GUI de Jira sin necesidad de derechos de administrador.
Si utilizas un producto de Jira Cloud, el script no se autentifica con una contraseña, sino con un token de API.
Encontrarás información general e instrucciones para crear un token de API en la documentación de Jira.
En Jira, puedes copiar el token de API generado al portapapeles y pegarlo en el siguiente script como |
El resultado del script tendrá un aspecto similar a este:
=== IDs for project MY_PROJECT ===
10401
=== Issue types
Test case: 10600
Epic: 10000
Task: 10003
Sub-task: 10004
Bug: 10006
Story: 10001
Feedback: 10200
New Feature: 10005
Support: 10500
Improvement: 10002
=== Priority types
Blocker: 1
High: 2
Medium: 3
Low: 4
Lowest: 5
Informational: 10000
Critical impact: 10101
Significant impact: 10102
Limited impact: 10103
Minimal impact: 10104
=== Field types
CMK_HOST_FIELD: 11400
CMK_SVC_FIELD: 11401
CMK_SITE_FIELD: 114032.3. Determinar los ID de Jira mediante la GUI
Como alternativa a ejecutar scripts, también puedes leer los ID a través de la GUI de Jira, pero para ello necesitas iniciar sesión en Jira con una cuenta de administrador. Atlassian, el fabricante de Jira, ha descrito este procedimiento utilizando el ejemplo del ID del proyecto en sus propias instrucciones.
Los ID de los demás campos y tipos de incidencias se pueden leer editando el elemento correspondiente en la GUI del administrador de Jira. El ID suele ser entonces el último valor que aparece en la barra de direcciones de tu navegador.
3. Configuración de Checkmk
Ya has aprendido cómo configurar las notificaciones de Checkmk en general en el artículo sobre notificaciones.
Para usar las notificaciones de Jira, haz lo siguiente en Checkmk:
-
Si quieres usar atributos de usuario personalizados, puedes crearlos para los siguientes ID de Jira: ID del proyecto (
jiraproject), ID del tipo de incidencia (jiraissuetype), ID de prioridad (jirapriority) e ID de transición (jiraresolution). Los nombres que introduzcas como «Name» de un atributo se muestran entre corchetes. Crea un atributo de usuario personalizado con Setup > Users > Custom user attributes > Add attribute:
Asegúrate de que la checkbox «Make this variable available in notifications » esté marcada para todos estos atributos de usuario personalizados creados para Jira.
En las propiedades de un usuario, puedes introducir en estos atributos los ID de Jira de los que es responsable este usuario.
Para cada atributo de usuario personalizado, deja vacío el campo del ID de Jira asociado en la regla de notificación que se crea en los siguientes pasos. Estos campos se rellenan entonces con los atributos de usuario personalizados. -
Crea nuevos parámetros para Jira con Setup > Events > Notifications > Parameters for notification methods > Parameters for Jira > Add parameter.

En el campo JIRA URL, introduce la URL de tu instancia de Jira, por ejemplo,
jira.server.your-domain.com.En el área «Authentication», almacenas los datos de acceso de la cuenta de Jira: nombre de usuario/contraseña o token para los productos de Jira Cloud.
Para Project ID y Issue type ID necesitas los identificadores identificados previamente en Jira; en el ejemplo, «10401» para el identificador del proyecto y «10006» para el tipo de incidencia «Bug».
Para Host custom field ID, Service custom field ID y (opcionalmente) Site custom field ID, introduce los ID de los campos personalizados que hayas creado en Jira.
Para poder enlazar directamente a Checkmk desde cualquier incidencia generada, en Monitoring URL introduce la URL de tu site de Checkmk, por ejemplo:
https://mycmkserver/mysite/, donde es importante incluir la barra al final (/).
Entre otras cosas, también tienes las siguientes opciones de configuración:
Con la opción «Priority ID» puedes definir con qué prioridad se crean los incidencias en Jira. Aquí puedes introducir uno de los «tipos de prioridad» que se leen en el script, del «1» al «5».
Puedes modificar las descripciones que se crean para los problemas de host y de servicio en las incidencias mediante las opciones «Summary for host notifications» y «Summary for service notifications».
Puedes usar la opción Label para definir si quieres pasar etiquetas al crear incidencias en Jira. Si activas Etiqueta sin introducir un valor, se establecerá
monitoring.
Checkmk escribe el valor de la etiqueta en el campo «labels» de Jira, lo cual solo funciona si este campo existe en tu aplicación de Jira, como es el caso de Jira Software, pero no de Jira Service Desk, por ejemplo.Attach graphs Añade gráficos relacionados con el estado actual a los nuevos incidencias.
Si además quieres que se introduzca un ID de incidencia (Resolution) en la incidencia de Jira al notificar un cambio de estado a «OK» en Checkmk, puedes definirlo en «Activate resolution with following resolution transition ID».
Para poder determinar el ID correcto aquí, también necesitas derechos de administrador en Jira. Vuelve al área «Issues» y haz clic en «Workflows». A continuación, haz clic en «View» en la fila del Flujo de trabajo estándar del proyecto de Jira que estés utilizando. Si ahora ves un diagrama de flujo, cambia la vista haciendo clic en «Text». Podrás leer el ID deseado en la columna «Transitions (id)».Con «Set optional timeout for connections to JIRA» puedes configurar el timeout para las conexiones a Jira. Si no introduces nada aquí, se aplicará el valor por defecto de 10 segundos.
Cuando utilices la siguiente caja «Contact selection», ten en cuenta los siguientes puntos:
Al seleccionar contactos, asegúrate de que las notificaciones solo se envíen a un contacto, por ejemplo, seleccionando un único usuario. Con los métodos de notificación para sistemas de tickets, etc., la selección de contactos solo sirve para especificar que se envíen notificaciones. Sin embargo, las notificaciones no se envían al usuario seleccionado, sino al sistema de tickets. Ten en cuenta que una selección de contactos a través de grupos de contacto, todos los contactos de un objeto o similares suele generar varias notificaciones idénticas para un evento, que luego terminan en el sistema de tickets dos, tres o incluso más veces.
Si se cumple el primer punto, pero el usuario se utiliza en varias reglas de notificación para el mismo método, solo se aplica la última regla en cada caso. Por lo tanto, es recomendable crear un usuario funcional independiente para cada una de estas reglas de notificación.
El tema de la selección de contactos es algo diferente cuando se utilizan atributos de usuario personalizados, ya que el objetivo es asignar diferentes ID de Jira a diferentes usuarios. Por lo tanto, en este caso, normalmente querrás informar a varios contactos, concretamente a aquellos usuarios a los que hayas asignado los atributos personalizados. Si estos usuarios utilizan diferentes ID de Jira, no se generarán notificaciones idénticas.
Puedes averiguar cómo probar el nuevo método de notificación en el artículo sobre reglas de notificación.
4. Opciones de diagnóstico
Si no llegan tickets a Jira después de configurar la regla de notificación en Checkmk, revisa el archivo de registro asociado ~/var/log/notify.log.
Jira suele mostrar mensajes de error bastante útiles aquí, que pueden ayudarte a diagnosticar el problema.
A continuación te mostramos una lista de ejemplos.
Mensaje de error: No se puede crear el ticket, código de respuesta de JIRA 400, no se puede configurar el campo «labels».
Es posible que tu producto Jira no tenga etiquetas. Simplemente desactiva el uso de etiquetas en tu regla de notificación en Checkmk desmarcando «Label».
Mensaje de error: No se puede crear el ticket, código de respuesta de JIRA 400, «se requiere el proyecto».
Este mensaje de error indica que el ID que has introducido en la regla de notificación para el campo en cuestión (en este caso: ID del proyecto) es incorrecto.
Mensaje de error: No se puede resolver https://jira.server.your-domain.de/browse/ISSUE-123, código de respuesta de JIRA 500, «Error interno del servidor».
Si recibes este mensaje de error cuando Checkmk debería cerrar automáticamente un ticket en Jira, o cambiarlo a otro estado, esto puede indicar que el ID de transición que has introducido no es correcto. El ID de transición se encuentra en la regla de notificación, en el campo «Activate resolution with following resolution transition ID». Por regla general, deberías volver a comparar este ID con la interfaz web de Jira.
