iT邦幫忙

0

ELK logstash 問題

我使用了 Docker 架設了 ELK,但是我目前實驗是將所有 VMware 上的虛擬機 log 傳入 rsyslog 514 Port,接著在傳入 logstash 。雖然 kibana 那邊都有收到,但我要如何將 VMware 上的虛擬機用 logstash 做分類(web 專用的或者 SQL 專用的)。

1 個回答

0
跑跑貓力歐
iT邦新手 5 級 ‧ 2018-05-15 11:06:20

Logstash可以用if-else來作filter或output(官網說明),如果要區分Web專用或者SQL專用,需要特定pattern可以用來當作if-else判斷的依據,支援一般比對、regex模糊比對和。

假設虛擬機log裡會帶host名稱或種類,且可以用來判斷為Web或SQL (如:ldpweb01, lddweb02, prodsql01, prodsql02),則可以這樣寫:

filter{
  if [host] =~ /.*web.*/ {
    mutate { add_field => { "[log_type]" => "web" } }
  }
  if [host] =~ /.*sql.*/ {
    mutate { add_field => { "[log_type]" => "sql" } }
  }
}

如果符合if condition,logstash會在message裡加入一個log_type的欄位,那在kibana呈現時就當作query條件或是當作metric的x or y軸。

我要發表回答

立即登入回答