Monitorizando los perfiles de Citrix con Centreon y Grafana
Este documento lo utilizaremos para monitorizar con Centreon el tamaño y número de ficheros que tienen nuestros perfiles móviles de Citrix, claro está que podemos utilizarlo para monitorizar otras carpetas.
Hasieran PowerShelf skript batean oinarrituko gara, normalean zerbitzariatik exekutatuko duguna, eta horrek du profilen biltegiratzea. Script honek adierazten dugun direktorioaren eduki guztia irakurriko du eta erabiltzaile bakoitzerako laburpen bat emango digu, haien fitxategi kopurua, eta haien karpeta edo profilak hartzen duen espazioa. Gainera, script-a guztiz prest dago eta output-a behar bezala egingo du erabiltzaile bakoitzeko metrikak izateko. Betiko moduan, hau urruneko moduan exekutatuko dugu NRPE-rekin, beraz oraindik ez badakizu nola funtzionatzen duen edo nola instalatu, echa un vistazo antes a posta zahar hau.
PowerShell script hau deskargatzen badugu eta lerro hau aldatzen badugu 15, analisatu beharreko karpetaren ibilbidea, prest dugu probatzeko!
# Altuera aldagaiak, ni dakidana pq.. :)
$Objektuak = ""
$Tamaina = ""
$Profile = ""
$TotalObjects = ""
$SizeMB = ""
$lines = ""
$line = ""
$Todos = ""
$Files = ""
$Size = ""
# Exporta a CSV las carpetas con su tamaño y total de objetos
(Get-Culture).NumberFormat.NumberDecimalSeparator = '.'
Get-ChildItem -path "F:\PerfilesCitrixUPM*" | 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 estilo 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]
$Todos =$Profile.replace(' ','') + "_tamano=" + $SizeMB + " " + $Profile.replace(' ','') + "_ficheros=" + $TotalObjects + " " + $Todos
# Más de 1000 objetos
If ($TotalObjects -gt 1000){
$Objetos = $Profile.replace(' ','') + ", " + $Objetos
}
# Más de 100Mb (100)
If ($SizeMB -gt 200){
$Tamano = $Profile.replace(' ','') + ", " + $Tamano
}
}
If ($Objetos.length -gt 0 -And $Tamano.length -gt 0){
Write-Host "CRITICAL - Muchos archivos en" $Objetos + "Perfil grande en" $Tamano"|"$Todos
exit 2
}
ElseIf ($Objetos.length -gt 0){
Write-Host "CRITICAL - Muchos archivos en" $Objetos"|"$Todos
exit 2
}
ElseIf ($Tamano.length -gt 0){
Write-Host "CRITICAL - Perfil grande en" $Tamano"|"$Todos
exit 2
}
Else {
Write-Host "OK - Perfiles correctamente |"$Todos
exit 0
}
Y ahora damos de alta como ya conocemos, en el fichero nsclient.ini la configuración necesaria para ejecutar ese script desde la máquina de Centreon, lo único y a tener en cuenta, si tenéis muchos ficheros y tarda mucho en hacer la consulta, le podemos subir el timeout o el número de caracteres si fuese necesario, algo como esto nos serviría:
[/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 -
Y si ese fuera nuestro caso, a la hora de crear el servicio en Centreon tras pasarle el argumento 'check_perfiles’ que indicamos en el nsclient.ini, lagundu dezakegu honekin ‘ -P 15000 -t 120’ extra argumentu gisa, hau da, karaktere kopurua edo denbora-muga zehatz bateraino handitu behar badugu, ‘ñaparen’ moduan’ Komandoa ukitu gabe.
eta prest! Konfigurazioa esportatu ondoren, Citrix UPM profilak kontrolatuta izango ditugu edo bestelako profila bada mugikorra, edo beste karpeta edozein monitorizatu nahi badugu, bere tamaina ikusteko, edo fitxategi kopurua.
Eta ezer, oroitzeko, grafiko hau oso zaila izan arren, baina ideia bat emateko zen, Grafanarekin integratu dezakezue, oso erraza da, nola konfiguratu nahi baduzu, recuerda beste dokumentu hau.
Espero dut baliagarria izan dela, agur guztiak!












































