splunk是當下比較火的大數據分析工具,可以收集日志數據、性能數據、網絡數據包。這些數據都是一些非結構化的數據,我們可以統一將這些數據統一采集到splunk之后,splunk可以對這些數據進行索引、調查、監控、可視化,告警等等。
還可以做一下機器學習訓練等操作,非常方便。
之前的都是比較簡單的查詢,例如查詢IPS的流量,統計某個用戶訪問網站頻率,攻擊頻率等等。
splunk有多個數據集,mysql這種就很好做關聯查詢了,left jion 等等,查了資料整理如下,給需要的人參考。
SQL command | SQL example | Splunk SPL example | 備注 |
---|---|---|
SELECT * |
SELECT * FROM mytable source=mytable |
source就相當於table |
WHERE |
SELECT * FROM mytable WHERE mycolumn=5
source=mytable mycolumn=5 |
|
SELECT |
SELECT mycolumn1, mycolumn2 FROM mytable source=mytable | FIELDS mycolumn1, mycolumn2 |
通過fields可以規定查詢哪幾列 |
AND/OR |
SELECT * FROM mytable WHERE (mycolumn1="true" OR mycolumn2="red") AND mycolumn3="blue" source=mytable AND (mycolumn1="true" OR mycolumn2="red") AND mycolumn3="blue" |
|
AS (alias) |
SELECT mycolumn AS column_alias FROM mytable source=mytable | RENAME mycolumn as column_alias | FIELDS column_alias |
rename關鍵字 |
BETWEEN |
SELECT * FROM mytable WHERE mycolumn BETWEEN 1 AND 5 source=mytable mycolumn>=1 mycolumn<=5 |
|
GROUP BY |
SELECT mycolumn, avg(mycolumn) FROM mytable WHERE mycolumn=value GROUP BY mycolumn source=mytable mycolumn=value | STATS avg(mycolumn) BY mycolumn | FIELDS mycolumn, avg(mycolumn ) |
stats對結果分組,並取平均值 |
LEFT (OUTER) JOIN |
SELECT * FROM mytable1 LEFT JOIN mytable2 ON mytable1.mycolumn= mytable2.mycolumn source=mytable1 | JOIN type=left mycolumn [SEARCH source=mytable2] |
[SEARCH..]相當於一個子查詢了,然后進行連接 |
TRUNCATE TABLE |
TRUNCATE TABLE mytable source=mytable | DELETE |
|
UNION |
SELECT mycolumn FROM mytable1 UNION SELECT mycolumn FROM mytable2 source=mytable1 | APPEND [SEARCH source=mytable2] | DEDUP mycolumn |
APPEND相當於將當前查詢與子查詢組合起來 |
UNION ALL |
SELECT * FROM mytable1 UNION ALL SELECT * FROM mytable2 source=mytable1 | APPEND [SEARCH source=mytable2] |
區別在於,不需要去重字段 |
在表關聯查詢中,示例使用的是字段相同的,但是我的比較特殊,沒有字段關聯名稱關聯,但是我確認字段的值是關聯的。
index="數據集1" category="類別" | stats count as "訪問次數" BY srcuser|join type=left srcuser [SEARCH index="數據集2" |rename ldap_id as srcuser]|table srcuser "訪問次數" mail_id,user_cname,user_email,user_deptpath,user_dept1,leader_ldap,leader_email,leader_cname