Konfiguration

Das Modul ProcessMonitor enthält alle Konfigurationswerte für diese Erweiterung. Unten findest du das zugehörige Schema sowie Erläuterungen zu den einzelnen Parametern und eine vollständige Beispielkonfiguration.

Konfigurationsschema

Module

ProcessMonitor

Value

processMonitorHost

String

  • Must not be empty.

Value

processMonitorPort

Optional

Integer

  • Minimum value: 1

  • Maximum value: 65535

Default Value:

17692

Value

apiKey

String

  • Must not be empty.

Value

apiSecret

Password

  • Must not be empty.

Value

processFilter

Optional

String

  • Must not be empty.

Value

maximumProcessCount

Optional

Integer

  • Minimum value: 1

Default Value:

500

Group

taskKillCommand

Optional

Value

program

Optional

String

Value

arguments

Optional

String

Value

timeout

Optional

Integer

  • Minimum value: 10

  • Maximum value: 3600

Default Value:

120

Group

sendMessageCommand

Optional

Value

program

Optional

String

Value

arguments

Optional

String

Value

timeout

Optional

Integer

  • Minimum value: 10

  • Maximum value: 3600

Default Value:

120

Der Wert processMonitorHost

Mit diesem Wert gibst du den Hostnamen oder die IP-Adresse des Process Monitor-Servers an. Der Eintrag ist erforderlich und darf nicht leer sein.

<Module name="ProcessMonitor">
    <Value name="processMonitorHost">host01.example.com</Value>
    <Value name="apiKey">[key]</Value>
    <Value name="apiSecret">[secret]</Value>
    (...)
</Module>

Der Wert processMonitorPort

Dieser optionale Wert definiert den Port, über den der Process Monitor-Host die API bereitstellt. Standardmäßig wird Port 17692 verwendet. Gültige Werte liegen im Bereich von 1 bis 65535.

<Module name="ProcessMonitor">
    <Value name="processMonitorHost">host01.example.com</Value>
    <Value name="processMonitorPort">9008</Value>
    <Value name="apiKey">[key]</Value>
    <Value name="apiSecret">[secret]</Value>
    (...)
</Module>

Der Wert apiKey

Dieser erforderliche Wert enthält den API-Schlüssel zur Authentifizierung gegenüber dem Process Monitor. Der Schlüssel muss gesetzt sein und darf nicht leer sein.

Weitere Informationen zum Secret-System findest du im Abschnitt Das Secret System.

<Module name="ProcessMonitor">
    <Value name="processMonitorHost">host01.example.com</Value>
    <Value name="apiKey">[key]</Value>
    <Value name="apiSecret">[secret]</Value>
    (...)
</Module>

Der Wert apiSecret

Hier gibst du das zugehörige Secret für die Authentifizierung beim Process Monitor an. Auch dieser Wert ist zwingend erforderlich und darf nicht leer sein.

Weitere Informationen zum Secret-System findest du im Abschnitt Das Secret System.

<Module name="ProcessMonitor">
    <Value name="processMonitorHost">host01.example.com</Value>
    <Value name="apiKey">[key]</Value>
    <Value name="apiSecret">[secret]</Value>
    (...)
</Module>

Der Wert processFilter

Mit dem optionalen Wert processFilter kannst du mithilfe eines Filterausdrucks in einer domänenspezifischen Sprache die Prozessliste einschränken. Dadurch werden nur Prozesse angezeigt, die dem angegebenen Ausdruck entsprechen. Der Wert darf nicht leer sein, wenn er gesetzt wird.

Wie du Filterausdrücke definierst, erfährst du im Kapitel Filterausdrücke.

<Module name="ProcessMonitor">
    (...)
    <Value name="processFilter"><![CDATA[
        <Not>
            <Value name="name">
                <Or>
                    <Matches caseSensitivity="CaseInsensitive">msvsmon</Matches>
                    <Matches caseSensitivity="CaseInsensitive">wfcrun32</Matches>
                </Or>
            </Value>
        </Not>
    ]]></Value>
</Module>

Filterfelder

Die folgenden Felder kannst du im Filterausdruck verwenden:

Name

Typ

Beschreibung

hostName

Text

Name des Computers, auf dem der Prozess läuft.

processId

Zahl

ID des Prozesses (PID).

name

Text

Name des Prozesses. Je nach Quelle kann dieser ein .exe-Suffix enthalten.

path

Text

Absoluter Pfad zur Prozessdatei.

owner

Text

Benutzername des Prozessbesitzers inkl. Domäne.

totalCpuTime

Zahl

Gesamte CPU-Zeit des Prozesses in Millisekunden.

userCpuTime

Zahl

CPU-Zeit im Benutzermodus in Millisekunden.

workingSetSize

Zahl

Aktuelle Größe des Working Sets in Byte.

virtualSize

Zahl

Aktuelle virtuelle Größe des Prozesses in Byte.

cpuUsage

Zahl

Aktuelle CPU-Auslastung des Prozesses (Wert zwischen 0.0 und 1.0). Falls nicht verfügbar, wird -1.0 gesetzt.

Der Wert maximumProcessCount

Mit diesem optionalen Wert legst du fest, wie viele Prozesse maximal vom Process Monitor-System abgerufen werden sollen. Standardmäßig ist der Wert auf 500 gesetzt. Er kann beliebig im Bereich von 1 bis 65535 angepasst werden.

<Module name="ProcessMonitor">
    (...)
    <Value name="maximumProcessCount">1000</Value>
    (...)
</Module>

Die Gruppe taskKillCommand

Mit dieser optionalen Gruppe konfigurierst du den Befehl, der zum Beenden von Prozessen verwendet wird.

Standardmäßig kommt folgender Befehl zum Einsatz:

PS > taskkill.exe /S {host} /PID {pid} /T /F

Der Assistent wertet die Konsolenausgabe aus, um den Erfolg zu bestimmen: - Wird der Text ERROR: erkannt, gilt der Befehl als fehlgeschlagen und der Assistent bricht mit einer Fehlermeldung ab. - Enthält die Ausgabe zusätzlich not found, wird nur ein Protokolleintrag erzeugt – der Assistent läuft in diesem Fall weiter. Dies tritt auf, wenn ein Prozess zwischen Auswahl und Ausführung bereits beendet wurde.

Warnung

Diese Konfiguration ist ausschließlich für Testzwecke gedacht und sollte in produktiven Umgebungen nicht geändert werden.

Die Gruppe sendMessageCommand

Mit dieser optionalen Gruppe definierst du den Befehl, der zur Benachrichtigung von Benutzern eingesetzt wird.

Standardmäßig wird folgender Befehl verwendet:

PS > msg.exe {username} /server:{host}

Die Nachricht wird über STDIN an das Kommando übergeben und mit Ctrl+Z abgeschlossen.

Zur Erfolgskontrolle wird der Exit-Code des Befehls geprüft: - Ist der Code ungleich Null, wird der Befehl als fehlgeschlagen gewertet. - Einzelne Fehlschläge führen nicht zum Abbruch des Assistenten. - Ein Abbruch erfolgt nur, wenn mehr als fünf Befehle am Anfang der Liste scheitern oder kein Versand erfolgreich war.

Warnung

Auch diese Einstellung dient nur zu Testzwecken und sollte im Regelbetrieb nicht angepasst werden.

Beispielkonfiguration

Im Folgenden findest du eine vollständige Beispielkonfiguration für das ProcessMonitor-Modul:

 1<?xml version="1.0" encoding="UTF-8" ?>
 2<Configuration
 3    version="1"
 4    xmlns="http://educateit.ch/software/BlueStone/Configuration/1">
 5
 6    <Module name="ProcessMonitor">
 7        <Value name="processMonitorHost">[process monitor host]</Value>
 8        <Value name="apiKey">[key]</Value>
 9        <Value name="apiSecret">[secret]</Value>
10        <Value name="processFilter"><![CDATA[
11            <Not>
12                <Value name="name">
13                    <Or>
14                        <Matches caseSensitivity="CaseInsensitive">msvsmon</Matches>
15                        <Matches caseSensitivity="CaseInsensitive">wfcrun32</Matches>
16                    </Or>
17                </Value>
18            </Not>
19        ]]></Value>
20    </Module>
21</Configuration>