Checkmk
to checkmk.com
Important

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

Dado que la definición manual de usuarios sólo es escalable hasta un cierto nivel, Checkmk proporciona una función para utilizar servicios basados en LDAP para gestionar usuarios, sincronizar automáticamente usuarios de los directorios de inicio y asignar automáticamente grupos de contacto, funciones y otros atributos a estos usuarios en Checkmk. Checkmk no se limita a una única fuente LDAP, y también puede distribuir los usuarios a otros sites conectados si es necesario.

2. Configurar una conexión LDAP

2.1. Conexión al servidor

Para crear una conexión a un servidor compatible con LDAP se necesita un usuario con permiso de lectura para el servidor. Como mínimo debe tener permiso de lectura para las personas y grupos que va a sincronizar. En el siguiente ejemplo este usuario se llama check_mk.

En Setup > Users > LDAP & Active Directory > Add connection se puede crear una nueva conexión. En el formulario, introduce primero el ID que desees para la conexión en la caja General Properties. Opcionalmente, se puede introducir un título sencillo y significativo en el campo Description. Como siempre, el ID debe ser único y no se puede cambiar posteriormente. Sólo puede estar formado por letras, dígitos, guiones y guiones bajos, empezando por una letra o guión bajo.

ldap new connection general properties

A continuación, en LDAP Connection se puede definir el servidor LDAP, así como uno o varios servidores Failover si están disponibles. Después, sólo hay que seleccionar Directory type y definir los datos del usuario para el acceso de lectura en Bind credentials. Ten en cuenta que hay que introducir el nombre de usuario con su ruta LDAP completa. No hay que tener en cuenta las mayúsculas ni las minúsculas. La configuración debe tener entonces un aspecto parecido al siguiente:

ldap new connection ldap connection

Checkmk no sólo admite Active Directory. Para modificar el directorio a, por ejemplo, OpenLDAP, selecciónalo en el campo Directory type - las modificaciones posteriores de la configuración resultantes de esta acción sólo se producen en unos pocos lugares.

El Failover Servers se utiliza cuando no se puede acceder al servidor real, o cuando se ha superado un límite de tiempo. Esto tiene sentido si no se utiliza un servidor propio local, pero se desea crear una conexión redundante.

La conexión de Checkmk con el servidor LDAP se mantiene siempre hasta que el servidor LDAP deja de ser accesible debido a un timeout u otros problemas. Sólo entonces se realiza el cambio al servidor de Failover. Lo mismo se aplica después del cambio: la conexión sólo volverá al servidor realmente configurado si el servidor de Failover deja de estar disponible.

2.2. Definir usuarios

A continuación se definirán las rutas de acceso a los usuarios y grupos, y se establecerán los filtros. En User base DN, introduce primero la ruta a través de la cual se encontrarán los usuarios. Asegúrate aquí de que la Unidad Operativa (UO ) se establece de forma que se incluyan todos los usuarios deseados y el menor número posible de otros. Cuantos más usuarios se consulten, más lento será el proceso de sincronización.

A continuación, establece la opción Search scope. Aquí puedes filtrar recursivamente por todos los usuarios situados en la OU y en las unidades inferiores a ella, o restringir la búsqueda a los situados directamente en esta OU. Si has introducido un usuario directamente en la ruta, debes seleccionar Search only the entry at the base DN- entonces sólo se incluirá a este usuario.

Con la ayuda de la opción Search filter puedes restringir aún más la selección de usuarios a importar. Si, por ejemplo, quieres sincronizar sólo los usuarios pertenecientes a un grupo concreto, establece una consulta LDAP como se muestra en la siguiente captura de pantalla. El requisito previo para ello es que los usuarios tengan el atributo memberof. Más adelante aprenderás cómo filtrar por pertenencia a un grupo, sin este atributo.

ldap new connection users

El filtro estándar también puede combinarse con el memberof, o con otros filtros:

(&(objectclass=user)(objectcategory=person)(memberof=cn=cmk-admins,ou=groups,dc=mycompany,dc=org))

Como se puede ver en la caja Users, hay más opciones para la búsqueda de usuarios. Con la opción User-ID attribute es posible especificar qué atributo debe utilizar el usuario como identificador de inicio de sesión en Checkmk. Posteriormente, el usuario utilizará este identificador al iniciar sesión. Por regla general, en Active Directory será el atributo sAMAccountName, que se utiliza como estándar en Checkmk. En OpenLDAP suele ser el atributo uid.

Con la opción Lower case User-IDs puedes convertir los identificadores sincronizados a minúsculas. Esto es posiblemente sensato, ya que, como ya se ha mencionado, Active Directory/LDAP no diferencia entre mayúsculas y minúsculas, pero Checkmk sí. Esto puede dar lugar a confusiones que esta opción puede solucionar.

La opción Umlauts in User-IDs (deprecated) sólo se proporcionó por motivos de compatibilidad y ya no debería utilizarse/alterarse.

Por último, pero no por ello menos importante, la opción Create users only on login te permite crear nuevos usuarios sólo una vez que inician sesión en Checkmk, en lugar de hacerlo durante la sincronización con LDAP.

ldap new connection users search filter 2

La opción Filter group sólo debe utilizarse si el servidor LDAP no es un Directorio Activo, y el atributo dinámico memberof no está disponible en los datos de usuario. En tales casos, el filtrado de usuarios tiene lugar en el propio Checkmk. En el proceso, es posible que se consulten muchos usuarios que luego se descartarán. Este escenario puede detenerse en gran medida mediante el módulo LDAP de Checkmk.

Sin embargo, si dependes de esta opción, deberás introducir aquí la ruta completa del grupo a filtrar:

ldap new connection users filter group

2.3. Definir grupos

Si deseas filtrar los usuarios por grupo, define la ruta al grupo para que se pueda realizar una coincidencia. Esto se puede hacer de la misma forma que con los usuarios -cuando se especifica directamente un grupo, en Search scope se puede utilizar la opción Search only the entry at the base DN - de lo contrario, la búsqueda se realizará directamente en la OU o también se incluirán sus unidades subsidiarias.

También aquí, con la ayuda de la opción Search filter es posible especificar cómo debe definirse el nombre del grupo en Checkmk. Además, puedes especificar el nombre del atributo (Member attribute) en el que se alojan los miembros del grupo. Checkmk utiliza member de forma estándar. En OpenLDAP también puede ser uniqueMember. Altera la opción según convenga.

ldap new connection groups

2.4. Probar la configuración

La primera configuración se ha completado, y para el diagnóstico la configuración puede guardarse y probarse a través del botón Save & test.

ldap new connection diagnostics

No es necesario especificar grupos para que la configuración funcione. Sin embargo, si en la OU sólo hay usuarios para Checkmk, tiene sentido restringir la selección mediante uno o varios grupos.

2.5. El intervalo de sincronización

Por último, también puedes definir la frecuencia con la que se sincronizarán automáticamente los usuarios. En un entorno en el que rara vez se producen cambios, la norma quizá sea demasiado estricta. Sin embargo, el intervalo no debe ser demasiado largo, para que cualquier cambio pueda reflejarse rápidamente en Checkmk.

ldap new connection other

Una sincronización puede iniciarse manualmente en cualquier momento en Setup > Users > Users > Synchronize users. Además, un usuario será sincronizado si es necesario cuando intente conectarse y aún no haya sido sincronizado.

3. Asignación automática de atributos

3.1. Grupos de contacto

No sirve de mucho poder crear a todos los usuarios automáticamente, si luego es necesario asignarlos a grupos de contacto manualmente. Checkmk proporciona la función de utilizar los grupos del servidor LDAP para permitir la asignación a grupos de contacto. Para ello, activa la opción Attribute sync plugins > Contactgroup Membership:

ldap new connection contactgroup membership

Para que una asignación tenga éxito, el nombre del grupo (cn) en el servidor LDAP debe ser idéntico al que aparece en Checkmk, es decir, el grupo oracle_admins sólo se asignará a un usuario si también está en el grupo oracle_admins en LDAP. Si, en lugar de esto, está en los grupos oracle-admins o ORACLE_admins, la asignación no funcionará. Por tanto, ten cuidado de utilizar la sintaxis correcta y el uso de mayúsculas y minúsculas en caso de que surjan problemas en esta situación.

Grupos anidados

Checkmk también ofrece -actualmente sólo para Active Directory- la posibilidad de utilizar grupos heredados. Activa esta opción si, por ejemplo, tu usuario está en el grupo oracle_admins, y este grupo es a su vez miembro de cmk-user.

Grupos de otras conexiones

Si se han creado varias conexiones LDAP en Checkmk, también se pueden utilizar grupos de otras fuentes para habilitar una asignación. Esto puede tener sentido si se ha configurado una conexión general, y otras se filtran sólo para grupos concretos.

3.2. Roles

Los roles también se pueden asignar automáticamente de forma similar, y en este caso también se utiliza la función Grupos anidados. Se pueden definir uno o varios grupos para cada rol. Selecciona el rol para el que se va a crear una conexión e introduce la ruta completa al grupo. De forma estándar, se realizará una búsqueda en los grupos que se encuentren en el filtro de grupos. Sin embargo, se pueden buscar otras conexiones para utilizar los grupos que allí se encuentren. Selecciona en la lista las conexiones que se van a buscar.

ldap new connection roles

Con la configuración de la imagen anterior, todos los usuarios del grupo designado serán asignados al rol Administrator, siempre que también estén sincronizados por el filtro de usuarios. Como se puede ver en la captura de pantalla, también se pueden seleccionar tus propios roles configurados y conectarlos con grupos LDAP.

3.3. Otros atributos

Para la sincronización de otra información de usuario, por regla general sólo se requiere la activación del Plugin correspondiente en Attribute Sync Plugins, y posiblemente también la introducción del atributo que proporciona la información. A continuación se muestra una tabla de los Plugins y el atributo utilizado (si no se ha configurado manualmente) y una breve descripción. Algunos de los atributos también se encuentran en el menú de usuario de un usuario.

Plugin Atributo Sintaxis Valores posibles Descripción

Alias

cn

Cadena

Normalmente el nombre y apellidos del usuario.

Authentication Expiration

pwdlastset

Intervalo

Cuándo se cerrará o bloqueará la sesión de un usuario.

Disable notifications

disable_notifications

Booleano

True, False

True desactiva todas las notificaciones al usuario.

Email address

mail

Cadena

Dirección de correo electrónico del usuario.

Mega menu icons

icons_per_item

Cadena

None, entry

Muestra iconos verdes por temas (None) o iconos de colores por cada elemento de menú (entry) en los mega menús.

Navigation bar icons

nav_hide_icons_title

Cadena

None, hide

Mostrar sólo iconos (hide) o iconos con título (None) en la barra de navegación.

Pager

mobile

Cadena

Un número de teléfono/pager de contacto designado.

Show more / Show less

show_mode

Cadena

default_show_less, default_show_more, enforce_show_more

Mostrar menos (default_show_less), más (default_show_more) o siempre todo (enforce_show_more) en la interfaz de usuario. Para más información sobre los modos Mostrar menos y Mostrar más, consulta la Guía para principiantes.

Sidebar position

ui_sidebar_position

Cadena

None, left

Mostrar la barra lateral a la derecha (None) o a la izquierda (left).

Start URL to display in main frame

start_url

Cadena

Ejemplos: view.py?view_name=allhosts o dashboard.py

URL de la página de inicio.

Temperature unit

temperature_unit

Cadena

celsius, fahrenheit

Unidad de temperatura en grados Celsius o Fahrenheit para su visualización en gráficos y Perf-O-Metros.

User interface theme

ui_theme

Cadena

facelift, modern-dark

El tema de la interfaz de usuario: Oscuro (modern-dark) o Claro (facelift).

Visibility of hosts/services

force_authuser

Booleano

True, False

Mostrar todos los host y servicios (False) o sólo aquellos para los que el usuario está asignado como contacto (True).

4. LDAP en entornos distribuidos

Al configurar una monitorización distribuida con una configuración centralizada, puedes especificar si las conexiones LDAP deben sincronizarse desde el site remoto, y cuáles. Si no se especifica lo contrario, el propio site remoto sincronizará a todos los usuarios de la conexión configurada. De este modo, los cambios se reflejarán automáticamente en cada site dentro del plazo definido y no será necesario copiarlos primero desde el site central al site o sites remotos. La sincronización también puede restringirse a conexiones concretas o desactivarse por completo. En el segundo caso, los usuarios del site central se recuperan de las conexiones LDAP y se copian en los sites remotos con un activar cambios.

Puedes configurar los ajustes en Setup > General > Distributed monitoring en la dirección Properties de la conexión. Aquí tienes un ejemplo en el que se selecciona la conexión configurada anteriormente:

ldap distributed monitoring sync ldap

5. Asegurar LDAP con SSL

Para asegurar la conexión LDAP con SSL, sólo tienes que activar el checkbox Use SSL en los datos de conexión y coincidir con TCP port (normalmente 636 para SSL en LDAP).

ldap new connection ldap connection ssl

Si el servidor o servidores LDAP utilizan un certificado firmado por una autoridad de certificación de confianza, ya está hecho todo lo necesario para establecer una conexión cifrada.

Si se va a utilizar un certificado autofirmado, la conexión sólo podrá establecerse después de que el certificado se haya importado al almacén de certificados. Sólo entonces se clasificará como de confianza y se establecerá la conexión.

Para ello, sólo tienes que ir a Setup > General > Global settings > Site management > Trusted certificate authorities for SSL. Haz clic en Add new CA certificate or chain y pega el contenido de tu archivo CRT o PEM o elige Upload CRT/PEM File y haz exactamente eso.

ldap add new ca certificate

6. Diagnóstico de errores

El diagnóstico de errores se implementa directamente en los ajustes de configuración. Incluso después de la configuración, es posible comprobar aquí el posible origen de un error. Además, los mensajes de error se escribirán en web.log. Estos mensajes también pueden señalar el origen de un error:

~/var/log/web.log
2020-09-19 16:03:17,155 [40] [cmk.web 31797] /ldaptest/check_mk/wato.py Internal error: Traceback (most recent call last):
  File "/omd/sites/ldaptest/share/check_mk/web/htdocs/wato.py", line 6563, in mode_edit_ldap_connection
    state, msg = test_func(connection, address)
  File "/omd/sites/ldaptest/share/check_mk/web/htdocs/wato.py", line 6506, in test_group_count
    connection.connect(enforce_new = True, enforce_server = address)
  File "/omd/sites/ldaptest/share/check_mk/web/plugins/userdb/ldap.py", line 274, in connect
    ('\n'.join(errors)))
MKLDAPException: LDAP connection failed:
ldap://myldap.mycompany.org: Can't contact LDAP server

7. Archivos y directorios

Ruta del archivo Función

~/etc/check_mk/multisite.d/wato/user_connections.mk

Todas las conexiones LDAP configuradas en la Configuración se conservarán en este archivo.

~/etc/check_mk/multisite.d/wato/users.mk

Aquí se definirán todos los usuarios.

~/var/log/web.log

Es el archivo de registro en el que se registran los errores de conexión, por lo que es una de las primeras fuentes de información cuando se producen problemas.

En esta página