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. 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.

ldap new connection general properties

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:

ldap new connection ldap connection

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.

ldap new connection users

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.

ldap new connection users search filter 2

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:

ldap new connection users filter group

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.

ldap new connection groups

2.4. Testare la configurazione

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

ldap new connection diagnostics

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.

ldap new connection other

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:

ldap new connection 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.

ldap new connection roles

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

cn

Stringa

Normalmente il nome e il cognome dell'utente.

Authentication Expiration

pwdlastset

Intervallo

Quando un utente verrà logato o bloccato.

Disable notifications

disable_notifications

Booleano

True, False

True disabilita tutte le notifiche all'utente.

Email address

mail

Stringa

L'indirizzo e-mail dell'utente.

Mega menu icons

icons_per_item

Stringa

None, entry

Visualizza le icone verdi per tema (None) o le icone colorate per ogni voce di menu (entry) nei mega menu.

Navigation bar icons

nav_hide_icons_title

Stringa

None, hide

Visualizza solo simboli (hide) o icone con titolo (None) nella barra di navigazione.

Pager

mobile

Stringa

Un numero di contatto telefonico/pager nominato.

Show more / Show less

show_mode

Stringa

default_show_less, default_show_more, enforce_show_more

Mostra meno (default_show_less), più (default_show_more) o sempre tutto (enforce_show_more) nell'interfaccia utente. Per maggiori informazioni sulle modalità Mostra di meno e Mostra di più, consulta la Guida per principianti.

Sidebar position

ui_sidebar_position

Stringa

None, left

Visualizza la barra laterale a destra (None) o a sinistra (left).

Start URL to display in main frame

start_url

Stringa

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

URL della pagina iniziale.

Temperature unit

temperature_unit

Stringa

celsius, fahrenheit

Unità di misura della temperatura in Celsius o Fahrenheit per la visualizzazione nei grafici e nei Perf-O-Meter.

User interface theme

ui_theme

Stringa

facelift, modern-dark

Il tema dell'interfaccia utente: Scuro (modern-dark) o Chiaro (facelift).

Visibility of hosts/services

force_authuser

Booleano

True, False

Visualizza tutti gli host e i servizi (False) o solo quelli per i quali l'utente è assegnato come contatto (True).

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:

ldap distributed monitoring sync ldap

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).

ldap new connection ldap connection ssl

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ì.

ldap add new ca certificate

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:

~/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. File e directory

Percorso dei file Funzione

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

Tutte le connessioni LDAP configurate nel Setup saranno conservate in questo file.

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

Tutti gli utenti saranno definiti qui.

~/var/log/web.log

È il file di log in cui vengono registrati gli errori di connessione: è quindi una delle prime fonti di informazione in caso di problemi.

In questa pagina