Graphiques de série temporelle dans QRadar Pulse
A première vue, la création d'un graphique de série temporelle à partir de données relationnelles dans QRadar® Pulse peut s'avérer difficile. La quantité de données renvoyées par une requête AQL peut être trop lourde, mais avec quelques connaissances et une planification bien organisée, vous parviendrez à produire des graphiques de série temporelle pertinents.
select starttime as 'Start Time',
SUM(eventcount) as 'Event Count (Sum)'
from events
where eventcount <> NULL
GROUP BY starttime
order by starttime
LAST 60 minutes
Création d'intervalles dans une requête de série temporelle
La première étape consiste à décider du type d'intervalle à employer pour l'analyse de données. Voulez-vous examiner les données à une fréquence élevée, comme toutes les secondes ? Ou à une fréquence moindre, comme toutes les minutes ou toutes les heures ? Cette décision est essentielle car les points de données doivent être regroupés en intervalles pour permettre le calcul d'une métrique.
- En utilisant la clause GROUP BY pour créer un intervalle : GROUP BY starttime/60000. Puisque starttime est affiché en millisecondes, si vous divisez par 60 000 (60 secondes x 1000 millisecondes), vous créez des groupes ou des intervalles de 60 secondes (1 minute).
- En modifiant la clause ORDER BY de sorte qu'elle utilise l'agrégat sTime.
select starttime as 'sTime',
SUM(eventcount) as 'Event Count (Sum)'
from events
where eventcount > 0
GROUP BY starttime/60000
order by "sTime"
LAST 60 minutes
Rotation des lignes en colonnes pour la création d'une série
SUM(IF LOGSOURCETYPENAME(devicetype) = 'System Notification' THEN 1.0 ELSE 0.0)
as system_notification
SUM(IF LOGSOURCETYPENAME(devicetype) = 'SIM Audit' THEN 1.0 ELSE 0.0) as sim_auditSELECT starttime/(1000*60) as 'minute',
(minute * (1000*60)) as 'stime',
SUM(IF LOGSOURCETYPENAME(devicetype) = 'System Notification' THEN 1.0 ELSE 0.0)
as system_notification,
SUM(IF LOGSOURCETYPENAME(devicetype) = 'SIM Audit' THEN 1.0 ELSE 0.0) as sim_audit
FROM events
WHERE devicetype <> NULL
GROUP BY minute
ORDER BY stime asc
LAST 10 minutes

Si cette méthode s'avère très efficace pour la transformation des données relationnelles en données de séries temporelles, vous devez également savoir à l'avance quelles données vous recherchez.
Création d'une série temporelle dynamique
SELECT starttime/(1000*60) as 'minute',
MIN(starttime) as 'stime',
eventcount as 'eventCount', devicetype as 'deviceType',
LOGSOURCETYPENAME(devicetype) as 'device',
count(*) as 'total'
FROM events
WHERE deviceType IN (
SELECT deviceType FROM (
SELECT devicetype as 'deviceType',
count(*) as 'total'
FROM events
GROUP BY deviceType
ORDER BY total DESC
LIMIT 8
LAST {Time_Span}
)
) and devicetype not in (18,105,147,368)
GROUP BY minute, device
ORDER BY minute asc
LAST {Time_Span}
A la différence de la méthode précédente, les données ne font pas l'objet d'une rotation en colonnes et contiennent des répétitions créées par la clause GROUP BY secondaire. En utilisant l'option de série temporelle dynamique, QRadar Pulse divise les données dans un format de série temporelle approprié. Sélectionnez la colonne qui contient time (stime pour l'axe des X), la colonne qui contient data (total pour l'axe des Y) et la colonne qui contient la clause GROUP BY (pour extraire les différentes séries par device).

Même si le graphique ressemble à celui qui a été créé par la méthode précédente, la requête AQL sous-jacente est bien plus dynamique. Si les sources de journal changent au fil du temps, le graphique se met automatiquement à jour car les valeurs ne sont plus codées en dur dans la requête.
SELECT starttime/(1000*60) as 'minute', (minute * (1000*60)) as 'stime', LOGSOURCETYPENAME(devicetype) as 'device', count(*) as 'total'
FROM events
WHERE device IN (
SELECT deviceList FROM (
SELECT LOGSOURCETYPENAME(devicetype) as deviceList, count(*) as topDevices
FROM events
WHERE deviceList <> 'Health Metrics'
GROUP BY deviceList
ORDER BY topDevices DESC
LIMIT 3
LAST 10 minutes
)
)
GROUP BY minute, device
ORDER BY stime asc
LAST 10 minutesLa requête est plus efficace et garantit que la série rendue
correspond aux trois périphériques les plus actifs de la période sélectionnée.