Configurare il monitoraggio via CIM su ESXi tramite powershell

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Email -- 0 Flares ×

Come in molti datacenter, utilizziamo software di monitoraggio per controllare i numerosi parametri della nostra infrastruttura. Grazie a CIM, è possibile usare direttamente queste APIs per monitorare l’hardware e lo stato di salute dei server ESXi, piuttosto che usare script e agent.

Nagios possiede alcuni ottimi plugin per usare CIM e monitorare ESXi, ma il problema è configurare correttamente le credenziali necessarie per accedere alle API CIM. Ho scoperto che William Lam ha già affrontato questo problema, e i suoi risultati sono stati raccolti in questo ottimo post.

Tuttavia, trovandomi più a mio agio con PowerShell piuttosto che Perl o Python, ho usato le sue scoperte per ricreare lo stesso script.

L’obiettivo, in entrambi i metodi, è di creare un utente che abbia i privilegi minimi indispensaili per leggere i dati CIM, in modo da garantire un ambiente protetto. Infatti, per default ESXi possiede solo questi ruoli locali:

Se volete creare un utente per Nagios, dovrà possedere questo specifico privilegio:

Quindi, dovremo creare un nuovo ruolo che possieda solo questo privilegio, in modo da limitare al minimo l’interazione dell’utente nagios col sistema. Nello script di William, il privilegio viene invocato tramite il suo id, mentre in powershell dovrete usare il suo nome. Potete vedere il nome esatto nella schermata precedente, o verificarlo attraverso powershell (Get-VIPrivilege senza ulteriori argomenti vi da la lista completa):

Inoltre, come Williaw ha scoperto, l’utente dovrà far parte del gruppo root. Quindi, per cercare di limitarlo, lo script gli toglierà ogni accesso shell.

Questo è lo script completo PowerShell script. Con un semplice ciclo For potrete caricare una lista di server ESXi e configurarli tutti insieme.