Agent OsQuery
Funktion | Abfrage von Hosts mit osquery. Für dieses Plugin muss die ausführbare Datei osqueryi auf dem überwachten Host installiert sein. osqueryi wird über den SKOOR Agent ausgeführt, der ebenfalls auf dem abgefragten Rechner installiert sein und ausgeführt werden muss. Der osqueryd-Daemon muss für diese Abfragen nicht ausgeführt werden. |
|---|---|
Alarmierung | Hängt von den in den Job-Parametern konfigurierten Rückgabewerten ab. |
osquery ist ein von Facebook entwickeltes Open-Source-Tool zum Abfragen verschiedener Informationen über den Status von Maschinen. Dazu gehören Informationen wie:
Laufende Prozesse
Geladene Kernel-Module
Aktive Benutzerkonten
Aktive Netzwerkverbindungen
und vieles mehr. osquery stellt ein Betriebssystem als leistungsstarke relationale Datenbank dar und ermöglicht die Abfrage mittels SQL-Anweisungen.
osquery ist derzeit für die folgenden Betriebssysteme verfügbar:
Linux
Windows
OS X
FreeBSD
Die Installation erfolgt gemäß den Anweisungen auf der osquery-Downloadseite: https://osquery.io/downloads/. Alternativ kann die osqueryi-Binärdatei einfach nach /usr/bin kopiert werden.
Das manuelle Ausführen von Abfragen auf dem Host, auf dem osqueryi installiert ist, ist ganz einfach. Führen Sie einfach den Befehl osqueryi aus, um das interaktive Abfrage-Tool zu öffnen, geben Sie dann die Abfrage ein und fügen Sie ein Semikolon hinzu:
$ osqueryi Using a virtual database. Need help, type '.help' osquery> select value as string_value1 from cpuid where feature="product_name"; +------------------------------------------+ | string_value1 | +------------------------------------------+ | Dual-Core AMD Opteron(tm) Processor 1218 | +------------------------------------------+ osquery> .quit
Weitere Informationen zu osquery finden Sie hier: https://osquery.readthedocs.io/en/stable/.
Agent OsQuery-Details
Agent OsQuery-Parameter
Parameter | Beschreibung |
|---|---|
Abfrage | Die Abfrage, die für die osquery-Datenbank auf dem lokalen (SKOOR Collector) oder Remote-Host ausgeführt werden soll. |
Über die Dropdown-Liste „Tags“ können vordefinierte Variablen in die Felder oben eingegeben werden, z. B. $NAME$ für den Namen des Auftrags.
Im Abschnitt „Beispiele“ unten sind einige der Abfragen aufgeführt, die verwendet werden können. Die von der Abfrage zurückgegebenen Ergebnisse müssen in der richtigen Reihenfolge den Rückgabewerten und Zeichenfolgenwerten zugeordnet werden.
Alternativ kann die Reihenfolge der zurückgegebenen Werte und Zeichenfolgen beeinflusst werden, indem die Abfrage so angepasst wird, dass sie die erwarteten Wert- und Zeichenfolgennamen liefert. Die folgende Abfrage ordnet beispielsweise den Wert „memory_free“ dem ersten Rückgabewert und „memory_total“ dem zweiten Rückgabewert zu:
select memory_total as return_value2, memory_free as return_value1 from memory_info
Die folgende Abfrage gibt zwei Zeichenfolgenwerte in einer bestimmten Reihenfolge zurück:
select feature as string_value1, value as string_value2 from cpuid limit 1
Die Rückgabewerte und String-Werte müssen jedoch weiterhin im Abschnitt „Job-Parameter” des Jobs konfiguriert werden, damit sie im Abschnitt „Werte” des Jobs angezeigt werden.
Agent OsQuery-Werte und Alarm Limits
Wert / Alarm Limit | Beschreibung |
|---|---|
<Generisch> | Hängt von den in den Jobparametern konfigurierten Rückgabewerten ab. |
Fehlercode | Generischer Job-Fehlercode (siehe Abschnitt „Job-Fehlercodes“) |
Beispiele für Agent OsQuery
Beispiel 1 – Abfrage des CPU-Modells
Abfrage | select value as string_value1 from cpuid where feature="product_name" |
|---|
Dazu muss der folgende String-Wert konfiguriert werden:
Ausgabe 1
Beispiel 2 – Abfrage des gesamten und freien Speichers
Abfrage | Wähle memory_total, memory_free aus memory_info |
|---|
Dazu müssen die folgenden 2 Rückgabewerte konfiguriert werden:
Die Einheit enthält den Namen des Rückgabewerts, eine Einheit und einen Divisor, da osquery die Werte in Byte zurückgibt:
Ausgabe 2
Weitere Beispielabfragen
Abfrage | Beschreibung | Beispielausgabe |
|---|---|---|
Wähle Benutzername, Beschreibung, Verzeichnis aus Benutzern aus, bei denen der Benutzername wie „%eranger” lautet. | Benutzerinformationen lesen | |
Wähle Wochentag, Tag, Monat, Jahr, Unix-Zeit aus Zeit | Systemzeit lesen | |
Wähle count(pid) als Gesamtzahl, Name aus Prozessen, gruppiert nach Name, sortiert nach Gesamtzahl absteigend, begrenzt auf 10 | Prozessanzahl und Name für die 10 aktivsten Prozesse zurückgeben | |
Wähle * aus Betriebszeit | System-Betriebszeit zurückgeben |









