logstash 配置詳解

2021-08-08 17:27:04 字數 3201 閱讀 5534

摘要: logstash配置總結和例項

這裡記錄logstash配置中注意的事項:

整個配置檔案分為三部分:input,filter,output。參考這裡的介紹 

1 在windows中,檔案路徑中分隔符要使用/而不是\。如果使用了\,那麼*匹配將會失敗。

2 預設的@timestamp是使用utc時間表示的,所以對於北京時間會有8小時差,我們很多情況會使用日期來做type區分日誌,這時有個辦法是在filter中增加ruby來做轉換。其實是新加了乙個屬性來表示日期。

另外有個選項是在date中有timezone的屬性,但是如果設定它為utc,那麼整個日誌中的時間就是utc時間了,不是乙個理想的做法。

下面是乙個配置解釋

2016-5-5更新:

#整個配置檔案分為三部分:input,filter,output

#參考這裡的介紹 

input ,即本機的環境變數,如果要使用本機的環境變數,那麼需要在啟動命令上加--alow-env。

add_field => "

}    #這個值預設是\n 換行符,如果設定為空"",那麼後果是每個字元代表乙個event

delimiter => ""

#這個表示關閉超過(預設)3600秒後追蹤檔案。這個對於multiline來說特別有用。... 這個引數和logstash對檔案的讀取方式有關,兩種方式read tail,如果是read

close_older => 3600

coodec => multiline 

}  file 

}filter

# if [path] =~ "access" {} else if [path] =~ "methodserver" {} else if [path] =~ "servermanager" {} else {} 注意語句結構

if[path] =~ "methodserver"

% %: %"

}    }

#mutage是做轉換用的

mutate  #替換屬性值

convert => 

#date主要是用來處理檔案內容中的日期的。內容中讀取的是字串,通過date將它轉換為@timestamp。參考

#    date 

}else

if [type] in ['tbg_qas'

,'mbg_pre'

] else

# 將event丟棄

}}output  # 直接輸出,除錯用起來方便

# 輸出到redis

redis 

# 輸出到es

elasticsearch _%"

document_type => "%"

}}

下面是兩個真實的例子,第乙個是從應用到redis,第二個是從redis到es。

input 

}  file 

close_older => 60

codec => multiline  %:"

negate => true

what => "previous"

#      auto_flush_interval => 20}}}

output 

redis  

redis  

}

input 

}filter

if[path] =~ "access"

% % \[%\] \"% % (?:%|)\" (?:%|-) (?:%|-) %"

}    }

mutate  

convert => 

}date 

}else

if [path] =~ ".*servermanager.*gc\.log"

: % \[times: user=% sys=%, real=% secs\]"

}      }

date 

}else

if [message] =~ "\[gc"

: % \[times: user=% sys=%, real=% secs\]"

}      }

date 

}else

}mutate 

convert => 

}}else

if [path] =~ ".*methodserver.*gc\.log"

: % \[times: user=% sys=%, real=% secs\]"

}      }

date 

}else

if [message] =~ "\[gc"

: % \[times: user=% sys=%, real=% secs\]"

}      }

date 

}else

}mutate 

convert => 

}}else

if [path] =~ "methodserver"

%: %"

}    }

date 

mutate  }

}else

if [path] =~ "servermanager"

%: %"

}    }

date 

mutate  }

}else

if [path] =~ "process_archive"

%"}    }

date 

mutate  }

}else

if [path] =~ "esisapadapterconfiguration"

%"}    }

date 

mutate  }

}else

if [path] =~ "leno***dapterconfiguration"

%"}    }

date 

mutate  }

}else

}#    drop {}

}#  extractnumbers 

}output 

elasticsearch _%"

document_type => "%"

}}

標籤:

logstash

舉報

共有 人打賞支援

ELK之Logstash配置檔案詳解

logstash 是乙個開源的資料收集引擎,它具有備實時資料傳輸能力。它可以統一過濾來自不同源的資料,並按照開發者的制定的規範輸出到目的地。它以外掛程式的形式來組織功能,通過配置檔案來描述需要外掛程式做什麼,配置檔案主要由input filter和output三部分組成。負責從資料來源提取資料,由於...

Logstash 使用詳解

logstash是一款輕量級的日誌蒐集處理框架,可以方便的把分散的 多樣化的日誌蒐集起來,並進行自定義的處理,然後傳輸到指定的位置,比如某個伺服器或者檔案。本文針對官方文件進行翻譯以及實踐,希望有更多的有使用者了解 使用這款工具。通過命令列,進入到logstash bin目錄,執行下面的命令 log...

logstash引數配置

input配置 file 讀取檔案 input start position logstash從什麼位置讀取檔案資料,預設是結束的位置,也就是說logstash會以類似tail f的形式執行。如果需要匯入原始資料,需要把這個設定為 beginnning logstash就從頭開始讀取.stdin 標...