Nutzung unserer Citrix Farm mit Grafana

gut, Ich hinterlasse Ihnen einen Beitrag, in dem wir sehen, wie wir die Informationen nutzen können, die Citrix in seinen Datenbanken speichert. Wie ich mir vorstellen kann, werden Sie es wissen, Citrix speichert die Aufzeichnungen darüber, was in unserer Citrix-Farm in BBDD passiert, aber das ja, so viel wie du bezahlst, so viel wie du bekommst, das heißt, Dies hängt von der Edition ab, für die Citrix Informationen in diesen Datenbanken speichert 1 Woche, die 1 mein o 1 Jahr. Hier sehen wir, wie wir mit Grafana und ohne Datumsbeschränkung unsere eigenen Panels herstellen!

ich sagte:, In diesem Beitrag sehen wir nur ein Beispiel mit den Benutzersitzungen, wo wir eine Geschichte darüber haben werden, wer was wann geöffnet hat, Natürlich können wir auch die Leistung von Citrix Servern sehen, los Delivery Controller, die VDAs… Sowie Kunden, Welche Version haben sie?, was SO…

Also, wenn es für Sie klingt, Citrix speichert normalerweise in 3 verschiedene Datenbanken die Informationen, die uns auf ihren Studio- oder Director-Konsolen anzeigen, Die Idee ist, einen vierten BD zu erstellen, in dem wir speichern, was uns interessiert, und dieser BD wird unser historischer sein, Das wird derjenige sein, den Grafana konsultiert, und so verlieren wir nicht die Geschichte und wir haben viel mehr Informationen und besonders personalisiert für uns, nur mit dem was wir sehen wollen.

Bevor Sie beginnen, Wir müssen diesen vierten BD erstellen lassen, Wir können dies von SQL Server Management Studio aus tun (SSMS) mit dem folgenden Code:

Erstellen Sie die Tabelle LogCitrix.dbo.Sesiones (FullName varchar(255),StartDate DATETIME,EndDate DATETIME,SessionIdleTime DATETIME,ConnectedViaIPAddress varchar(255),ConnectionID INT);


folgendermaßen, Wir benötigen eine .BAT-Datei, die wir mit der Häufigkeit ausführen, die uns interessiert, damit sie uns in dieser Datenbank speichert (unsere) die Informationen und so nutzen wir sie dann mit Grafana. Normalerweise führen wir diese BVT mit dem Windows Task Scheduler aus. Nennen wir es zum Beispiel LogCitrix.bat und dies wäre sein Inhalt:

@echo aus
sqlcmd -S NOMBRE_SERVIDOR_DELIVERY_CONTROLLER -i C.:\LogCitrix  o 100 sessiones.sql:\LogCitrix  sessiones.txt


Wir benötigen auch die .SQL-Datei, die Anweisungen dazu enthält, welchen Inhalt und welche Tabellen wir mitbringen werden, In meinem Beispiel, Dies wird sessiones.sql genannt, und das wäre sein Inhalt:

In logcitrix.dbo.sesiones einfügen
Wählen Sie U.FullName, S.Startdate, Sende Datum, S.SessionIdleTime, C.ConnectedViaIPAddress, C.id.
VON [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Session] S, [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Benutzer] die, [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Verbindung] C.
Wobei s.userid = U.id und S.currentconnectionid = c.id.;

mit sesionesCTE AS
(
WÄHLEN *, ZEILENNUMMER()ÜBER(PARTITION NACH Verbindungs-ID BESTELLEN NACH Verbindungs-ID) AS RowNumber FROM logcitrix.dbo.sesiones
)
DELETE FROM sesionesCTE WHERE RowNumber > 1

Ý Dies ist, was wir nach dem vorherigen Beispiel haben werden, geh was gesagt wurde, Dies ist eine Tabelle nur für Benutzersitzungen, Wo werden wir retten, wer wann verbunden ist?, wenn Sie sich abgemeldet haben und von wo aus Sie eine Verbindung hergestellt haben. Und ich sage,, Dies hängt von den Daten ab, die Sie mitbringen möchten. Sie müssen Daten aus anderen Tabellen mitbringen, Ich sage es jetzt nicht, um dein Leben nicht zu komplizieren 😉

Citrix-Sitzungsverlauf,

und nichts, mit den bereits gespeicherten Daten, wie immer, Wir müssen eine neue DataSource oder Datenquelle für den betreffenden SQL Server und die soeben erstellte Citrix DB erstellen, So können wir Ihnen Fragen stellen. So zeigen Sie die Tabelle an, Ich persönlich nutze das Panel gerne besser ‘Datatable Panel‘ von Brian Gann (Sie werden im Link sehen, wie einfach diese Art von Panel installiert wird), ist, dass wir Filter machen können, sucht…

Und es ist so einfach wie die Eingabe dieser Abfrage:

WÄHLEN [Vollständiger Name] AS 'NAME',
[Anfangsdatum] ALS 'ZEITSTART',

Fall
wann [SessionIdleTime] Ist dann null [Endtermin]
wann [Endtermin] IST nicht null und [SessionIdleTime] IST dann nicht null [SessionIdleTime]
ende als 'HORA END',
Fall

wann [SessionIdleTime] Ist null und [Endtermin] IST nicht null, dann 'CIERRE USUARIO'
wann [SessionIdleTime] Ist nicht null und [Endtermin] IST nicht null und DATEDIFF(Stunde,[SessionIdleTime],[Endtermin])&Ampere;Ampere;gt;= 2 dann 'SCHLIESSEN DURCH INAKTIVITÄT'
wann [SessionIdleTime] Ist nicht null und [Endtermin] IST nicht null und DATEDIFF(Stunde,[SessionIdleTime],[Endtermin])&Ampere;Ampere;lt;2 dann 'BENUTZER SCHLIESSEN'
Ende als 'SCHLIESSUNGSTYP',

--[SessionIdleTime],

-- [Endtermin],

Fall
wann [ConnectedViaIPAddress] = 'NETSCALER_GATEWAY_IP_ADDRESS' dann 'OUT OF OFFICE'
sonst 'BÜRO'
ende als 'VERBINDUNG VON' -,

-- [ConnectedViaIPAddress],
-- [Verbindungs-ID]
VON [LogCitrix].[dbo].[Sitzungen]
woher [Vollständiger Name] &Ampere;Ampere;lt;&Ampere;Ampere;gt; 'Rubén Tercero García' und [Anfangsdatum]&Ampere;Ampere;gt;"23.09.2019"
Bestellung nach StartDate absteigend

Anmeldezeiten,

Die uns bekannte Anmeldezeit in Citrix-Umgebungen ist sehr wichtig, wenn wir wollen,, Wir können sehen, wie lange Benutzer brauchen, um Sitzungen zu öffnen (und wann), In diesem Fall verwenden wir UPM und nicht FSLogix (Das Problem der mobilen Profile verschwindet). Und das, anstatt diesen BD der Geschichte zu konsultieren, Wir können direkt bei Citrix Produktionsdatenbanken nachfragen, in diesem Fall zur Überwachung (Also denk dran, Dazu muss eine weitere in Grafana erstellte DataSource erstellt werden, gegen die Produktion BD). Vorbereitungen mit dieser Auswahl:

WÄHLEN
$ __ timeEpoch(S.Startdate),
S.logonduration als Wert,
U.FullName als Metrik
VON
[NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Session] S, [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Benutzer] U.
WO
$ __ timeFilter(S.Startdate) und s.userid = U.id.
SORTIEREN NACH
S.Startdate ASC

Apps öffnen,

Als letztes Beispiel hinterlasse ich Ihnen eine Tabelle, in der wir die Apps sehen können, die Benutzer öffnen, Wir haben also eine Vorstellung davon, was auf unserer Farm passiert. Wir erstellen ein Grafikfeld und in diesem Fall haben wir es mit der folgenden Auswahl:

WÄHLEN
$ __ timeEpoch(AI.Startdate),
1 als Wert,
--Tata als Metrik,
A.PublishedName als Metrik
VON
[NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Session] S, [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Benutzer] die, [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Verbindung] C, [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Anwendung] EIN, [NOMBRE_BD_CITRIX_MONITORING].[MonitorData].[Anwendungsinstanz] AI

WO
$ __ timeFilter(S.Startdate) und s.userid = U.id und S.currentconnectionid = c.id und AI.sessionkey = S.sessionkey und A.id = AI.applicationid
SORTIEREN NACH
S.Startdate ASC

Dieser Beitrag die Idee, die Sie haben, ist das, dass Sie wissen, dass jede Datenbank, die wir in unseren Organisationen haben, ausgenutzt werden kann, und visualisieren Sie Ihre Daten, andere Beispiele, die ich habe, sind das, Käsevisualisierungen, welche Versionen Citrix Receiver / Citrix Workspace-Benutzer haben… Oder wenn Sie ein ERP haben, die gleiche, Nutzen Sie es und visualisieren Sie Navision-Daten, SAFT… oder wenn Sie einen Zeitmanager haben, Ich bin sicher, dass Ihre Chefs gerne Berichte in Echtzeit mit den Daten haben würden, die sie interessieren! Denken Sie daran, dass Sie auch später können Exportieren Sie dies in ein PDF schön und per E-Mail planmäßig an die Empfänger zu senden, die uns interessieren.

Ich hoffe du warst interessiert!