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
En este artículo te explicaremos todo lo que hay que saber sobre la gestión de usuarios en Checkmk. Pero antes de entrar en detalles, tenemos que aclarar algunos conceptos.
En Checkmk, un usuario es alguien que tiene acceso a la interfaz de usuario. Un usuario tiene uno o más roles. Estos roles son la base de los permisos.
En cuanto un usuario es responsable de hosts y servicios específicos, se le identifica como contacto. Normalmente, un contacto solo ve sus propios hosts y servicios en el entorno de monitorización y puede recibir notificaciones sobre cualquier problema relacionado con ellos.
También hay usuarios que no son contactos.
Un ejemplo de esto es cmkadmin, que se genera automáticamente al crear un site.
A este usuario se le permite ver todos los hosts y servicios, pero solo porque el rol Administrator contiene el permiso See all hosts and services, y no necesariamente porque sea un contacto para todo.
Si se ha creado un contacto con el único propósito de recibir notificaciones (por ejemplo, para reenviar notificaciones a un sistema de tickets), puede ser útil configurarlo de tal manera que no sea posible realizar el inicio de sesión en la interfaz.
Un contacto siempre es miembro de uno o más grupos de contactos.
El propósito de estos grupos de contacto es asignar contactos a hosts y servicios.
Por ejemplo, el contacto hhirsch podría estar en el grupo de contactos linux y este, a su vez, podría asignarse a todos los hosts Linux mediante una regla.
No es posible asignar contactos directamente a hosts o servicios y, de hecho, podría crear dificultades en la práctica (por ejemplo, cuando un usuario abandona la organización).
En resumen:
Los usuarios pueden utilizar la interfaz de usuario.
Los contactos son usuarios responsables de hosts y servicios específicos.
Los grupos de contacto definen de qué es responsable un usuario.
Los roles definen de qué permisos dispone un usuario.
2. Gestión de usuarios en el entorno de configuración
2.1. Vista general
La página de gestión de usuarios se encuentra en Setup > Users > Users. En un sitio recién creado, esta página tiene este aspecto (en la imagen solo se han omitido algunas columnas de la tabla):

La imagen de arriba muestra todos los usuarios que se crearon automáticamente al crear el sitio:
Un usuario de automatización, seguido del usuario único (cmkadmin) para el inicio de sesión interactivo con contraseña.
Con la Appliance Checkmk, este usuario puede tener un nombre diferente, ya que tú mismo defines su nombre y contraseña.
Este usuario cmkadmin tiene las siguientes propiedades:
Tiene el rol de Administrator y, por lo tanto, todos los permisos.
No es contacto para nada y no recibe notificaciones.
Aún así, puede verlo todo (gracias a su rol de Administrator).
Tú eliges la contraseña de este usuario al crear el site. También puedes cambiar esta contraseña en cualquier momento más adelante.
El formulario para crear un nuevo usuario (en
) o realizar la edición de uno ya existente (en
) se divide en cinco secciones.
La primera sección trata sobre la identidad.
2.2. Identidad

Como siempre en Checkmk, el ID de un conjunto de datos (Username) no se puede cambiar posteriormente. Se utiliza para iniciar sesión y también como clave interna en todos los archivos y estructuras de datos.
La dirección de correo electrónico es opcional y solo es necesaria si el usuario va a ser un contacto al que se le notificará por correo electrónico (se requiere configuración SMTP). Del mismo modo, el campo Pager address está pensado para notificaciones por SMS o sistemas similares. Si escribes tus propios scripts de notificación, puedes acceder a los valores de estos campos y utilizarlos para cualquier propósito.
Con Monitored sites puedes restringir opcionalmente a cuáles de los sitios existentes se puede acceder. Esto resulta especialmente práctico en entornos muy grandes, como una monitorización distribuida con cientos de sitios. Si un usuario solo necesita un número determinado de estos sitios para sus hosts, la GUI solo se pondrá en contacto con los sitios seleccionados para configurar las vistas de tabla, lo que a su vez mejora considerablemente el rendimiento.
2.3. Seguridad

Este cuadro es para el inicio de sesión y la autorización. La opción «Automation secret for machine accounts» está pensada para cuentas que acceden a Checkmk a través de HTTP/HTTPS y se autentican mediante la URL. A continuación te mostraremos cómo hacerlo.
En cuanto a los roles, debes seleccionar al menos uno. En teoría, podrías asignar varios roles a un usuario, y este obtendría entonces los derechos de todos esos roles. Sin embargo, con los roles predefinidos, esto no tendría mucho sentido.
Si bloqueas a los usuarios con la opción «disable the login to this account», aparecerán en la tabla con el icono «
».
Ya no podrán iniciar sesión, pero seguirán estando en el sistema.
Si un usuario es un contacto, las notificaciones no se verán afectadas y el usuario seguirá recibiendo correos electrónicos, etc.
Si el usuario estaba conectado en el momento del bloqueo, se le cerrará la sesión automáticamente.
2.4. Grupos de contacto

En cuanto asignes a un usuario a uno o más grupos de contactos, ese usuario se convierte en un contacto. Cuando se crea un nuevo site, también se crea el grupo de contactos Everything, que siempre contiene todos los hosts y todos los servicios. Un usuario de este grupo será entonces automáticamente responsable de todos los hosts y servicios.
2.5. Notificaciones

En la caja «Notifications», puedes usar la opción «Receive fallback notifications» para especificar que este contacto reciba notificaciones cuando no se aplique ninguna regla de notificación.
2.6. Configuración personal

Los usuarios también pueden cambiar ellos mismos todos los ajustes de esta caja a través de User > Edit profile (excepto con el rol de Guest user). Aparte de la selección del idioma de la interfaz, estos ajustes rara vez son necesarios. Como siempre, puedes encontrar más detalles en la ayuda en línea.
2.7. Ajustes de la interfaz

Los usuarios también pueden personalizar ellos mismos la configuración de la interfaz a través de User > Edit profile. Es especialmente interesante la opción «Show more / Show less» para determinar si Checkmk debe mostrar más o menos información en la interfaz. Si siempre quieres verlo todo, puedes forzarlo aquí con «Enforce show more».
3. Grupos de contacto
3.1. Crear y editar grupos de contacto
Los grupos de contactos son el enlace entre los hosts y los servicios, por un lado, y los contactos, por otro. Cada grupo de contactos representa una responsabilidad sobre un área específica de tu entorno TI. Por ejemplo, el grupo de contactos «SAP» podría incluir a todas las personas que mantienen los sistemas SAP y estar asignado a todos los hosts y servicios que prestan dichos servicios en este entorno.
Puedes gestionar los grupos de contactos a través de Setup > Users > Contact groups. La siguiente imagen muestra este módulo con tres grupos de contactos creados manualmente:

Crear un nuevo grupo es muy sencillo. Como siempre, el ID es permanente y el alias es un nombre de visualización que puedes cambiar más adelante en cualquier momento:

El nuevo grupo de contactos está vacío en dos aspectos: no contiene ni contactos, ni hosts, ni servicios. La asignación de grupos de contactos a los contactos se realiza a través de los perfiles de usuario, como ya has visto al editar el usuario.
Configuración de la visibilidad del inventario
Además, puedes configurar la visibilidad del inventario encontrado con el inventario de HW/SW. Por defecto, todo el inventario es visible, pero también se puede ocultar por completo o habilitar de forma selectiva con la opción «Allowed to see parts of the tree» y las rutas de inventario internas:

Para poder introducir la información de ruta necesaria, primero debes leerla de los datos del inventario. A continuación, puedes utilizar esta información para rellenar las rutas y las claves y hacer que, por ejemplo, solo sean visibles algunos datos seleccionados del inventario del procesador (modelo y arquitectura):

3.2. Añadir hosts a un grupo de contacto
Hay dos métodos para incluir hosts en grupos de contactos: a través de carpetas y a través de reglas. También puedes combinar ambos métodos. En este caso, se asignará al host una agregación de los respectivos grupos de contactos.
Asignación mediante carpetas
Puedes acceder a las propiedades de una carpeta a través de «Folder > Properties» mientras estás en la carpeta. Allí encontrarás la opción «Permissions». Marca esta checkbox para acceder a la selección de grupos de contactos:

El objetivo real de esta opción es configurar los permisos para el mantenimiento de los hosts, lo cual explicamos en detalle a continuación.
En cuanto hayas asignado permisos a grupos de contacto específicos, podrás a su vez introducir estos grupos como grupos de contacto para los hosts en la monitorización. Al hacerlo, puedes decidir si las asignaciones también deben aplicarse a los hosts de las subcarpetas y si los servicios de estos hosts también deben recibir explícitamente estos grupos. Los servicios sin asignaciones explícitas heredan todos los grupos de contacto de un host, incluso los asignados por reglas.
La herencia del atributo «Permissions» (Inherit grupos de contacto) a través de las carpetas se anula en este punto. Esto te permite añadir más grupos de contacto a las subcarpetas. Por lo tanto, la asignación también se realiza de forma acumulativa a través de todas las carpetas principales, si en estas carpetas principales se ha activado la opción «Add these groups as contacts to all hosts in all subfolders of this folder» (Inherit grupos de contacto). |
Por cierto, también puedes encontrar las opciones de grupos de contactos de forma simplificada directamente en los detalles de un host. Esto significa que también puedes usarlas para asignar grupos de contactos a hosts individuales. Sin embargo, como esto puede volverse bastante confuso rápidamente, solo deberías hacerlo en casos excepcionales y, si es necesario, quizá prefieras trabajar con reglas.
Asignación mediante reglas
El segundo método —asignar grupos de contactos mediante reglas— es un poco más engorroso, pero mucho más flexible. Y resulta muy útil si no has configurado tu estructura de carpetas según principios organizativos estructurados y, por lo tanto, no puedes asignar carpetas a grupos de contactos de forma clara.
El conjunto de reglas «Assignment of hosts to contact groups» necesario para esto se puede encontrar en Setup > Hosts > Host monitoring rules. En este conjunto de reglas, encontrarás una regla predefinida que se generó al crear el site y que asigna todos los hosts al grupo de contacto «Everything».

Ten en cuenta que este conjunto de reglas está definido de tal manera que se evalúan todas las reglas aplicables, ¡y no solo la primera! Puede ser útil que un host pertenezca a más de un grupo de contacto. En tal caso, necesitarás un conjunto de reglas para cada asignación.

3.3. Incluir servicios en grupos de contacto
No siempre tiene sentido que un servicio esté en los mismos grupos de contacto que su host. Por lo tanto, puedes usar el conjunto de reglas «Assignment of services to contact groups» (Asignar grupos de contacto al servicio), independientemente de los grupos de contacto del host. Se aplican las siguientes reglas:
Si a un servicio no se le asigna un grupo de contacto, recibe automáticamente los mismos grupos de contacto que su host.
En cuanto se asigna explícitamente al menos un grupo de contacto a un servicio, este deja de heredar los grupos de contacto del host.
En un entorno sencillo, por lo tanto, basta con asignar grupos de contacto solo a los hosts. En cuanto necesites una mayor diferenciación, también puedes crear reglas para los servicios.
3.4. Control de las asignaciones
Puedes comprobar si has configurado correctamente todas las reglas y carpetas consultando los detalles de un host o servicio en el entorno de monitorización. Allí encontrarás las entradas Host contact groups y Host contacts (o Service contact groups y Service contacts, respectivamente), que forman una lista de las asignaciones reales para este objeto:

4. Visibilidad de los hosts y los servicios
4.1. Vista general
El hecho de que los usuarios normales (el rol Normal monitoring user) solo vean aquellos objetos de los que son contacto cobra mayor importancia cuanto más grande es tu entorno de monitorización. Esto no solo proporciona una vista general ordenada, sino que también evita que los usuarios intervengan donde no les corresponde.
Como administrador (el rol «Administrator»), por supuesto, siempre puedes verlo todo. Esto se controla mediante el permiso «See all host and services». En tu configuración personal, en Visibility of hosts/services, encontrarás la checkbox «Only show hosts and services the user is a contact for». Con esto, puedes renunciar voluntariamente a ver todo y mostrar solo los hosts y servicios para los que eres contacto. Esta opción está pensada para roles duales, es decir, para alguien que es tanto administrador como usuario normal.
El rol «Guest user» está preconfigurado para que sus usuarios también puedan verlo todo. Aquí están desactivados los ajustes y las intervenciones.
Para los usuarios normales, la visibilidad en el entorno de monitorización está implementada de tal manera que los hosts y servicios para los que no eres contacto parecen ni siquiera existir en el sistema. Entre otras cosas, los siguientes elementos tienen en cuenta la visibilidad:
Vistas de hosts y servicios
Componente snap-in de vista general de la barra lateral
Informes creados por el usuario
4.2. Visibilidad de los servicios
Como hemos mostrado anteriormente, es posible que seas un contacto para un host, pero no para todos sus servicios. No obstante, en tal caso podrás ver todos los servicios del host en la GUI.
Esta excepción está configurada por defecto porque suele ser útil. En la práctica, esto significa, por ejemplo, que el compañero responsable del host en cuestión también puede ver cualquier servicio conectado a ese host, ¡aunque no reciba ninguna notificación sobre dichos servicios!
Si no te gusta este enfoque, puedes cambiarlo en las ediciones comerciales a través de Global settings > Monitoring core > Authorization settings. Si allí cambias la configuración «Services» a «Strict - Visible if user is contact for the service», los usuarios solo podrán ver los servicios si han sido asignados directamente como contacto para ese servicio.

Por cierto, todo esto no tiene nada que ver con el hecho de que un servicio herede los grupos de contactos de su host si no se le han asignado grupos de contactos propios, ya que en ese caso tú serías un contacto del servicio y, por lo tanto, recibirías sus notificaciones.
4.3. Grupos de hosts y grupos de servicio
La segunda opción en la configuración global de Authorization settings se refiere a los grupos de hosts y servicios. Normalmente puedes ver un grupo siempre que puedas ver al menos un elemento del grupo; sin embargo, el grupo parecerá entonces como si solo contuviera los elementos que son visibles para ti.
Si cambias a «Strict - Visible if all members are visible», se ocultarán todos los grupos en los que no seas contacto de al menos un host o servicio.
Ten en cuenta que estos dos ajustes de visibilidad no influyen en las notificaciones.
5. Notificaciones
Las asignaciones de contactos también influyen en las notificaciones. Checkmk está configurado de forma predeterminada para que se notifique a todos los contactos del host o servicio afectado en caso de que surja un problema. Esto se hace mediante una regla de notificación global que se genera automáticamente al crear nuevos sites. Es una función muy útil.
No obstante, si es necesario, puedes adaptar una regla o complementarla con otras reglas, de modo que, en casos extremos, las notificaciones se puedan enviar de forma totalmente independiente de los grupos de contacto. Una razón habitual para ello es que un usuario no quiera recibir ciertas notificaciones o, por el contrario, quiera estar informado de problemas con hosts o servicios concretos, aunque no sea directamente responsable de ellos (y, por lo tanto, no sea un contacto explícito).
Encontrarás más detalles sobre la regla de notificación global que ofrece Checkmk en la Guía para principiantes.
6. Roles y permisos
6.1. Roles predefinidos
Checkmk siempre asigna permisos a los usuarios a través de roles, nunca directamente. Un rol no es más que una lista de permisos. Es importante que entiendas que los roles definen el nivel de permisos y no hacen referencia a ningún host o servicio. Para eso están los grupos de contacto.
Checkmk incluye los siguientes roles predefinidos, que nunca se pueden eliminar, pero se pueden personalizar como quieras:
| Nombre del rol | Alias | Permisos | Función |
|---|---|---|---|
|
Administrador |
Todos los permisos, especialmente el derecho a modificar permisos. |
El administrador de Checkmk que se encarga del mantenimiento del propio sistema de monitorización. |
|
Usuario normal de monitorización |
Solo puede ver sus propios hosts y servicios, realizar cambios en la interfaz web únicamente en las carpetas compartidas de estos, y, en general, no puede hacer nada que afecte a otros usuarios. |
El usuario normal de Checkmk que accede a la monitorización y reacciona ante cualquier notificación. |
|
Usuario de registro de agentes |
Permiso para registrar el agente Checkmk de un host en el servidor Checkmk para la transmisión de datos cifrados con TLS; nada más. |
Este rol se asigna al usuario de automatización |
|
Usuario invitado |
Puede ver todo, pero no cambiar nada. |
El usuario invitado está pensado simplemente para «mirar», por lo que todos los invitados comparten una cuenta común. También es útil para monitores de estado «públicos» colgados en la pared. |
|
Plantilla vacía para roles con privilegios mínimos |
No puede hacer nada. |
Este rol no está pensado para su asignación directa. En su lugar, se puede usar para crear nuevos roles con solo los permisos mínimos necesarios. Si se añaden nuevos permisos o cambian los existentes en futuras versiones de Checkmk, puedes estar seguro de que un rol derivado de no_permissions no recibirá ningún permiso nuevo e inesperado. |
Los roles se gestionan a través de Setup > Users > Roles & permissions:

Por cierto, al crear un nuevo site de Checkmk, solo se crea un usuario (cmkadmin) con el rol Administrator para el inicio de sesión en la interfaz de Checkmk.
Los demás roles posibles no se utilizarán por el momento.
Si necesitas un usuario invitado, debes crearlo tú mismo.
6.2. Personalización de roles existentes
Como de costumbre, el
te lleva al modo de edición de un rol:

Puedes averiguar qué significan los distintos permisos (que se muestran aquí en extractos) en la ayuda en línea.
La particularidad aquí es que para cada permiso hay tres opciones: yes, no y default (yes) o default (no). Durante la instalación, todos los valores se establecen en default. Para la autorización en sí, no importa si has establecido yes o default (yes). Sin embargo, es posible que la instalación de una nueva versión de Checkmk cambie un valor por defecto (aunque esto ocurra muy raramente). Una configuración que hayas establecido explícitamente no se vería afectada por la instalación.
Además, este principio te permite reconocer muy rápidamente en qué aspectos tu instalación de Checkmk podría haberse desviado del estándar.
6.3. Definición de roles propios
Quizás te sorprenda que no haya ningún botón para crear un nuevo rol.
Hay una razón deliberada para ello.
Los nuevos roles se crean derivándolos de los ya existentes mediante
Clone.
El nuevo rol no se crea simplemente como una copia, sino que conserva su relación con el rol original (Based on role):

Esta conexión tiene una función importante. Porque todos los permisos del rol clonado que no se hayan establecido explícitamente (es decir, que sigan configurados como default) se heredarán del rol de origen. Los cambios posteriores en el rol de origen se trasladarán al nuevo rol clonado. Esto resulta muy práctico si piensas en la cantidad de permisos que podría tener el rol original. Con una simple copia, podrías perder fácilmente la pista de qué es lo que realmente tiene de especial el rol que has definido para ti mismo.
Esta función de derivación también resuelve otro problema: Dado que seguimos desarrollando Checkmk, se añaden continuamente nuevos permisos. Cada vez que lo hacemos, decidimos en cuál de los tres roles Administrator, Normal monitoring user y Guest user debe incluirse el nuevo permiso. Dado que cada uno de tus propios roles se deriva de uno de los roles predefinidos, el nuevo permiso se preconfigura automáticamente con un valor razonable. Sería muy poco práctico si, por ejemplo, definieras tu propio rol de usuario y siempre faltaran allí los nuevos permisos. Tendrías que adaptar tu rol para cada nueva función, para que tus usuarios pudieran utilizarlas.
6.4. Comparación de roles con la vista de tabla
Si quieres comparar los permisos de cada rol, puedes utilizar la vista de tabla, a la que puedes acceder a través de Setup > Users > Roles & permissions > Roles > Permission matrix.
Esta opción del menú muestra la siguiente vista de tabla, en la que no solo puedes comparar los permisos de cada rol,
sino también ver dónde se han establecido explícitamente los permisos (
) o se han eliminado (
).

7. Configuración personal
Cada usuario puede gestionar algunas opciones de configuración de su propio perfil. Encontrarás una descripción detallada de todas las opciones disponibles en el artículo sobre la interfaz de usuario.
Una nota adicional sobre la monitorización distribuida: En un entorno distribuido, cualquier nueva configuración se transfiere inmediatamente a todos los sitios de monitorización. Esta es la única forma de garantizar que, en particular, una contraseña recién asignada también funcione de inmediato en todas partes, y no solo tras la siguiente activación de cambios. Sin embargo, esto solo funciona para los sitios a los que se pueda acceder a través de la red en ese momento. Todos los demás sitios recibirán las actualizaciones en la siguiente activación de cambios que se realice con éxito.
8. Usuarios especiales
Hasta ahora, hemos explicado cómo crear un «usuario normal». Sin embargo, por diversas razones, también hay usuarios que tienen derechos o funciones especiales.
Entre ellos se incluyen, por ejemplo, los administradores y los usuarios de automatización. A continuación, veremos sus características especiales.
8.1. Administrador
Al instalar Checkmk, se crea un administrador por defecto, como ya se ha mencionado anteriormente.
Este administrador se llama cmkadmin.
Ahora puedes seguir trabajando con este administrador como desees, aunque es posible que no quieras utilizar este administrador predeterminado.
Por ejemplo, debido a normativas internas de la empresa, porque quieres definir varios administradores o para cumplir con recomendaciones de seguridad como el Estándar de Verificación de Seguridad de Aplicaciones (ASVS) de OWASP.
En primer lugar, un administrador es un usuario como cualquier otro. Por lo tanto, se crea tal y como se describe en el capítulo «Administración de usuarios» del entorno de configuración. Sin embargo, los derechos que se asignan al usuario a través del rol seleccionado son decisivos.

Selecciona el rol «Administrator» al crear el usuario. El resto de ajustes para el administrador también se realizan según tus preferencias personales o las especificaciones internas de la empresa.
8.2. Usuario de automatización (para servicios web)
Al realizar la conexión de Checkmk a otros sistemas, a menudo se desea automatizar ciertas actividades que normalmente se realizan a través de la GUI. Algunos ejemplos son:
Configurar y eliminar tiempos de mantenimiento programados mediante un script.
Gestionar hosts a través de la API-REST.
Recuperar datos de vistas de tabla en formatos CSV o JSON para su posterior procesamiento.
Recuperar el estado actual de las agregaciones BI para crearlas como un servicio.
En tales situaciones, el software externo debe poder recuperar automáticamente ciertas URL de la interfaz de Checkmk. Esto, por supuesto, plantea la cuestión de cómo inicia sesión el usuario. La forma habitual a través del diálogo de inicio de sesión es engorrosa y requiere recuperar varias URL seguidas y guardar una cookie.
Para simplificar esto, Checkmk ofrece el concepto de usuarios de automatización. Estos usuarios son exclusivamente para el control remoto y no permiten un inicio de sesión normal a través de la GUI. La autenticación se realiza aquí mediante la autenticación básica HTTP.
En cada sitio de Checkmk ya hay un usuario de automatización configurado: para registrar el agente Checkmk en el servidor Checkmk para la transferencia de datos cifrada con TLS.
Para otras tareas, puedes crear usuarios de automatización adicionales, normalmente con el rol «administrator».
Se crea un usuario de automatización igual que un usuario normal, pero no se le asigna una contraseña normal, sino una contraseña de automatización (Automation secret).
Puedes hacer que esta contraseña se cree automáticamente con el cubo «
»:

La autenticación básica HTTP requiere la contraseña de automatización en texto sin cifrar de forma predeterminada.
Para ello, configura la opción Store the secret in cleartext.
La contraseña se guarda entonces en el directorio del site en |
Un usuario de automatización tiene un rol igual que un usuario normal y también puede ser un contacto. Esto significa que puedes restringir los permisos y la visibilidad de los hosts y servicios según sea necesario.
Para la recuperación automática de páginas web, introduce el encabezado de la autenticación HTTP Basic, que básicamente tiene este aspecto: Authorization: Basic 1234567890abcdef.
La cadena de caracteres es la forma codificada en Base64 de username:password.
Aquí tienes un ejemplo de cómo recuperar una vista de tabla en formato JSON con el usuario de automatización automation y su contraseña de automatización; la codificación Base64 la realiza curl:
Si el script que recupera la URL se ejecuta directamente en el sitio de monitorización, puedes leer la contraseña de automatización del usuario directamente desde el sistema de archivos.
Esto no es una vulnerabilidad de seguridad, sino que está pensado para que así sea:
Puedes escribir scripts de automatización que no necesiten contener la contraseña de automatización ni un archivo de configuración.
Para ello, lee el archivo ~/var/check_mk/web/myuser/automation.secret:
Puedes guardar fácilmente el contenido de este archivo en una variable del shell, por ejemplo, para poder leerlo más tarde con un script:
9. Inicio de sesión automático a través de la URL
El inicio de sesión automático a través de la URL en el navegador que se describe a continuación se ha desactivado por motivos de seguridad desde Checkmk 2.2.0 , ya que las credenciales (nombre de usuario y contraseña) transmitidas a través de la URL se almacenan en los archivos de registro del Apache específico del sitio (véase Werk #14261). Si quieres utilizar el inicio de sesión automático a través de la URL a pesar de este riesgo de seguridad, debes habilitarlo explícitamente con la configuración global Setup > General > Global settings > User interface > Login via GET requests. |
Como hemos visto, puedes usar usuarios de automatización para recuperar cualquier URL mediante un script, sin necesidad de iniciar sesión. Sin embargo, en situaciones que requieren un inicio de sesión real en el navegador, esto no funciona, ya que los datos de inicio de sesión para cualquier enlace incluido (por ejemplo, a imágenes e iframes) no se transmiten.
El mejor ejemplo de esto es el deseo de colgar en la pared un monitor que muestre continuamente un dashboard específico de Checkmk. Este monitor debe ser controlado por un ordenador que abra automáticamente el navegador al arrancar, inicie sesión en Checkmk y abra el dashboard requerido.
Para conseguirlo, lo mejor es crear primero un usuario especial para este fin. El rol «Guest user» es ideal para esta función, ya que otorga todos los derechos de lectura, pero no permite realizar cambios ni intervenir.
Crea la URL para un inicio de sesión automático de la siguiente manera:
Empieza con:
http://mycmkserver/mysite/check_mk/login.py?_origtarget=Determina la URL real que se va a mostrar (por ejemplo, la del dashboard) con tu navegador —preferiblemente sin navegación—, lo cual se puede hacer switchando Display > Show page navigation.
Añade esta URL, omitiendo todo lo que hay antes de la parte
/mysite/.Añade a la URL las dos variables
_usernamey_passwordcon el siguiente formato:&_username=myuser&_password=mysecret.Añade otro
&_login=1.
Aquí tienes un ejemplo de una URL de este tipo:
http://mycmkserver/mysite/check_mk/login.py?_origtarget=/mysite/check_mk/dashboard.py?name=mydashboard&_username=myuser&_password=mypassword&_login=1Nota:
En el ejemplo, sustituye los valores
mycmkserver,mysite,myuserymypasswordpor tus valores correspondientes. No puedes utilizar el usuario de automatización comomyuser, ya que no se permite el inicio de sesión a través de la GUI para este usuario.Si los caracteres especiales
&o%aparecen en alguno de estos valores o en el valor de_origtarget, debes sustituirlos de la siguiente manera:&por%26y%por%25.
Prueba todo el proceso cerrando sesión en Checkmk desde tu navegador y, a continuación, copiando la URL construida en la barra de direcciones de tu navegador. Deberías ir directamente a la página de destino, sin que aparezca ningún diálogo de inicio de sesión. Al mismo tiempo, habrás iniciado sesión y podrás acceder directamente a los enlaces que contiene la página.
También puedes probar la URL final con curl en la línea de comandos.
Si lo has hecho todo correctamente, recibirás el código de estado HTTP 302 FOUND y serás redirigido a la URL especificada Location, como se muestra en la siguiente salida abreviada:
Si no obtienes la vista deseada en el navegador a pesar de este mensaje que confirma el éxito, check la URL indicada en Location — incluso si esta es incorrecta, curl devolverá el código de estado HTTP 302 FOUND.
Si los datos de inicio de sesión son incorrectos, recibirás el código de estado HTTP 200 OK,
pero solo verás el código HTML de la página de inicio de sesión, como en la siguiente salida abreviada:
10. Asignación de permisos para carpetas
10.1. Función del rol de «Normal monitoring user »
Si tienes que gestionar un entorno de monitorización algo más grande, te interesará involucrar a otros administradores en la configuración y, sobre todo, en la gestión de hosts y servicios. Para mantener el control sobre quién puede realizar cambios y qué se les permite hacer, y para que nadie se entrometa en el trabajo de los demás, puedes asignar permisos para la configuración de Checkmk basándote en carpetas.
El primer paso para ello es que tus compañeros administradores trabajen con sus propios usuarios basados en el rol «Normal monitoring user».
Este rol básicamente tiene autorización para el entorno de configuración, pero con algunas restricciones importantes:
Solo se permiten cambios en hosts, servicios, reglas y Agregaciones BI.
Los hosts, servicios y reglas solo se pueden gestionar en carpetas compartidas.
Las agregaciones BI solo se pueden gestionar en paquetes BI compartidos.
No se permite nada que tenga implicaciones globales.
Mientras no hayas publicado ninguna carpeta o paquete BI, esto significa que los usuarios con el rol «Normal monitoring user» no pueden realizar ningún cambio inicialmente. El sencillo menú «Setup» tiene este aspecto para los usuarios de monitorización normales:

10.2. Permitir a los usuarios gestionar hosts
Un usuario recibe la autorización para crear, editar y eliminar hosts a través de grupos de contacto. El procedimiento es el siguiente:
Añade al usuario a un grupo de contacto.
Designa una o más carpetas para las que se autorizará al usuario.
Activa la propiedad «Permissions» para estas carpetas y selecciona aquí el grupo de contacto.
El siguiente ejemplo muestra las propiedades de una carpeta en la que todos los usuarios del grupo de contacto «Linux» pueden gestionar hosts.
Se ha activado la opción para permitir esto también en las subcarpetas.

Tú decides si quieres incluir automáticamente los hosts en el grupo de contactos.
En este ejemplo, la opción «Add these groups as contacts to all hosts in this folder» no se ha activado y los hosts no se añadirán al grupo de contactos «Linux».
Esto significa que, en el entorno de monitorización, no serán visibles para el grupo de contactos «Linux» (a menos que una regla se encargue de ello).
Así pues, como puedes ver, la visibilidad (y la responsabilidad en la monitorización) y la autorización para el entorno de configuración se pueden regular por separado.
11. Contraseñas
11.1. Seguridad de las contraseñas
La seguridad es una prioridad hoy en día. Por eso, en algunas empresas hay directrices generales sobre cómo gestionar las contraseñas. Checkmk ofrece varias opciones para aplicar estas normas. Algunas de ellas las encontrarás en Global settings > User management > Password policy for local accounts:

La primera opción, «Minimum password length», sirve para garantizar la calidad de la contraseña.
Para la segunda opción Number of character groups to use hay un total de cuatro grupos de caracteres:
letras minúsculas
letras mayúsculas
dígitos
caracteres especiales
Si introduce aquí «4», la contraseña deberá contener al menos un carácter de cada uno de los grupos anteriores.
Con «2», al menos se garantiza que la contraseña no esté compuesta, por ejemplo, solo por letras minúsculas.
Estos ajustes se checkan cada vez que se cambia la contraseña.
La tercera opción, «Maximum age of passwords», obliga al usuario a cambiar su contraseña a intervalos regulares. Cuando llegue el momento, al acceder a la página siguiente se le mostrará al usuario el siguiente mensaje:

Los usuarios solo podrán continuar después de cambiar su contraseña.
Puedes exigir un cambio de la contraseña inicial en el primer inicio de sesión. Esto se hace con la opción «Enforce change: Change password at next login or access» en la sección «Security» de las propiedades del usuario correspondiente.
11.2. Directivas de inicio de sesión
En «Global settings > User management» encontrarás más ajustes globales que regulan los inicios de sesión de los usuarios.
Bloqueo tras intentos de inicio de sesión inválidos
Con la configuración de «Lock user accounts after N logon failures», puedes bloquear una cuenta tras una serie de intentos fallidos de inicio de sesión:

El desbloqueo solo lo puede realizar un usuario con el rol de administrador (Administrator).
Como administrador, puedes desbloquear a otros usuarios a través de Setup > Users > Users y, a continuación, en las propiedades del usuario bloqueado.
¡Ten en cuenta que las cuentas de administrador también se pueden bloquear!
Si te quedas bloqueado de forma permanente como último o único administrador, solo podrás desbloquear tu cuenta a través de la línea de comandos.
Para ello, edita el archivo ~/etc/htpasswd como usuario del site y elimina el signo de exclamación de la línea del usuario afectado, en este caso myuser:
A continuación, podrás volver a iniciar sesión.
Cierre de sesión automático
En la caja «Session management», puedes especificar dos formas diferentes de finalizar una sesión y combinarlas entre sí: por un lado, en función de la duración de la sesión; por otro, en función de la actividad del usuario.
Maximum session duration asegura que la sesión termine automáticamente tras un periodo de tiempo establecido. Entre otras cosas, esto reduce el riesgo de uso externo de la sesión, ya que no permanece activa indefinidamente:

Una vez que haya expirado la duración de la sesión definida, el usuario deberá volver a iniciar sesión, independientemente de si estaba activo al final de la sesión o no. Al mismo tiempo, puedes usar «Advise re-authentication before termination» para especificar cuándo se debe notificar al usuario que guarde sus entradas, cierre la sesión y vuelva a iniciarla antes de una terminación «forzada» de su sesión:

La configuración Set an individual idle timeout garantiza que una sesión finalice si un usuario no utiliza activamente la GUI durante un periodo de tiempo prolongado, por ejemplo, si ha abandonado temporalmente su puesto de trabajo sin cerrar sesión en Checkmk. Este timeout se puede detener utilizando activamente la GUI. Sin embargo, no basta con tener abierta una vista de tabla que se recargue automáticamente de forma regular.
Evitar inicios de sesión múltiples
La configuración «Limit login to single session at a time» impide que un usuario inicie sesión en Checkmk con dos navegadores al mismo tiempo:

Esta opción también está vinculada a un timeout para el cierre de sesión automático en caso de inactividad. Esta función también tiene sentido. Supongamos que te has olvidado de cerrar sesión en tu puesto de trabajo antes de cerrar el navegador. En esta situación, sin un timeout, no podrías iniciar sesión desde casa mientras estás de guardia, ya que cerrar el navegador o apagar el ordenador no activa automáticamente el cierre de sesión.
Al intentar un segundo inicio de sesión en paralelo, verás el siguiente mensaje de error:

En este caso, solo podrás realizar el inicio de sesión si cierras activamente la sesión existente o esperas hasta que se produzca el timeout.
11.3. Autenticación de dos factores
Para mejorar la seguridad de tus sitios Checkmk, Checkmk ofrece la función de autenticación de dos factores para cada usuario. Esta autenticación de dos factores se basa en el estándar de internet FIDO2/WebAuthn. La autenticación se basa convencionalmente en el conocimiento (una contraseña) y la posesión (un autenticador).
Puedes utilizar cualquier dispositivo compatible con FIDO2 que sea compatible con tu navegador y sistema operativo. Los tokens USB o NFC, como el YubiKey, son los más utilizados. Como alternativa, es posible utilizar aplicaciones de autenticación (por ejemplo, en el smartphone) que generan una contraseña de un solo uso basada en el tiempo (TOTP).
Requisitos para el servidor Checkmk
Debido a las especificaciones del estándar WebAuthn, hay tres requisitos previos para el uso de la autenticación de dos factores:
La interfaz web de Checkmk está protegida con HTTPS.
La dirección de la web se especifica como un nombre del host simple o como un nombre de dominio completo —en cualquier caso, como una dirección de dominio válida.
La URL siempre se introduce con el mismo formato, p. ej., siempre
https://www.mycompany.com/mysite.
Configuración
Accede a la autenticación de dos factores desde el menú Usuario:

Ahora se te ofrecerán dos opciones marcadas con el icono de la llave
para añadir el segundo factor:
Register authenticator app para configurar una aplicación que genere contraseñas de un solo uso, y Register security token para utilizar un token de hardware.

Checkmk reconoce las opciones de autenticación disponibles en tu ordenador. Se abre un pequeño diálogo en la ventana del navegador en el que debes especificar el autenticador. Si utilizas un token de hardware, la configuración se completa al pulsar el botón. Si utilizas contraseñas de un solo uso, primero escanea el código QR que se muestra con la Aplicación de autenticación e introduce un código generado por la aplicación para confirmar. La sesión continuará sin interrupciones en ambos casos.
Inicio de sesión
La autenticación de dos factores quedará activa en Checkmk para futuros intentos de inicio de sesión. Primero, introduce tu nombre de usuario y contraseña como de costumbre. A continuación, aparecerá un segundo diálogo de inicio de sesión:

Una vez activado el autenticador, puedes trabajar con Checkmk como de costumbre.
Creación y uso de códigos de copia de seguridad
En caso de que no tengas tu autenticador a mano, puedes introducir un código de copia de seguridad como alternativa.
Para ello, crea una lista de códigos de copia de seguridad con antelación en la página User > Two-factor authentication utilizando
Generate backup codes:

Guarda estos códigos en un lugar seguro.
Una vez que hayas generado los códigos de copia de seguridad, aparecerá la opción adicional «Use backup code» en el segundo diálogo de inicio de sesión Two-factor authentication. Haz clic en ella si quieres iniciar sesión en Checkmk con un código de copia de seguridad. El segundo diálogo de inicio de sesión se sustituirá para que puedas introducir allí un código de copia de seguridad:

Comprobación y anulación de la autenticación de dos factores como administrador
Como administrador, en la gestión de usuarios (Setup > Users > Users) puedes ver qué usuarios tienen configurada la autenticación de dos factores mirando la entrada de la columna Authentication.

Si alguno de estos usuarios ya no tiene acceso a Checkmk —por ejemplo, si ha perdido o dañado su token de hardware—, puedes eliminar la autenticación de dos factores para ese usuario.
Para ello, abre la entrada correspondiente en la gestión de usuarios haciendo clic en «
».
Elimina la autenticación de dos factores para este usuario con «User > Remove two-factor authentication».

Una vez que hayas confirmado el cuadro de diálogo de confirmación, el usuario podrá volver a iniciar sesión en la interfaz web de Checkmk utilizando «solo» el nombre de usuario y la contraseña.
Forzar la autenticación de dos factores como administrador
Como has leído en la sección de configuración, cada usuario puede activar la autenticación de dos factores para su propia cuenta de Checkmk. Los administradores tienen la opción de hacer que esta función opcional sea obligatoria para los usuarios bajo su control. La autenticación de dos factores se puede aplicar a todos los usuarios de un rol, o incluso a todos los usuarios, con la opción Enforce two factor authentication.
Para forzar la autenticación de dos factores para un rol, abre Setup > Users > Roles & permissions,, haz clic en el icono del lápiz del rol
y marca la checkbox «Enforce two factor authentication» en
Basic properties.
Esta opción se encuentra para todos los usuarios de Checkmk en Setup > General > Global settings > User management.
La activación como configuración global anula la configuración basada en roles.
Un usuario que deba activar la autenticación de dos factores pero que aún no la tenga será redirigido a la página Two-factor authentication al iniciar sesión tras introducir el nombre de usuario y la contraseña:

El usuario solo será redirigido a la interfaz de usuario de Checkmk cuando se haya configurado una de las dos opciones disponibles para el segundo factor.
11.4. Cambiar una contraseña mediante la línea de comandos
En caso de emergencia, también puedes cambiar una contraseña a través de la línea de comandos.
Esto te salva en una situación en la que hayas perdido la contraseña de cmkadmin.
El requisito previo es, por supuesto, que aún sea posible iniciar sesión como usuario de Linux en el servidor Checkmk y que puedas convertirte en usuario del site con omd su mysite.
Las contraseñas se almacenan en el archivo ~/etc/htpasswd, como ya se ha descrito anteriormente.
El cambio de contraseñas se realiza con el comando cmk-passwd.
Esto no te pedirá la contraseña actual.
cmk-passwd siempre elegirá un método de cifrado seguro para almacenar tus contraseñas en una versión actual de Checkmk.
Actualmente, cmk-passwd utiliza bcrypt para ello.
Las contraseñas sin cifrar o con un cifrado débil (por ejemplo, con MD5) no permiten el inicio de sesión en la GUI.
12. Atributos de usuario personalizados
Además del campo para la dirección de correo electrónico, también está disponible el campo «Pager address» para notificar a los usuarios. Si esto no es suficiente y quieres guardar más información sobre un usuario, puedes crear tus propios campos a través de «Setup > Users > Custom user attributes > Add attribute», que luego se pueden rellenar con valores individuales para cada usuario.
Al crear un nuevo atributo de este tipo, se abre el siguiente diálogo:

Como siempre, el ID (Name) no se puede cambiar más adelante, pero el título (Title) sí. El Topic determina en qué sección de la configuración del usuario se clasificará el nuevo campo. Además, puedes decidir si los usuarios pueden editar el campo ellos mismos (entonces aparecerá en su configuración personal) y si el valor debe mostrarse directamente en la tabla de usuarios Setup.
Solo si marcas la checkbox en Make this variable available in notifications podrás utilizar este valor también en las notificaciones. Para ello, el valor debe asignarse al core de monitorización (p. ej., CMC) en una variable (una denominada «macro definida por el usuario»).
El nombre de la variable definida por el usuario se deriva del ID que hayas elegido.
Este se convierte a mayúsculas y se le antepone CONTACT_. Así, phone se convierte en CONTACT_PHONE.
Ten en cuenta que, cuando la variable se pasa a través de variables del entorno, se le antepondrá NOTIFY_.
Con tu propio script de notificación, la variable llegará como NOTIFY_CONTACT_PHONE.
13. Enviar mensajes a los usuarios
En el artículo que describe las reglas de notificación, explicamos con todo detalle cómo Checkmk puede informar a los contactos sobre problemas con hosts o servicios. Sin embargo, a veces es posible que quieras notificar a todos los usuarios (incluso a aquellos que no son contactos) sobre asuntos internos de la organización, por ejemplo, el mantenimiento del propio sistema Checkmk.
Para estos fines, Checkmk ofrece una pequeña herramienta de mensajes integrada, que es completamente independiente de las notificaciones. Puedes encontrar la herramienta en Setup > Users y, dentro de ella, en Users > Send user messages. Aquí tienes la posibilidad de enviar un mensaje a todos o a algunos de tus usuarios.

Puedes elegir entre cuatro tipos de mensajes:
Show popup message |
La próxima vez que el usuario abra la página, se abrirá una ventana emergente con el mensaje. |
Show hint in the 'User' menu |
Se le indicará al usuario que hay un mensaje mediante un símbolo numérico en el menú «Usuario» de la barra de navegación. |
Send email |
Envía un correo electrónico. Sin embargo, esto solo llegará a los usuarios que también tengan configurada una dirección de correo electrónico. |
Show in the dashboard element 'User messages' |
El mensaje se muestra en un dashlet del tipo User messages. |
Con Message expiration puedes borrar fácilmente los mensajes que aún no se hayan consultado tan pronto como dejen de ser relevantes.
Una característica especial de la opción «Show hint in the 'User' menu»: a través de User messages > Received messages, los usuarios pueden encontrar sus mensajes de colección y realizar el reconocimiento o eliminarlos.

Checkmk notifica automáticamente a los usuarios las notificaciones relevantes para la seguridad en sus cuentas. Estos incluyen cambios en la contraseña y la autenticación de dos factores (activación, desactivación, inicio de sesión mediante código de seguridad y la creación y revocación de códigos de seguridad). Si se ha almacenado una dirección de correo electrónico para el usuario, las notificaciones se envían por correo electrónico; de lo contrario, se envían a través de la herramienta de mensajes.
Los mensajes de seguridad solo se activan por acciones realizadas en la GUI de Checkmk. El usuario no puede eliminarlos, pero la duración de la visualización de estos mensajes se puede configurar en Setup > General > Global settings > User management > User security notification duration. Por defecto, la duración de la visualización es de 7 días.
14. Otros temas
Checkmk admite más métodos de inicio de sesión:
Conexión a LDAP/Directorio activo
Autenticación con SAML
Autenticación con Kerberos
Autenticación en una configuración con proxy inverso
Autenticación con autenticación básica HTTP
15. Archivos y directorios
La siguiente lista muestra qué archivos y directorios del servidor Checkmk están relacionados con la gestión de usuarios.
Como siempre, todas las entradas aquí son relativas al directorio del site (por ejemplo, /omd/sites/mysite).
| Ruta | Función |
|---|---|
|
Contraseñas de los usuarios en formato Apache |
|
Este archivo contiene un secreto aleatorio que se usa para firmar las cookies de inicio de sesión.
En entornos distribuidos, este archivo debería ser el mismo para todos los sitios —y así será si lo configuras todo a través de la interfaz web.
Si se modifica este archivo, todos los inicios de sesión quedan inmediatamente inválidos y los usuarios deben volver a iniciar sesión.
Este archivo es de acceso restringido |
|
Números de serie de las contraseñas por usuario. Cualquier cambio de contraseña incrementa el número de serie y, por lo tanto, hace inválidas todas las sesiones actuales. Esto garantiza que un cambio de contraseña cierre la sesión del usuario de forma fiable. |
|
Contiene los usuarios configurados con el entorno de configuración. Aquí solo se almacenan los datos de los usuarios que interactúan exclusivamente con la GUI. Los cambios manuales en este archivo surten efecto de inmediato. |
|
Información de contacto de los usuarios configurados con el entorno de configuración.
Aquí se almacenan todos los datos relevantes para la configuración del core de monitorización.
Solo aparecen aquí los usuarios que también son contactos.
Para que los cambios manuales surtan efecto aquí, la nueva configuración debe cargarse en el core, p. ej., con |
|
Cada usuario que haya iniciado sesión en la GUI al menos una vez tiene aquí una subcarpeta donde se guardan cosas como vistas y informes personalizados, la configuración actual de la barra lateral y mucho más, en pequeños archivos individuales con la extensión |
|
Archivo de registro de la interfaz de usuario. Aquí encontrarás mensajes de error relacionados con la autenticación y las conexiones LDAP. |
