Gráficos de série temporal no QRadar Pulse
À primeira vista, criar um gráfico de série temporal a partir de dados relacionais no QRadar® Pulse pode ser um desafio. A quantidade de dados que são retornados por uma consulta AQL pode ser pesada, mas com algum conhecimento prévio e planejamento cuidadoso, é possível produzir gráficos de séries temporais relevantes e significativos.
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
Criando intervalos em uma consulta de série temporal
A primeira etapa é decidir o tipo de intervalo a ser usado para sua análise de dados. Deseja consultar dados de um intervalo limitado, como a cada segundo? Ou em intervalos maiores, como a cada minuto ou a cada hora? Esta decisão é importante porque os pontos de dados devem ser agrupados em intervalos para que uma métrica seja calculada.
- Usando a cláusula GROUP BY para criar um intervalo: GROUP BY starttime/60000. Como starttime é exibido em milissegundos, se você dividir por 60.000 (60 segundos x 1000 milissegundos), você criará grupos ou intervalos de 60 segundos (1 minuto).
- Mudando a cláusula ORDER BY para usar o sTime agregado.
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
Girando linhas em colunas para criar uma 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

Embora esse método seja bastante eficiente para transformar dados relacionais em dados de séries temporais, você deve saber de antemão quais dados está procurando.
Criando uma série temporal dinâmica
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 diferença a partir do método anterior é que os dados não são girados nas colunas e contêm repetições na coluna de tempo que são causadas pela cláusula GROUP BY secundária. Usando a opção de série temporal dinâmica, o QRadar Pulse divide os dados em um formato de série temporal adequado. Selecione a coluna que contém o time (stime para o eixo X), a coluna que contém o data (total para o eixo Y) e a coluna que contém a cláusula GROUP BY (para extrair a série diferente por device).

Embora o gráfico pareça o mesmo que aquele que foi criado pelo método anterior, a consulta AQL subjacente é muito mais dinâmica. Se as origens de log mudarem ao longo do tempo, o gráfico será atualizado automaticamente porque os valores não são mais codificados permanentemente na consulta.
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 minutesA
consulta é mais eficiente e assegura que as três séries renderizadas correspondam aos três
principais dispositivos ativos no período de tempo selecionado.