Konfiguration¶
Die Konfiguration des Servers basiert auf dem Konfigurationssystem.
Im einfachsten Fall legst du deine Konfiguration in der Datei configuration.xml ab und platzierst sie im Anwendungsverzeichnis.
Alle Details zum Konfigurationssystem findest du im Kapitel Konfigurationssystem.
Schema der Konfiguration¶
Das folgende Schema zeigt die grundlegende Struktur der Serverkonfiguration:
Module
Application
Complex list definition
Must not be empty.
Must be one of this:
Client,Agent
Must not be empty.
Must be one of this:
Message,HTTP
List
Complex list definition
Must not be empty.
Must not be empty.
Must not be empty.
Must be one of this:
Any,Message,HTTP
Default Value:
Any
Must be one of this:
ReadSessionList,ReadIdleState,SendMessage,ImportSession,ManageScheduledMessagesMust not have duplicates.
List
Complex list definition
Default Value:
Yes
Complex list definition
Must not be empty.
Must be a valid regular expression.
Default Value:
Yes
List
Complex list definition
Must be one of this:
ReadSessionList,ReadIdleState,SendMessage,ManageScheduledMessagesMust not have duplicates.
Die Liste network¶
Die Liste network definiert, welche Netzwerkschnittstellen der Server bereitstellt.
Jeder Eintrag konfiguriert eine Schnittstelle mit Protokoll und Port.
Alle gültigen Kombinationen findest du in der folgenden Tabelle:
Schnittstelle |
Protokoll |
Port |
Beschreibung |
|---|---|---|---|
|
|
|
Schnittstelle für alle Agents und Nodes. |
|
|
|
Für den Client und die Raptor-Integration. |
|
|
|
Für Skripte und externe Anwendungen. |
Nur die hier konfigurierten Schnittstellen werden aktiviert. Fehlt ein Eintrag, bleibt die Schnittstelle deaktiviert.
Das folgende Beispiel aktiviert die Agent- und Client-Schnittstellen mit den Standard-Ports. Die HTTP-Schnittstelle für Skripte bleibt deaktiviert:
<List name="network">
<ListEntry>
<Value name="interface">Agent</Value>
<Value name="protocol">Message</Value>
<Value name="scope">Any</Value>
</ListEntry>
<ListEntry>
<Value name="interface">Client</Value>
<Value name="protocol">Message</Value>
<Value name="scope">Any</Value>
</ListEntry>
</List>
Der Wert interface¶
Mit dem Wert interface bestimmst du, welche Schnittstelle konfiguriert wird.
Folgende Werte sind möglich:
Bezeichner |
Beschreibung |
|---|---|
|
Wählt die Agent-Schnittstelle. Diese wird von den Agents und Nodes verwendet. |
|
Wählt die Client-Schnittstelle. Diese wird vom Client, der Raptor-Integration und auch vom REST-API genutzt. |
Der Wert interface wird immer zusammen mit protocol verwendet. Eine Übersicht aller Kombinationen findest du hier: Die Liste network.
<List name="network">
<ListEntry>
<Value name="interface">Agent</Value>
<Value name="protocol">Message</Value>
<Value name="scope">Any</Value>
</ListEntry>
...
</List>
Der Wert protocol¶
Mit protocol legst du fest, welches Kommunikationsprotokoll für die Schnittstelle genutzt wird:
Bezeichner |
Beschreibung |
|---|---|
|
Kompaktes, verschlüsseltes und authentifiziertes Protokoll für die Kommunikation zwischen EducateIT-Anwendungen. |
|
Sicheres HTTPS-REST-Protokoll. Hierbei erfolgt die Kommunikation über JSON.
Mit dem Wert |
Auch protocol wird immer in Kombination mit interface verwendet. Eine Übersicht aller Kombinationen findest du hier: Die Liste network.
<List name="network">
<ListEntry>
<Value name="interface">Agent</Value>
<Value name="protocol">Message</Value>
<Value name="scope">Any</Value>
</ListEntry>
...
</List>
Der Wert port¶
Mit dem optionalen Wert port kannst du den Standardport einer Schnittstelle überschreiben.
Wird dieser Wert nicht gesetzt, nutzt die Schnittstelle automatisch ihren Standardport (siehe Die Liste network).
<List name="network">
<ListEntry>
<Value name="interface">Agent</Value>
<Value name="protocol">Message</Value>
<Value name="port">12345</Value>
<Value name="scope">Any</Value>
</ListEntry>
...
</List>
Der Wert scope¶
Mit dem optionalen Wert scope legst du fest, von wo auf die Schnittstelle zugegriffen werden darf:
Bezeichner |
Bedeutung |
|---|---|
|
Schnittstelle deaktiviert. |
|
Zugriff nur lokal auf dem Server selbst. |
|
Zugriffe aus dem Netzwerk sind erlaubt. |
Wenn du diesen Wert weglässt, gilt standardmäßig LocalHost.
Fehlt der komplette Eintrag, wird die Schnittstelle deaktiviert (None).
<List name="network">
<ListEntry>
<Value name="interface">Agent</Value>
<Value name="protocol">Message</Value>
<Value name="scope">Any</Value>
</ListEntry>
...
</List>
Der Wert sslProfile¶
Mit dem optionalen Wert sslProfile kannst du ein eigenes SSL-Profil zuweisen.
Dazu erstellst du ein Profil und trägst hier den Namen ein.
Alle Details dazu findest du im Kapitel Eigene SSL Zertifikate verwenden.
<List name="network">
<ListEntry>
<Value name="interface">Agent</Value>
<Value name="protocol">Message</Value>
<Value name="scope">Any</Value>
<Value name="sslProfile">example</Value>
</ListEntry>
...
</List>
Die Liste secrets¶
Die Liste secrets steuert, welche Anwendungen auf die Session-Liste und andere Funktionen des Servers zugreifen dürfen.
Dafür erzeugst du mit dem EducateIT Secret Generator Schlüsselpaare, die als Zugangsdaten dienen. Details dazu findest du im Kapitel Das Secret System.
Der Client ist dabei immer die Software, die Daten abfragt (z. B. der Session Monitor Client oder die Raptor-Integration). Der Server ist die Software, die die Daten bereitstellt (der Session Monitor Server).
Best Practices:
Erstelle für jede Anwendung, die auf den Server zugreift, ein eigenes Schlüsselpaar.
Behandle das Secret wie ein Passwort und schütze es entsprechend. Eine zusätzliche Kodierung auf Client-Seite ist möglich (siehe Kodieren von Passwörtern).
Verwende nach Möglichkeit den Wert
authorizedNetworks, um den Zugriff auf bekannte Netze einzuschränken.Setze bei Bedarf individuelle Session-Filter, um Zugriffe granular zu begrenzen (z. B. nur für bestimmte Support-Teams).
So stellst du sicher, dass jeder Zugriff klar getrennt, nachvollziehbar und abgesichert bleibt.
Das folgende Beispiel zeigt eine typische secrets-Liste. Die angegebenen Werte für key und secret sind fiktiv und dienen nur als Illustration:
<List name="secrets">
<ListEntry>
<Value name="label">Agents</Value>
<Value name="key">tB*OsLDoq_-4UpbT?C(...)40v</Value>
<Value name="secret">p~#S6O{{TT2yApY(...)qWRg==</Value>
<Value name="authorizedProtocols">Message</Value>
</ListEntry>
<ListEntry>
<Value name="label">Client</Value>
<Value name="key">XiV6Cy_+hBJrP+9c#9(...)Dw{</Value>
<Value name="secret">(m[iVGXZjphGa*C(...)eoQ==</Value>
<Value name="authorizedProtocols">Message</Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
SendMessage
ManageScheduledMessages
</Value>
</ListEntry>
<ListEntry>
<Value name="label">ClientV2</Value>
<Value name="key">R%mhUf6)9$LKA{Ukd{(...)#E</Value>
<Value name="secret">EGAEC;|jvqpl+tl(...)rg== V2</Value>
<Value name="authorizedProtocols">Message</Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
SendMessage
ManageScheduledMessages
</Value>
</ListEntry>
<ListEntry>
<Value name="label">Raptor</Value>
<Value name="key">(F@vmJ|L!R#AncbPQ(...)xzw</Value>
<Value name="secret">mbS3G7lp(P[cbq(...)OUQ== V2</Value>
<Value name="authorizedProtocols">Message</Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
</Value>
</ListEntry>
<ListEntry>
<Value name="label">Script</Value>
<Value name="key">QNcJ0eh{m}~f(HSHf(...)qsh</Value>
<Value name="secret">*fB77OiTq(H)Xz(...)FqQ== V2</Value>
<Value name="authorizedProtocols">HTTP</Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
ImportSession
</Value>
</ListEntry>
</List>
Der Wert label¶
Mit label gibst du dem Eintrag einen Namen. Dieser erscheint in den Logdateien und erleichtert dir das Zuordnen von Fehlermeldungen oder Zugriffen.
Funktional hat der Wert keine Bedeutung.
Siehe auch Das Secret System.
<List name="secrets">
<ListEntry>
<Value name="label">Agents</Value>
<Value name="key">tB-4UpbT?C(...)40v</Value>
<Value name="secret">p~#S6O2yApY(...)qWRg==</Value>
<Value name="authorizedProtocols">Message</Value>
</ListEntry>
...
</List>
Der Wert key¶
key ist der erste Teil des Schlüsselpaars und wird mit dem EducateIT Secret Generator erstellt.
Er dient als eindeutiger Bezeichner für den Zugriff – vergleichbar mit einem Benutzernamen.
Siehe auch Das Secret System.
<List name="secrets">
<ListEntry>
<Value name="label">Agents</Value>
<Value name="key">tB-4UpbT?C(...)40v</Value>
<Value name="secret">p~#S6O2yApY(...)qWRg==</Value>
<Value name="authorizedProtocols">Message</Value>
</ListEntry>
...
</List>
Der Wert secret¶
secret ist der zweite Teil des Schlüsselpaars und wird ebenfalls mit dem EducateIT Secret Generator erstellt.
Dabei handelt es sich um eine Prüfsumme (Hash) des eigentlichen Werts, den du im Client hinterlegst.
Ein Rückschluss vom Server Secret auf das Client Secret ist nicht möglich.
Trotzdem solltest du die Datei mit den Server-Secret-Werten bestmöglich schützen.
Siehe auch Das Secret System.
<List name="secrets">
<ListEntry>
<Value name="label">Clients</Value>
<Value name="key">tB-4UpbT?C(...)40v</Value>
<Value name="secret">p~#S6O2yApY(...)qWRg==</Value>
<Value name="authorizedProtocols">Message</Value>
</ListEntry>
...
</List>
Der Wert enabledFeatures¶
Mit enabledFeatures legst du fest, welche Funktionen ein Client nutzen darf, der sich mit diesem Schlüssel am Server anmeldet.
Dieser Wert betrifft ausschließlich Clients – für Agents ist er irrelevant und kann dort entfallen.
Gib hier eine Liste von Berechtigungen an. Mehrere Werte werden durch Whitespace getrennt. Bleibt der Eintrag leer, sind keine Funktionen erlaubt.
Die folgende Tabelle beschreibt alle möglichen Werte:
Bezeichner |
Beschreibung |
|---|---|
|
Erlaubt dem Client, die vollständige Session-Liste abzufragen. Mit |
|
Der Client darf den Aktivitätsstatus (Idle/aktiv) von Sessions abfragen. Ohne diese Berechtigung bleibt der Wert leer, auch wenn der Server Daten erfasst. |
|
Erlaubt das Senden von Nachrichten an einzelne oder mehrere Sessions. |
|
Erlaubt das manuelle Einfügen von Sessions über die HTTPS/JSON-Schnittstelle. |
|
Erlaubt das Abfragen und Anlegen zeitgesteuerter Nachrichten. |
<List name="secrets">
<ListEntry>
<Value name="label">Clients</Value>
<Value name="key">tB-4UpbT?C(...)40v</Value>
<Value name="secret">p~#S6O2yApY(...)qWRg==</Value>
<Value name="authorizedProtocols">Message</Value>
<Value name="enabledFeatures">
ReadSessionList
</Value>
</ListEntry>
...
</List>
Der Wert sessionFilter¶
Mit dem optionalen Wert sessionFilter schränkst du die Sessions ein, auf die ein Client zugreifen darf.
Ohne diesen Wert sind alle Sessions sichtbar.
Der Wert ist ein Filterausdruck, wie im Kapitel Filterausdrücke beschrieben. Alle möglichen Felder, die du filtern kannst, findest du im Kapitel Die Filter.
Der Filter wirkt sich sowohl auf das Abfragen von Sessions als auch auf das Versenden von Nachrichten aus.
<List name="secrets">
<ListEntry>
<Value name="label">Clients</Value>
<Value name="key">tB-4UpbT?C(...)40v</Value>
<Value name="secret">p~#S6O2yApY(...)qWRg==</Value>
<Value name="authorizedProtocols">Message</Value>
<Value name="sessionFilter"><![CDATA[
<Value name="userDomain">
<Matches>example.com</Matches>
</Value>
]]></Value>
</ListEntry>
...
</List>
Die Liste agentConfiguration¶
Mit der Liste agentConfiguration definierst du die Einstellungen für alle Agents im Netzwerk.
Im einfachsten Fall enthält die Liste nur einen Eintrag ohne Filter – dieser gilt dann für alle Agents.
Du kannst jedoch beliebig viele Konfigurationen anlegen und über den Wert filter bestimmten Agent-Gruppen zuweisen.
Wichtig: Der letzte Eintrag in der Liste muss immer ein Standard-Eintrag ohne Filter sein, damit alle Agents erfasst werden. Die Liste wird in der angegebenen Reihenfolge geprüft. Der erste passende Eintrag gilt, weitere werden ignoriert.
Beispiel:
In fast allen Sessions wird die Prozessüberwachung aktiviert.
Für Sessions mit dem Benutzer Administrator sind Aktivitätserkennung und Prozessüberwachung deaktiviert.
<List name="agentConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="idleMonitoringEnabled">No</Value>
</ListEntry>
<ListEntry>
<!-- Letzter Eintrag: gilt für alle Agents als Default-Konfiguration -->
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">1</Value>
<Value name="userCpuThreshold">0</Value>
<Value name="systemCpuThreshold">0</Value>
<Value name="memoryThreshold">50mb</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Der Wert filter¶
Mit filter bestimmst du, auf welche Agents ein Konfigurationseintrag angewendet wird.
Ohne Filter gilt der Eintrag für alle Agents.
Wenn du einen Filter angibst, muss er ein gültiger Filterausdruck sein (siehe Filterausdrücke). Die möglichen Werte findest du im Kapitel Agent-Filter.
<List name="agentConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="idleMonitoringEnabled">No</Value>
</ListEntry>
...
</List>
Der Wert idleMonitoringEnabled¶
Mit idleMonitoringEnabled steuerst du, ob die Aktivitätsüberwachung aktiv ist.
* Yes oder kein Eintrag → Überwachung aktiviert (Standard).
* No → Überwachung deaktiviert.
<List name="agentConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="idleMonitoringEnabled">No</Value>
</ListEntry>
...
</List>
Der Wert idleTime¶
Mit idleTime legst du fest, nach wie vielen Minuten eine Session als inaktiv gilt.
Minimalwert: 5 Minuten
Maximalwert: 1440 Minuten (24 Stunden)
Standardwert: 10 Minuten
<List name="agentConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="idleTime">20</Value>
</ListEntry>
...
</List>
Die Liste monitoredProcesses¶
Mit der optionalen Liste monitoredProcesses aktivierst du die Überwachung problematischer Prozesse.
Jeder Eintrag definiert dabei einen Prozess (über ein Muster) sowie die Grenzwerte für CPU- oder Speichernutzung.
Alle Einträge werden in der angegebenen Reihenfolge geprüft.
Der erste Eintrag, dessen namePattern auf den Prozess passt, wird angewendet – danach erfolgt keine weitere Prüfung.
<List name="agentConfiguration">
...
<ListEntry>
<!-- Letzter Eintrag: Default-Konfiguration für alle Agents -->
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">2</Value>
<Value name="userCpuThreshold">90</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Der Wert namePattern¶
Mit namePattern legst du einen Regulären Ausdruck fest, der auf den Namen des zu überwachenden Prozesses passt.
Unterstützt wird nahezu der volle Funktionsumfang von PCRE (Perl Compatible Regular Expressions).
Tipp: Verwende das Präfix
(?i), um die Groß-/Kleinschreibung zu ignorieren.
<List name="agentConfiguration">
...
<ListEntry>
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">(?i)-edge.exe$</Value>
<Value name="problemDuration">0</Value>
<Value name="userCpuThreshold">0</Value>
<Value name="memoryThreshold">1gb</Value>
</ListEntry>
<ListEntry>
<Value name="namePattern">(?i)-word.exe$</Value>
<Value name="problemDuration">10</Value>
<Value name="userCpuThreshold">90</Value>
</ListEntry>
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">2</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Der Wert monitoringEnabled¶
Mit monitoringEnabled steuerst du, ob die Überwachung für den Eintrag aktiv ist.
Standard:
Yes(Überwachung aktiv)No→ Überwachung deaktiviert
Das ist nützlich, wenn du ganze Gruppen von Prozessen überwachen möchtest, aber bestimmte Prozesse explizit ausschließen willst.
Lege dazu einen Eintrag mit monitoringEnabled=No vor dem allgemeinen Eintrag an.
Ein Prozess gilt als problematisch, wenn er gleichzeitig alle drei Grenzwerte (userCpuThreshold, systemCpuThreshold, memoryThreshold) länger als in problemDuration angegeben überschreitet.
<List name="agentConfiguration">
...
<ListEntry>
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">(?i)-hopeless.exe$</Value>
<Value name="monitoringEnabled">No</Value>
</ListEntry>
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">2</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Der Wert userCpuThreshold¶
Mit userCpuThreshold definierst du die minimale CPU-Auslastung eines Prozesses im User-Mode, ab der er als problematisch gilt.
Wert: Zahl zwischen
0und100(Prozent)Standard:
90
<List name="agentConfiguration">
...
<ListEntry>
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">(?i)-edge.exe$</Value>
<Value name="problemDuration">0</Value>
<Value name="userCpuThreshold">0</Value>
<Value name="memoryThreshold">1gb</Value>
</ListEntry>
<ListEntry>
<Value name="namePattern">(?i)-word.exe$</Value>
<Value name="problemDuration">10</Value>
<Value name="userCpuThreshold">90</Value>
</ListEntry>
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">2</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Der Wert systemCpuThreshold¶
Mit systemCpuThreshold legst du die minimale CPU-Auslastung im Kernel-Mode fest, ab der ein Prozess als problematisch gilt.
Wert: Zahl zwischen
0und100(Prozent)Standard:
10
<List name="agentConfiguration">
...
<ListEntry>
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">2</Value>
<Value name="systemCpuThreshold">50</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Der Wert memoryThreshold¶
Mit memoryThreshold definierst du die Speicherauslastung, ab der ein Prozess als problematisch gilt.
Wert: Zahl in Bytes oder mit Suffix
mb/gbStandard:
0(keine Speicherüberwachung)
<List name="agentConfiguration">
...
<ListEntry>
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">2</Value>
<Value name="memoryThreshold">500mb</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Der Wert problemDuration¶
Mit problemDuration legst du fest, wie lange ein Prozess die Grenzwerte überschreiten muss, bevor er als problematisch eingestuft wird.
Der Wert wird in Minuten angegeben.
Standard:
10MinutenMinimal:
0(Sofortige Meldung)
<List name="agentConfiguration">
...
<ListEntry>
<!-- Letzter Eintrag: Default-Konfiguration für alle Agents -->
<List name="monitoredProcesses">
<ListEntry>
<Value name="namePattern">.*</Value>
<Value name="problemDuration">2</Value>
</ListEntry>
</List>
</ListEntry>
</List>
Die Liste clientConfiguration¶
Mit clientConfiguration legst du die Konfiguration für alle Clients fest.
Im einfachsten Fall enthält die Liste nur einen Eintrag ohne Filter – dieser gilt für alle Clients.
Du kannst aber auch mehrere Einträge definieren und über filter bestimmten Gruppen unterschiedliche Rechte zuweisen.
Wichtig: Der letzte Eintrag muss immer ein Standard-Eintrag ohne Filter sein, damit alle Clients erfasst werden. Die Einträge werden in der konfigurierten Reihenfolge geprüft. Der erste passende Eintrag wird angewendet, weitere werden ignoriert.
Beispiel:
Alle Clients dürfen die Session-Liste abfragen.
Ein Client mit dem Benutzer Administrator erhält zusätzlich das Recht, Nachrichten zu versenden und den Aktivitätsstatus einzusehen.
<List name="clientConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
SendMessage
ManageScheduledMessages
</Value>
</ListEntry>
<ListEntry>
<!-- Letzter Eintrag: Default-Konfiguration für alle Clients -->
<Value name="enabledFeatures">
ReadSessionList
</Value>
</ListEntry>
</List>
Der Wert filter¶
Mit filter grenzt du die Clients ein, für die der Eintrag gilt.
Ohne Filter betrifft der Eintrag automatisch alle Clients.
Wenn du den Wert angibst, muss es sich um einen gültigen Filterausdruck handeln (siehe Filterausdrücke). Alle möglichen Filterfelder findest du im Kapitel Client-Filter.
<List name="clientConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
SendMessage
ManageScheduledMessages
</Value>
</ListEntry>
<ListEntry>
<!-- Letzter Eintrag: Default-Konfiguration für alle Clients -->
<Value name="enabledFeatures">
ReadSessionList
</Value>
</ListEntry>
</List>
Der Wert enabledFeatures¶
Mit enabledFeatures bestimmst du, welche Funktionen ein Client nutzen darf.
Ohne diesen Eintrag stehen dem Client alle Funktionen uneingeschränkt zur Verfügung.
Die Werte werden als Liste angegeben und durch Whitespace getrennt.
Bezeichner |
Beschreibung |
|---|---|
|
Erlaubt das Auslesen der Session-Liste. |
|
Zeigt den Aktivitätsstatus in der Session-Liste an. |
|
Erlaubt das Senden von Nachrichten. |
|
Erlaubt das Abfragen und Erstellen zeitgesteuerter Nachrichten. |
<List name="clientConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
SendMessage
ManageScheduledMessages
</Value>
</ListEntry>
<ListEntry>
<!-- Letzter Eintrag: Default-Konfiguration für alle Clients -->
<Value name="enabledFeatures">
ReadSessionList
</Value>
</ListEntry>
</List>
Der Wert sessionFilter¶
Mit sessionFilter kannst du einschränken, welche Sessions ein Client sehen oder ansprechen darf.
Ohne diesen Wert hat der Client Zugriff auf alle Sessions.
Der Wert ist ein Filterausdruck (siehe Filterausdrücke). Alle verfügbaren Filterfelder sind im Kapitel Die Filter beschrieben.
Der Filter wirkt sich sowohl auf das Lesen von Sessions als auch auf das Senden von Nachrichten aus.
<List name="clientConfiguration">
<ListEntry>
<Value name="filter"><![CDATA[
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
]]></Value>
<Value name="enabledFeatures">
ReadSessionList
ReadIdleState
SendMessage
ManageScheduledMessages
</Value>
</ListEntry>
<ListEntry>
<!-- Letzter Eintrag: Default-Konfiguration für alle Clients -->
<Value name="enabledFeatures">
ReadSessionList
</Value>
<Value name="sessionFilter"><![CDATA[
<Not>
<Value name="userName">
<Matches>Administrator</Matches>
</Value>
</Not>
]]></Value>
</ListEntry>
</List>
Beispielkonfiguration¶
Die folgende Beispielkonfiguration zeigt einen Server mit Zugangsdaten für Clients, Agents und die Raptor-Integration. Zusätzlich wird die Prozessüberwachung für alle Agents aktiviert und eine Logdatei erzeugt.
1<?xml version="1.0" encoding="utf-8"?>
2<Configuration version="1" xmlns="http://educateit.ch/software/BlueStone/Configuration/1"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <Module name="Application">
5 <List name="network">
6 <ListEntry>
7 <Value name="interface">Agent</Value>
8 <Value name="protocol">Message</Value>
9 <Value name="scope">Any</Value>
10 </ListEntry>
11 <ListEntry>
12 <Value name="interface">Client</Value>
13 <Value name="protocol">Message</Value>
14 <Value name="scope">Any</Value>
15 </ListEntry>
16 </List>
17 <List name="secrets">
18 <ListEntry>
19 <Value name="label">Agents</Value>
20 <Value name="key">tB*OsLDo(...)@T40v</Value>
21 <Value name="secret">p~#S6O{(...)StN/xqWRg==</Value>
22 <Value name="authorizedProtocols">Message</Value>
23 </ListEntry>
24 <ListEntry>
25 <Value name="label">Client</Value>
26 <Value name="key">XiV6Cy_(...)q,vu|Dw{</Value>
27 <Value name="secret">(m[iVG(...)8MesglfeoQ==</Value>
28 <Value name="authorizedProtocols">Message</Value>
29 <Value name="enabledFeatures">
30 ReadSessionList
31 ReadIdleState
32 SendMessage
33 ManageScheduledMessages
34 </Value>
35 </ListEntry>
36 <ListEntry>
37 <Value name="label">RaptorIntegration</Value>
38 <Value name="key">R%mhUf(...)_h#E</Value>
39 <Value name="secret">EGAEC;|(...)sUNY</Value>
40 <Value name="authorizedProtocols">Message</Value>
41 <Value name="enabledFeatures">
42 ReadSessionList
43 ReadIdleState
44 SendMessage
45 ManageScheduledMessages
46 </Value>
47 </ListEntry>
48 </List>
49 <List name="agentConfiguration">
50 <ListEntry>
51 <!-- The last entry matches every agent and defines the default configuration. -->
52 <List name="monitoredProcesses">
53 <ListEntry>
54 <Value name="namePattern">.*</Value>
55 <Value name="problemDuration">1</Value>
56 <Value name="userCpuThreshold">0</Value>
57 <Value name="systemCpuThreshold">0</Value>
58 <Value name="memoryThreshold">50mb</Value>
59 </ListEntry>
60 </List>
61 </ListEntry>
62 </List>
63 <List name="clientConfiguration">
64 <ListEntry>
65 <Value name="filter"><![CDATA[
66 <Value name="userName">
67 <Matches>Administrator</Matches>
68 </Value>
69 ]]></Value>
70 <Value name="enabledFeatures">
71 ReadSessionList
72 ReadIdleState
73 SendMessage
74 ManageScheduledMessages
75 </Value>
76 </ListEntry>
77 <ListEntry>
78 <!-- The last entry matches every client and defines the default configuration. -->
79 <Value name="enabledFeatures">
80 ReadSessionList
81 SendMessage
82 ManageScheduledMessages
83 </Value>
84 </ListEntry>
85 </List>
86 </Module>
87 <Module name="Log">
88 <List name="FileWriter">
89 <ListEntry>
90 <Value name="LogFilePath">c:\Logs\SessionMonitor\SessionMonitor.log</Value>
91 </ListEntry>
92 </List>
93 </Module>
94</Configuration>