iT邦幫忙

0

Garylog Search query language

  • 分享至 

  • xImage

需求是 在Graylog log 搜出及過濾特定目標,
以簡單的帳戶鎖定為例.
以下這樣是符合需求的 , 結果不含特定電腦名稱

EventID:4740 AND  "DC1.domain.com" OR "DC2.domain.com" NOT "呼叫者電腦名稱: TW-TESTPC1" 

但如果是用 * 只要開頭是AU 的電腦都過濾掉,是無作用的,
但如果是完整電腦名稱是可以過濾掉
有參考官方文件

EventID:4740 AND  "DC1.domain.com" OR "DC2.domain.com" NOT "呼叫者電腦名稱: TW-TESTPC1" NOT 呼叫者電腦名稱: "AU*"  

請問應該要怎麼下 才能達到需求?
(實際測了很多方式都但不成功,這裡只舉上方的例子)


2022/12/02/17:35 更新

我再試了一下, 以下 萬用字元竟然是有效的

EventID:4740  AND  "DC01.domain.com" OR "DC02.domain.com"  NOT "呼叫者電腦名稱: SERVER1" NOT "呼叫者電腦名稱: APPS*"  NOT "呼叫者電腦名稱: LP-*" 

但為什麼 把LP-* , APPS* 分別改為 LP* , APP*
則LP* 生效 , APP* 就不生效, AU* 萬年不生效
想知道這規則是什麼

EventID:4740  AND  "DC01.domain.com" OR "DC02.domain.com"  NOT "呼叫者電腦名稱: SERVER1" NOT "呼叫者電腦名稱: APP*"  NOT "呼叫者電腦名稱: LP*" 
看更多先前的討論...收起先前的討論...
Penut Chen iT邦研究生 5 級 ‧ 2022-12-02 08:25:42 檢舉
我只是想試試看 ChatGPT,這個給你參考看看
https://i.imgur.com/8Ny9NDl.png
沒有拆到TargetDomainName這個欄位嗎?
EventID:4740 AND (NOT TargetDomainName:(TW-TESTPC1 AU*))
Kailis iT邦研究生 1 級 ‧ 2022-12-02 13:16:58 檢舉
2位大大的測試結果都一樣, 過濾不掉AU 開頭的, 將呼叫者電腦名稱 改為TargetDomainName跟原本一樣沒有作用
你的問題應該是看看到底graylog有extract出那些欄位.
Kailis iT邦研究生 1 級 ‧ 2022-12-02 17:05:56 檢舉
欄位在log 內都有顯示, default 可以抓出 all messages 內的, 都可以search , 所以應該不是這個問題
即然都有相對應的欄位? 為什麼要用fullmessage來做搜尋, 如果你有extract出TargetDomainName這個欄位, 這種(TW-TESTPC1 AU*)多條件是一定可以的.
Kailis iT邦研究生 1 級 ‧ 2022-12-05 16:18:18 檢舉
下方回答的部份, 就有試過TargetDomainName 囉, 跟 Caller Computer Name: 結果是一樣的, 但上週再測試, 用Caller Computer Name: 不是沒作用, 是只針對部份字串有效, (如上方問題12/02更新的部份) 不知道Graylog 萬用字元的規則是什麼
我自己的graylog 4.1用fullmessage來做 *的搜尋確實是有問題, 但改用TargetDomainName 就一切正常. 並且EventID 4740, 在我的環境裡是沒有解出Caller Computer Name這個欄位的.
Kailis iT邦研究生 1 級 ‧ 2022-12-06 17:03:18 檢舉
我的 的版本只有3.1.4 = =" , 我先研究一下 更新到4.3 再回頭測試看看,再來回報測試結果
Kailis iT邦研究生 1 級 ‧ 2022-12-13 17:44:22 檢舉
回報一下, 經過升版到4.3 再升版到5.0 , 目前狀況還是一樣,
不過有一個好的情況是在Query 語法過程, 就會提示你語法是否正確, 這個算蠻好的一個功能
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
James
iT邦大師 6 級 ‧ 2022-12-02 08:48:33

NOT 呼叫者電腦名稱: "AU*" ==> AND NOT "呼叫者電腦名稱: AU*"
如果沒有把"呼叫者電腦名稱" parse 出來成單獨欄位,要在full message中搜尋,引號要像上面這樣加,同時要注意:和AU中間的空白數量也要對,另一個NOT前面應該也要加AND才比較合理。

看更多先前的回應...收起先前的回應...
Kailis iT邦研究生 1 級 ‧ 2022-12-02 11:48:05 檢舉

改成這樣也是無作用, 昨天也試過, 另外如果在 另一個NOT前也加 AND
就完全搜不到結果了

以下可以過濾在SERVER1 鎖定的LOG , 但還是會出現AU開頭的電腦

EventID:4740  AND  "DC01.domain.com" OR "DC02.domain.com"  NOT "呼叫者電腦名稱: SERVER1" AND NOT "呼叫者電腦名稱: AU*"
James iT邦大師 6 級 ‧ 2022-12-02 13:35:08 檢舉

https://www.elastic.co/guide/en/elasticsearch/guide/2.x/_wildcard_and_regexp_queries.html
這頁最下方的說明"呼叫者電腦名稱: SERVER1",因為有空格會被當成兩個詞處理,就沒辦法配合萬用字元使用。

James iT邦大師 6 級 ‧ 2022-12-02 14:00:44 檢舉

試試這個

EventID:4740 AND source:/DC[12].domain.com/ AND NOT TargetDomainName:(TW-TESTPC1 OR AU*)
Kailis iT邦研究生 1 級 ‧ 2022-12-02 14:13:02 檢舉

一樣欸, 結果會變成連 tw-testpc1 都沒被過濾了..

我要發表回答

立即登入回答