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
GROUP BY 節を次のように使用して間隔を作成する。GROUP BY
starttime/60000。 starttime はミリ秒単位で表示されるため、60,000 で除算すると (60 秒 x 1000 ミリ秒)、60 秒 (1 分) のグループ、つまり間隔を作成することになります。
ORDER BY 節を変更して、集約 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
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
照会全体は、次の例のようになります。
SELECT 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
この照会は、 System Notification デバイスと SIM
Audit デバイスの両方の行データを取得し、それらをグラフ上の系列に対応する別個の列にピボットします。図3: 個別の列に返された結果
目的のデバイスをあらかじめ理解していない場合や、過去 1 時間に最もアクティブであった上位 5 個のデバイスをグラフにしたい場合は、どうなるでしょうか。 QRadar Pulse V2.1.4で動的時系列を作成できます。 データの行を列にピボット処理するのではなく、2 番目の戦略では、2 次の GROUP BY 節 (この例では「device」) を使用して動的時系列を作成します。
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}
この照会で返される結果は次の画像のようになります。図 5. デバイスについて返された結果
前の方法との違いは、データは列にピボット処理されず、2 次の GROUP BY 節のために時間の列に反復が含まれている点です。 動的時系列オプションを使用することで、 QRadar Pulse は、データを適切な時系列形式に分割します。 time (X 軸の場合はstime ) を含む列、 data (Y 軸の場合はtotal ) を含む列、および GROUP
BY 節を含む列 ( deviceによって異なる系列を抽出するため) を選択します。
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 minutes