![]() |
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. Introduzione
Poiché la definizione manuale degli utenti è scalabile solo fino a un certo livello, Checkmk offre la possibilità di utilizzare servizi basati su LDAP per la gestione degli utenti, di sincronizzare automaticamente gli utenti dalle directory home e di assegnare automaticamente gruppi di contatto, ruoli e altri attributi a questi utenti in Checkmk. Checkmk non è limitato a una singola fonte LDAP e può anche distribuire gli utenti ad altre sedi connesse, se necessario.
2. Configurare una connessione LDAP
2.1. Connessione al server
La creazione di una connessione a un server compatibile con LDAP richiede un utente con permesso di lettura per il server. Come minimo deve avere il permesso di lettura per le persone e i gruppi che deve sincronizzare. Nell'esempio seguente questo utente si chiama check_mk
.
Alla voce Setup > Users > LDAP & Active Directory > Add connection è possibile creare una nuova connessione. Nel modulo, inserisci prima di tutto il nome ID desiderato per la connessione nel box General Properties. Nel campo Description è possibile inserire facoltativamente un titolo semplice e significativo. Come sempre, il nome ID deve essere unico e non può essere modificato in seguito. Può essere composto solo da lettere, cifre, trattini e trattini bassi, iniziando con una lettera o un trattino basso.

Quindi, alla voce LDAP Connection è possibile definire il server LDAP e uno o più server failover, se disponibili. A questo punto, è necessario selezionare solo Directory type e definire i dati dell'utente per l'accesso in lettura alla voce Bind credentials. Si noti che è necessario inserire il nome dell'utente con il suo percorso LDAP completo, senza tenere conto di maiuscole e minuscole. La configurazione dovrebbe essere simile a questa:

Checkmk supporta più di Active Directory. Per modificare la directory, ad es. OpenLDAP, selezionala nel campo Directory type - le ulteriori modifiche alla configurazione derivanti da questa azione si verificano solo in pochi punti.
Il sito Failover Servers viene utilizzato quando il server reale non è accessibile o quando è stato superato un limite di tempo. Questo ha senso se non c'è un server locale in uso, ma si vuole creare una connessione ridondante.
La connessione di Checkmk con il server LDAP viene sempre mantenuta fino a quando il server LDAP non è più accessibile a causa di un timeout o di altri problemi. Solo allora viene effettuato il passaggio al server failover. Lo stesso vale dopo lo switch: la connessione tornerà al server effettivamente configurato solo se il server failover diventa indisponibile.
2.2. Definizione degli utenti
Successivamente verranno definiti i percorsi degli utenti e dei gruppi e impostati i filtri. In User base DN, inserisci innanzitutto il percorso attraverso il quale trovare gli utenti. Assicurati che l'Unità Operativa (UO) sia impostata in modo da includere tutti gli utenti desiderati e il minor numero possibile di altri. Più utenti vengono interrogati, più lento sarà il processo di sincronizzazione.
Imposta quindi l'opzione Search scope. Qui puoi filtrare in modo ricorsivo tutti gli utenti che si trovano nell'OU e nelle unità sottostanti, oppure limitare la ricerca a quelli che si trovano direttamente in questa OU. Se hai inserito un utente direttamente nel percorso, devi selezionare Search only the entry at the base DN: solo questo utente sarà quindi incluso.
Con l'aiuto dell'opzione Search filter puoi restringere ulteriormente la selezione degli utenti da importare. Se ad esempio vuoi sincronizzare solo gli utenti che appartengono a un gruppo specifico, imposta una query LDAP come mostrato nella seguente schermata. Il prerequisito per questo è che gli utenti abbiano l'attributo memberof
. Come filtrare in base all'appartenenza a un gruppo, senza questo attributo, lo puoi apprendere di seguito.

Il filtro standard può anche essere combinato con il filtro memberof
o con altri filtri:
(&(objectclass=user)(objectcategory=person)(memberof=cn=cmk-admins,ou=groups,dc=mycompany,dc=org))
Come si può vedere nel box Users, ci sono altre opzioni per la ricerca di un utente. Con l'opzione User-ID attribute è possibile specificare quale attributo l'utente deve utilizzare come ID di login in Checkmk. L'utente utilizzerà poi questo login quando effettuerà l'accesso. Di regola, in Active Directory sarà l'attributo sAMAccountName
, che è utilizzato come standard in Checkmk. In OpenLDAP è spesso l'attributo uid
.
Con l'opzione Lower case User-IDs puoi convertire gli ID sincronizzati in lettere minuscole. Si tratta di una scelta sensata perché, come già detto, Active Directory/LDAP non distingue tra lettere maiuscole e minuscole, mentre Checkmk lo fa. Ciò può generare confusione che questa opzione può risolvere.
L'opzione Umlauts in User-IDs (deprecated) è stata fornita solo per motivi di compatibilità e non dovrebbe essere più utilizzata o modificata.
Infine, ma non meno importante, l'opzione Create users only on login ti permette di creare nuovi utenti solo una volta che effettuano il login a Checkmk invece che durante la sincronizzazione con LDAP.

L'opzione Filter group deve essere utilizzata solo se il server LDAP non è una Active Directory e se l'attributo dinamico memberof
non è disponibile nei dati dell'utente. In questi casi, il filtraggio degli utenti avviene in Checkmk stesso. Nel processo è possibile che vengano interrogati molti utenti che in seguito verranno scartati. Questo scenario può essere in gran parte evitato dal modulo LDAP di Checkmk.
Tuttavia, nel caso in cui dovessi dipendere da questa opzione, è necessario inserire qui il percorso completo del gruppo da filtrare:

2.3. Definizione dei gruppi
Se desideri filtrare gli utenti in base al gruppo, definisci il percorso del gruppo in modo da poter effettuare una corrispondenza. Questo può essere fatto allo stesso modo degli utenti: quando un gruppo viene specificato direttamente, in Search scope è possibile utilizzare l'opzione Search only the entry at the base DN, altrimenti la ricerca verrà effettuata direttamente nella OU o verranno incluse anche le sue unità sussidiarie.
Anche in questo caso, con l'aiuto dell'opzione Search filter è possibile specificare il modo in cui il nome del gruppo deve essere definito in Checkmk. Puoi inoltre specificare il nome dell'attributo (Member attribute) in cui sono alloggiati i membri del gruppo. Checkmk utilizza member
come standard. In OpenLDAP questo può essere anche uniqueMember
. Modifica l'opzione come più opportuno.

2.4. Testare la configurazione
La prima configurazione è ora completa e per la diagnosi può essere salvata e testata tramite il pulsante Save & test.

Non è necessario specificare i gruppi per ottenere una configurazione funzionante. Tuttavia, se nell'OU ci sono solo utenti per Checkmk, è opportuno limitare la selezione tramite uno o più gruppi.
2.5. L'intervallo di sincronizzazione
Infine, puoi anche definire la frequenza con cui gli utenti devono essere sincronizzati automaticamente. In un ambiente in cui le modifiche avvengono raramente, lo standard è forse troppo stretto. L'intervallo di tempo non dovrebbe comunque essere troppo lungo, in modo che qualsiasi modifica possa essere riflessa tempestivamente in Checkmk.

La sincronizzazione può essere avviata manualmente in qualsiasi momento in Setup > Users > Users > Synchronize users. Inoltre, se necessario, un utente viene sincronizzato quando tenta di effettuare il log-in e non è ancora stato sincronizzato.
3. Assegnazione automatica degli attributi
3.1. Gruppi di contatto
Non serve a molto poter creare automaticamente tutti gli utenti, se poi è necessario assegnarli manualmente ai gruppi di contatto. Checkmk offre la funzione di utilizzare i gruppi del server LDAP per consentire l'assegnazione ai gruppi di contatto. A tal fine, attiva l'opzione Attribute sync plugins > Contactgroup Membership:

Affinché l'assegnazione vada a buon fine, il nome del gruppo (cn
) sul server Checkmk deve essere identico a quello di Checkmk: ad esempio, il gruppo oracle_admins
verrà assegnato a un utente solo se si trova anche nel gruppo oracle_admins
in LDAP. Se invece si trova nei gruppi oracle-admins
o ORACLE_admins
, l'assegnazione non funzionerà. Per questo motivo, se dovessero sorgere problemi in questa situazione, fai attenzione alla sintassi corretta e all'uso di maiuscole e minuscole.
Gruppi annidati
Checkmk offre anche - attualmente solo per Active Directory - la possibilità di utilizzare gruppi ereditati. Attiva questa opzione se, ad esempio, il tuo utente fa parte del gruppo oracle_admins
e questo gruppo è a sua volta membro di cmk-user
.
Gruppi da altre connessioni
Se in Checkmk sono state create più connessioni LDAP, è possibile utilizzare anche gruppi provenienti da altre fonti per abilitare un'assegnazione. Questo può avere senso se è stata configurata una connessione generale e le altre sono filtrate solo per gruppi particolari.
3.2. I ruoli
Anche i ruoli possono essere assegnati automaticamente in modo simile e la funzione Gruppi annidati viene utilizzata anche in questo caso. Per ogni ruolo è possibile definire uno o più gruppi. Seleziona il ruolo per il quale deve essere creata una connessione e inserisci il percorso completo del gruppo. Come standard, la ricerca verrà effettuata nei gruppi trovati nel filtro gruppi. Tuttavia, è possibile cercare altre connessioni per utilizzare i gruppi trovati. Seleziona le connessioni da cercare dall'elenco.

Con le impostazioni riportate nell'immagine precedente, tutti gli utenti del gruppo nominato saranno assegnati al ruolo Administrator, a condizione che siano sincronizzati anche dal filtro utenti. Come si può vedere nella schermata, è possibile selezionare anche i ruoli configurati da te e collegarli ai gruppi LDAP.
3.3. Altri attributi
Per la sincronizzazione di altre informazioni sull'utente, di regola è necessaria solo l'attivazione del relativo plug-in in Attribute Sync Plugins ed eventualmente anche l'inserimento dell'attributo che fornisce l'informazione. Di seguito è riportata una tabella dei plug-in e dell'attributo utilizzato (se non impostato manualmente) e una breve descrizione. Alcuni degli attributi si trovano anche nel menu Utente di un utente.
Plug-in | Attributo | Sintassi | Valori possibili | Descrizione |
---|---|---|---|---|
Alias |
|
Stringa |
Normalmente il nome e il cognome dell'utente. |
|
Authentication Expiration |
|
Intervallo |
Quando un utente verrà logato o bloccato. |
|
Disable notifications |
|
Booleano |
|
|
Email address |
|
Stringa |
L'indirizzo e-mail dell'utente. |
|
Mega menu icons |
|
Stringa |
|
Visualizza le icone verdi per tema ( |
Navigation bar icons |
|
Stringa |
|
Visualizza solo simboli ( |
Pager |
|
Stringa |
Un numero di contatto telefonico/pager nominato. |
|
Show more / Show less |
|
Stringa |
|
Mostra meno ( |
Sidebar position |
|
Stringa |
|
Visualizza la barra laterale a destra ( |
Start URL to display in main frame |
|
Stringa |
Esempi: |
URL della pagina iniziale. |
Temperature unit |
|
Stringa |
|
Unità di misura della temperatura in Celsius o Fahrenheit per la visualizzazione nei grafici e nei Perf-O-Meter. |
User interface theme |
|
Stringa |
|
Il tema dell'interfaccia utente: Scuro ( |
Visibility of hosts/services |
|
Booleano |
|
Visualizza tutti gli host e i servizi ( |
4. LDAP in ambienti distribuiti
Quando configuri un monitoraggio distribuito con una configurazione centralizzata, puoi specificare se e quali connessioni LDAP devono essere sincronizzate dal sito remoto. Se non è specificato diversamente, sarà il sito remoto stesso a sincronizzare tutte le connessioni configurate. In questo modo le modifiche saranno automaticamente riflesse in ogni sito entro l'intervallo di tempo definito e non dovranno essere prima copiate dal sito centrale a quelli remoti. La sincronizzazione può anche essere limitata a connessioni specifiche o completamente disabilitata. Nel secondo caso, gli utenti dell'istanza centrale vengono recuperati dalle connessioni LDAP e copiati nei siti remoti con l'attivazione delle modifiche.
Puoi configurare le impostazioni in Setup > General > Distributed monitoring nel sito Properties della connessione. Ecco un esempio in cui è selezionata la connessione impostata sopra:

5. Proteggere LDAP con SSL
Per proteggere la connessione LDAP con SSL, è sufficiente attivare il checkbox Use SSL nei dati della connessione e abbinare TCP port (di solito 636
per SSL in LDAP).

Se i server LDAP utilizzano un certificato firmato da un'autorità di certificazione affidabile, tutto il necessario per stabilire una connessione crittografata è già stato fatto.
Se si utilizza un certificato self-signed, la connessione può essere stabilita solo dopo che il certificato è stato importato nell'archivio dei certificati. Solo allora sarà classificato come affidabile e la connessione sarà stabilita.
Per farlo, basta andare su Setup > General > Global settings > Site management > Trusted certificate authorities for SSL. Clicca su Add new CA certificate or chain e incolla il contenuto del tuo file CRT o PEM oppure scegli Upload CRT/PEM File e fai così.

6. Diagnosi degli errori
La diagnosi degli errori è implementata direttamente nelle impostazioni di configurazione. Anche dopo la configurazione, è possibile verificare la possibile fonte di un errore. I messaggi di errore saranno scritti anche su web.log
. Questi messaggi possono anche indicare la fonte dell'errore:
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. File e directory
Percorso dei file | Funzione |
---|---|
|
Tutte le connessioni LDAP configurate nel Setup saranno conservate in questo file. |
|
Tutti gli utenti saranno definiti qui. |
|
È il file di log in cui vengono registrati gli errori di connessione: è quindi una delle prime fonti di informazione in caso di problemi. |