Tipps für die Erstellung von AQL-Abfragen für Dashboard-Charts

Tipps zum einfacheren Erstellen von AQL-Abfragen und Dashboard-Diagrammen umfassen Aliase, Zeit- und Datumsformate sowie Transformations-Lookup-Funktionen.

  • Jede AQL-Anweisung, die Zeitkriterien enthält, kann den vordefinierten Parameter SYSTEM:timerange verwenden. Wenn das Widget dann in einem Dashboard verwendet wird, ermöglicht eine Zeitauswahl dem Benutzer, einen bestimmten Zeitraum in zeitbasierten Diagrammen im Dashboard anzuzeigen. Die folgende Tabelle vergleicht Beispiele für AQL-Abfragen, die Zeitkriterien mit bestimmten Zeitbereichen enthalten, mit der Verwendung des Parameters SYSTEM:timerange :
    Tabelle 1 Beispiele für AQL-Anweisungen, die Zeitkriterien enthalten, unter Verwendung bestimmter Zeitbereiche und des Parameters SYSTEM:timerange
    AQL-Beispiele, die einen bestimmten Zeitraum enthalten
    SELECT *
    FROM events WHERE userName IS NULL 
     LAST 1 HOURS 
    SELECT *
    FROM events WHERE userName IS NULL 
     START '2024-04-25 15:51:20' 
    STOP '2024-04-25 17:00:20' 
    Tipp: STOP steht für die aktuelle Zeit.
  • Jede AQL-Anweisung, die keine Zeitkriterien wie START, STOPoder LAST enthält, gibt Daten zurück, die die letzten 5 Minuten darstellen.
  • Verwenden Sie geeignete Datums- und Jahresformate in Ihren Abfragen, insbesondere bei GLOBALVIEW. Datumsangaben werden nicht automatisch angehängt. Verwenden Sie beispielsweise StartTime, 'YYYY-MM-dd HH:mm'.
  • Verwenden Sie für die Zeit in der AQL-Abfrage das Zeitformat in Millisekunden, z. B. starttime-starttime%60000.
  • Verwenden Sie keine Transformations-Lookup-Funktion in einem IN-Operator in einer WHERE-Klausel. Der Operator IN gibt mehrere Werte in der Klausel WHERE an, kann jedoch Leistungsprobleme verursachen, wenn Sie die Abfrage ausführen. Beispielsweise kann folgende Abfrage Leistungsprobleme verursachen:
    Where logsourcetypename(deviceType) IN ('a','b')
  • Verwenden Sie immer Aliasnamen, um sicherzustellen, dass Ihre Feldnamen nicht von einer QRadar® -Version zu einer anderen variieren. In der folgenden Abfrage ist beispielsweise Active Offense Sum (Summe aktiver Angriffe) ein Aliasname für das Feld SUM_Active Offense Count.
    select ("SUM_Active Offense Count" / 2)  as 'Active Offense Sum',
    ("SUM_Dormant Offense Count" / 2)  as 'Dormant Offense Sum',
    "Time" * 1000 as 'sTime'
    from GLOBALVIEW('Offenses Over Time','NORMAL')
    order by "Time" desc
    last 2 days
  • Geodiagramme mit Streuung zeigen geografische Standorte an, um die IP-Quelle und das Ziel der erkannten schädlichen Aktivitäten anzuzeigen. Um diese Informationen zu erfassen, verwenden Sie die Option geo_json der AQL-Funktion GEO::LOOKUP. Beispiel:
    GEO::LOOKUP(sourceip, 'geo_json') AS 'geoSource',
    GEO::LOOKUP(destinationip, 'geo_json') AS 'geoDest',
  • Choropleth-Diagramme sind im Verhältnis zur Menge der in jeder geographischen Region entdeckten schädlichen Aktivitäten schattiert. Um diese Informationen zu erfassen, verwenden Sie die Option country der AQL-Funktion GEO::LOOKUP. Beispiel:
    GEO::LOOKUP(sourceip, 'country') AS 'geoCountry',

    Setzen Sie den 'Standorttyp' auf 'Land/Region', um dem zu entsprechen, was die MaxMind GeoIP-Datenbank verwendet.

  • Rufen Sie das IBM® QRadar Knowledge Centerauf. Lesen Sie im Bereich über die Ariel Query Language (AQL) im Kapitel Reference folgende Abschnitte: "Overview of Ariel Query Language", "AQL logical and comparison operators", "System performance query examples", "Events and flows query examples", "Reference data query examples" und "User and network monitoring query examples".