Zum Inhalt springen

Windows Server überwachen: Anleitung mit Agent

Windows Server überwachen mit einem PowerShell-Befehl: CPU, RAM, Festplatten und geplante Aufgaben als Windows-Dienst unter einem virtuellen Konto.

Zuletzt geprüft am

Einen Windows Server überwachen Sie mit inping über einen Agenten, den ein PowerShell-Befehl als Windows-Dienst einrichtet. Er meldet CPU, Arbeitsspeicher, Festplatten und geplante Aufgaben, läuft unter dem virtuellen Konto NT SERVICE\inping-agent und braucht keinen offenen Port. Nach dem Start erscheint er innerhalb einer Minute in inping.

Was sehen Sie danach?

  • Unter Agents: Hostname und System, Status Online und die Anzeigen für CPU, Arbeitsspeicher und Festplatten.
  • Übersicht des Agenten: die Verläufe dieser Werte, Version, Architektur und Kerne.
  • Jobs: die Aufgaben der Windows-Aufgabenplanung mit Zeitplan, Befehl und Benutzer.
  • Projekt → Pakete: Laufzeiten und Pakete der Projekte auf dem Server, gelesen aus den Lock-Dateien, zum Beispiel NuGet, Composer oder npm. Bekannte Schwachstellen erscheinen innerhalb eines Tages.
  • Benutzerkonten: CPU, Arbeitsspeicher und Prozesse pro Konto, wenn Sie den Schalter -AccountMetrics nutzen (siehe unten).

Nicht gemeldet werden auf Windows: der Load Average, installierte Programme und Host-Pakete. Festplatten und Netzwerk pro Konto werden ebenfalls nicht gemessen.

Worauf kommt es bei einem Windows Server an?

  • CPU: Einzelne Spitzen, etwa durch Updates oder den Virenscanner, sind normal. Aussagekräftig ist eine hohe Auslastung über mehrere Minuten, deshalb alarmiert inping standardmäßig erst nach 5 Minuten über 90 %.
  • Arbeitsspeicher: inping rechnet Gesamt minus verfügbar. Dauerhaft über 90 % heißt, dass Windows zunehmend auf die Auslagerungsdatei ausweicht und Anwendungen langsamer werden. SQL Server belegt je nach Einstellung von sich aus viel Speicher; auf einem solchen Server passen Sie die Grenze an.
  • Festplatten: Volle Laufwerke stoppen Datenbanken und Windows-Updates. Die Vorgabe von 90 % gilt für jedes Laufwerk und sofort. Bei einer kleinen Systempartition lohnt eine Regel mit niedrigerem Wert.
  • Erreichbarkeit: Der Agent meldet den Host, nicht die Website darauf. Ob IIS eine Seite ausliefert, prüfen die Runner per HTTP(S), wenn Sie die URL im Projekt eintragen.

Voraussetzungen

  • Windows Server 2019 oder neuer, Windows 10 oder 11, auf x64 oder ARM64
  • PowerShell 5.1 oder 7, als Administrator gestartet
  • ausgehendes HTTPS zu www.inping.io auf Port 443; Skript und Download nutzen TLS 1.2 und folgen keinen Weiterleitungen
  • ein laufender Windows-Zeitdienst: Meldungen, die mehr als 60 Sekunden vor der Uhr der Plattform liegen, werden abgelehnt
  • ein kostenloses inping-Konto

Schritt für Schritt

1. Agent anlegen und Befehl kopieren

In inping unter Agents → Agent hinzufügen oder im Projekt unter Server → Agent hinzufügen. Der Dialog zeigt das Registrierungs-Token genau einmal, es gilt 24 Stunden. Der Befehl für Windows steht dort fertig, mit Token, Adresse und Projekt-ID. Alle Systeme und Downloads finden Sie in der App unter Agents → Installation und Downloads (/agents/install).

2. Befehl in der PowerShell ausführen

$env:INPING_TOKEN = '<token>'; & ([scriptblock]::Create((irm https://www.inping.io/install.ps1))) -Project '<project-id>=D:\sites\shop'

<token> und <project-id> sind hier Platzhalter, die Projekt-ID steht unter Projekt → Einstellungen. Mehrere Projekte geben Sie so an:

-Project '<id1>=D:\sites\shop', '<id2>=D:\sites\blog'

Das Skript prüft die SHA-256-Summe des Downloads, installiert das Programm, schreibt die Konfiguration, legt den Dienst inping-agent an, registriert den Agenten, startet den Dienst und richtet die geplante Aufgabe inping-agent-update ein. Eine minisign-Signatur prüft das Skript auf Windows nicht; die spätere Update-Aufgabe installiert aber nur signierte Versionen. Am Ende steht inping: inping-agent <version> installed and running.

3. Leserechte für das Projekt geben

Ohne diese Freigabe wird das Projekt als „nichts“ gemeldet.

icacls 'D:\sites\shop' /grant 'NT SERVICE\inping-agent:(OI)(CI)RX' /T
Restart-Service inping-agent
WasWo
Programm%ProgramFiles%\inping\inping-agent.exe
Konfiguration%ProgramData%\inping\agent.toml
Zustand%ProgramData%\inping\state (das einzige Verzeichnis, das der Dienst ändern darf)
Dienstinping-agent, automatischer Start
UpdateAufgabe inping-agent-update (SYSTEM, alle 6 Stunden)
LogEreignisanzeige → Windows-Protokolle → Anwendung, Quelle inping-agent

Wie prüfen Sie, ob es funktioniert?

Get-Service inping-agent                                        # Status Running
Get-WinEvent -ProviderName inping-agent -MaxEvents 20 | Format-List TimeCreated, Message
Get-ScheduledTask inping-agent-update                           # State Ready

Das Ereignisprotokoll enthält die Zeilen msg=starting und msg=configuration. In inping wechselt der Agent innerhalb einer Minute von Noch nicht registriert auf Online, die Verläufe beginnen ab der zweiten Messung.

CPU und Arbeitsspeicher pro Konto (optional)

Das Dienstkonto darf nicht sehen, wem fremde Prozesse gehören. Deshalb liest sie mit -AccountMetrics die geplante Aufgabe inping-agent-accounts jede Minute als SYSTEM und legt das Ergebnis für den Dienst ab; der Dienst behält seine geringen Rechte.

& ([scriptblock]::Create((irm https://www.inping.io/install.ps1))) -AccountMetrics
Get-ScheduledTask inping-agent-accounts                         # State Ready

So unterscheidet ein Shared Host seine Kunden: IIS-Anwendungspools mit eigener Identität erscheinen als Konto, etwa IIS APPPOOL\shop. Dienste unter SYSTEM oder NETWORK SERVICE summieren sich dort auf. Die Metrik für Benutzerkonten muss für den Agenten unter Einstellungen → Erfasste Metriken ausgewählt sein. -NoAccountMetrics oder -Uninstall entfernen die Aufgabe wieder.

Schwellwerte und Alarme

Jeder neue Agent startet mit CPU über 90 % für 5 Minuten, Arbeitsspeicher über 90 % für 5 Minuten und jeder Festplatte über 90 % sofort. Eigene Regeln legen Sie auf der Seite des Agenten unter Einstellungen → Alarmregeln an: über, unter oder gleich einem Wert, für 0 bis 1440 Minuten. Regeln auf die Last greifen auf Windows nicht, weil der Wert fehlt.

Nach drei ausgebliebenen Meldungen, standardmäßig also nach 3 Minuten, gilt der Agent als offline und ein Alarm öffnet sich. Damit Sie davon erfahren, braucht das zugeordnete Projekt eine Benachrichtigungsregel, zum Beispiel für Server-Schwellwert überschritten oder Agent offline, per Mail oder Webhook.

Auch das Windows-Ereignisprotokoll kann der Agent senden: Im Agenten unter Log-Quellen wählen Sie einen Kanal aus, ohne Angabe ist es System. Das ist aus, bis Sie eine Quelle anlegen.

Update

Die Aufgabe inping-agent-update führt alle 6 Stunden als SYSTEM das Update aus und installiert nur neuere, signierte Versionen. Von Hand, in einer PowerShell als Administrator:

& "$env:ProgramFiles\inping\inping-agent.exe" update --config "$env:ProgramData\inping\agent.toml"

Auch der Installationsbefehl ohne $env:INPING_TOKEN aktualisiert und behält die Konfiguration.

Deinstallieren

& ([scriptblock]::Create((irm https://www.inping.io/install.ps1))) -Uninstall   # Dienst, Aufgabe und Programm
& ([scriptblock]::Create((irm https://www.inping.io/install.ps1))) -Purge       # auch Konfiguration und Zustand

Löschen Sie den Agenten danach in inping unter Agents → (Agent) → Einstellungen → Agent löschen.

Wenn nichts ankommt

  • run in an elevated PowerShell: Starten Sie PowerShell als Administrator.
  • the service could not be set up: Ein älterer Dienst mit gleichem Namen hängt fest. Führen Sie sc.exe delete inping-agent aus und starten Sie den Befehl erneut.
  • Der Dienst stoppt sofort: Öffnen Sie das Anwendungsprotokoll, der erste Fehler nennt die Ursache. Meist ist es cannot start (fehlendes oder unlesbares Token in %ProgramData%\inping\state) oder configuration unusable.
  • Ein Proxy im Netz: Das Dienstkonto hat keine Proxy-Einstellungen. Setzen Sie HTTPS_PROXY als Systemumgebungsvariable oder erlauben Sie direktes HTTPS zur Plattform.
  • Metriken kommen an, Pakete nicht: Die icacls-Freigabe aus Schritt 3 fehlt.
  • registration failed: Das Token ist abgelaufen (24 Stunden) oder wurde schon benutzt. Ein neues erzeugen Sie auf der Seite des Agenten unter Neues Registrierungs-Token.

Häufige Fragen

Welche Windows-Versionen werden unterstützt?

Windows Server 2019 und neuer sowie Windows 10 und 11, jeweils auf x64 und ARM64. Gebraucht wird PowerShell 5.1 oder 7, gestartet als Administrator.

Unter welchem Konto läuft der Dienst?

Unter dem virtuellen Konto NT SERVICE\inping-agent. Es hat Änderungsrechte nur auf %ProgramData%\inping\state und liest sonst nur. Administrator-Rechte braucht allein die Installation.

Sieht inping installierte Programme und Windows-Updates?

Nein. Auf Windows werden keine Host-Pakete gemeldet, weil es dort keinen Paketmanager gibt, den der Agent liest. Gemeldet werden die Pakete der Projekte aus ihren Lock-Dateien.

Warum gibt es unter Windows keinen Load-Wert?

Load Average ist ein Unix-Wert, Windows kennt ihn nicht. Auf Windows zählt die CPU-Auslastung, die der Agent zwischen zwei Messungen berechnet.

Kann ich IIS-Anwendungspools einzeln sehen?

Ja, mit dem Schalter -AccountMetrics. Anwendungspools mit eigener Identität erscheinen dann als Konto, zum Beispiel IIS APPPOOL\shop, mit CPU-Anteil, Arbeitsspeicher und Prozessen. Anwendungen unter demselben Konto lassen sich nicht trennen.

Muss ich auf dem Windows Server einen Port öffnen?

Nein. Der Agent baut nur ausgehende HTTPS-Verbindungen auf, eingehend wird nichts gebraucht. Hinter einem Proxy setzen Sie HTTPS_PROXY als Systemumgebungsvariable, weil das Dienstkonto keine Proxy-Einstellungen hat.

Was kostet die Überwachung eines Windows Servers?

Im Free-Tarif sind 2 Agents dauerhaft kostenlos enthalten, ohne Zahlungsdaten. Für mehr Server gibt es bezahlte Tarife.

Weiterlesen