Logging

Logstash 匹配 ceph 客戶端和伺服器分離

  • June 15, 2015

所以我有一個新的logstash安裝,我正在嘗試部署logstash來處理日誌。

我正在經歷並將最終根據子系統對logstash過濾器進行分段,目前我正在解析osd日誌。

這是我正在使用的範例行:

2015-06-02 16:45:49.515277 7f4968cfe700  0 -- 10.16.64.68:6813/97613 >> 10.16.64.29:6805/35260 pipe(0x25e36500 sd=538 :6813 s=2 pgs=15426 cs=623 l=0 c=0x1586fa20).fault with nothing to send, going to standby

我的過濾器目前看起來像這樣:

%{TIMESTAMP_ISO8601:date} %{BASE16FLOAT:osd_epoch}  %{NUMBER:error_bool} -- %{CEPH_HOST:client_A} %{FROMTO} %{CEPH_HOST:client_B}

在哪裡 $ {CEPH_HOST} and $ {FROMTO} 只是簡短的模式::

FROMTO (?:[<|>]){1,2}
CEPH_HOST (%{IPORHOST:ip}\:%{POSINT:port}/%{POSINT:socket})

問題是 IP 現在似乎包含兩個地址。

 "client_A": [
[
 "10.16.64.68:6813/97613"
]
],
"ip": [
[
 "10.16.64.68",
 "10.16.64.29"
]
],
"HOSTNAME": [
[
 "10.16.64.68",
 "10.16.64.29"

我想摸索它,讓它client_a有一個 IP 並且client_b有一個 IP。

然而,這到底重要嗎?

我可以保持原樣嗎?

如果是這樣,我以後可以排序嗎?如果沒有,我該如何分割它client_aclient_b分開?

我需要為兩者創建一個“獨特”的模式嗎?

我不確定你是否知道如何做到這一點,但我正在為我自己的環境尋找類似的東西,我認為唯一的方法是為每個客戶端設置模式。

我已經在grok 建構子中測試了它們並且它們返回了有效欄位。

如果您只想為客戶端 A (10.16.64.68:6813/97613) 和客戶端 B (10.16.64.29:6805/35260) 設置一個欄位,這將起作用:

%{TIMESTAMP_ISO8601:date} %{BASE16FLOAT:osd_epoch}  %{NUMBER:error_bool} -- (?<client_a>(%{IPORHOST}\:%{POSINT}/%{POSINT})) %{FROMTO} (?<client_b>(%{IPORHOST}\:%{POSINT}/%{POSINT}))

2015-06-02 16:45:49.515277 7f4968cfe700 0 – 10.16.64.68:6813/97613 10.16.64.29:6805/35260 MATCHED

client_a: 10.16.64.68:6813/97613

client_b: 10.16.64.29:6805/35260

error_bool: 0

日期:2015-06-02·16:45:49.515277

osd_epoch: 7f4968cfe700

如果您還想要該連接的每個元素(客戶端 a/b IP、客戶端 a/b 埠、客戶端 a/b 套接字)的單獨欄位,則此模式應該有效:

%{TIMESTAMP_ISO8601:date} %{BASE16FLOAT:osd_epoch}  %{NUMBER:error_bool} -- (?<client_a>(%{IPORHOST:client_a_ip}\:%{POSINT:client_a_port}/%{POSINT:client_a_socket})) %{FROMTO} (?<client_b>(%{IPORHOST:client_b_ip}\:%{POSINT:client_b_port}/%{POSINT:client_b_socket}))

2015-06-02 16:45:49.515277 7f4968cfe700 0 – 10.16.64.68:6813/97613 10.16.64.29:6805/35260 MATCHED

client_a: 10.16.64.68:6813/97613

client_b: 10.16.64.29:6805/35260

client_a_ip: 10.16 .64.68

client_b_ip: 10.16.64.29

client_a_port: 6813

client_b_port: 6805

client_a_socket: 97613

client_b_socket: 35260

error_bool: 0

日期: 2015-06-02·16:45:49.515277

osd_epoch: 7f4968cfe700

引用自:https://serverfault.com/questions/696211