
Monitoritzant els perfils de Citrix amb Centreon i Grafana
Aquest document l'utilitzarem per monitoritzar amb Centreon la mida i nombre de fitxers que tenen els nostres perfils mòbils de Citrix, és clar que podem utilitzar-lo per monitoritzar altres carpetes.
En principi ens basarem en un script de PowerShell que normalment executarem des del servidor que és el que emmagatzema els perfils. Aquest script llegirà tot el contingut del directori que indiquem i ens traurà un resum per cada usuari, el seu nombre de fitxers, i el que ocupa la seva carpeta o perfil. A més l'script està totalment preparat i l'output ho farà correctament per tenir mètriques de cada usuari. Com sempre, això ho executarem de manera remota amb NRPE, així que si encara no saps com funciona o com instal·lar-te'l, fica una ullada abans a aquest post vell.
Si ens descarreguem el següent script de PowerShell i modifiquem la línia 15, que és la ruta de la carpeta a analitzar el tenim llest per provar!
# Vaci variables, jo que es pq.. :) $Objectes = "" $Tamano = "" $Profile = "" $TotalObjects = "" $SizeMB = "" $lines = "" $line = "" $Tots = "" $Files = "" $Size = "" # Exporta a CSV les carpetes amb la seva mida i total d'objectes (Get-Culture).NumberFormat.NumberDecimalSeparator = '.' Get-ChildItem -path "F:\PerfilsCitrixUPM*" | Foreach { $Files = Get-ChildItem $_. FullName -Recurse| Where-Object { -not $_. PSIsContainer } -ErrorAction SilentlyContinue $Size = (( $Files | Measure-Object -Property Length -Sum).Sum /1MB) $Size = [math]::round($Size,2) [PSCustomObject]@{Profile = $_. Name ; TotalObjects = "$($Files.Count)" ; SizeMB = $Size} } | Export-CSV "perfiles-size.csv" -NoTypeInformation # Formatea estil Nagios $lines = Get-Content .perfiles-size.csv | Select -skip 1 | ConvertFrom-Csv -Header Profile,TotalObjects,SizeMB ForEach ($line in $lines){ $Profile = $($line. Profile) $TotalObjects = $($line. TotalObjects) -as [Int] $SizeMB = $($line. SizeMB) -as [Int] $Tots =$Profile.replace(' ','') + "_tamano =" + $SizeMB + " " + $Profile.replace(' ','') + "_ficheros =" + $TotalObjects + " " + $Tots # Més de 1000 objectes If ($TotalObjects -gt 1000){ $Objectes = $Profile.replace(' ','') + ", " + $Objectes } # Més de 100Mb (100) If ($SizeMB -gt 200){ $Tamano = $Profile.replace(' ','') + ", " + $Tamano } } If ($Objectes.length -gt 0 -And $Tamano.length -gt 0){ Write-Host "CRITICAL - Molts arxius a" $Objectes + "Perfil gran en" $Tamano"|"$Tots exit 2 } ElseIf ($Objectes.length -gt 0){ Write-Host "CRITICAL - Molts arxius a" $Objectes"|"$Tots exit 2 } ElseIf ($Tamano.length -gt 0){ Write-Host "CRITICAL - Perfil gran en" $Tamano"|"$Tots exit 2 } Else { Write-Host "OK - Perfils correctament |"$Tots exit 0 }
I ara donem d'alta com ja coneixem, en el fitxer nsclient.ini la configuració necessària per executar aquest script des de la màquina de Centreon, l' únic i a tenir en compte, si teniu molts fitxers i triga molt a fer la consulta, li podem pujar el timeout o el nombre de caràcters si fos necessari, alguna cosa com això ens serviria:
[/settings/NRPE/server] timeout = 120 payload length = 15000 [/settings/external scripts] timeout = 120 [/settings/external scripts/scripts] check_perfiles = cmd /c echo scripts\Tamano_Perfiles_UPM.ps1; exit($lastexitcode) | powershell.exe -command -
I si aquest fos el nostre cas, a l'hora de crear el servei a Centreon després de passar-li l'argument 'check_perfiles’ que indiquem en el nsclient.ini, podem acompanyar-lo de ‘ -P 15000 -t 120’ com a arguments extra, això és, si necessitem ampliar el nombre de caràcters o el timeout a una cosa específica, en pla 'nyapa’ per no tocar el Comando.
I llest! Després d'exportar la configuració ja tindrem controlat la jauria de perfils Citrix UPM o si utilitzem un altre tipus de perfil mòbil, o si volem monitoritzar qualsevol altra carpeta per veure la seva mida, o nombre d' arxius.
I res, per recordar, encara que aquesta gràfica sigui super chunga, però era per donar una idea, que podeu integrar-lo amb Grafana, que és molt senzill, si vols saber com muntar-te'l, recorda aquest altre document.
Espero que hagi servit d'utilitat, una salutació a tod@s!