其餘版本請參閱版本化的插件文檔html
對於非默認綁定的插件,經過運行bin/logstash-plugin install logstash-input-log4j
來輕鬆安裝,有關更多細節請參見使用插件。git
有關插件的問題,請在討論論壇中打開一個主題,對於bug或特性請求,在Github中打開一個issue,關於Elastic支持的插件列表,請參考Elastic支持矩陣。github
這個插件已經被棄用,建議你使用filebeat從log4j收集日誌。
如下部分是如何從SocketAppender遷移到使用filebeat的指南。apache
要從log4j SocketAppender遷移到使用filebeat,你須要作3個更改:安全
log4j.properties
(在你的應用程序中)以寫入本地文件。配置log4j以寫入到本地文件,在log4j.properties
文件中,移除SocketAppender
,並用RollingFileAppender
替換它。服務器
例如,你可使用如下log4j.properties
配置來寫入日誌文件。app
# Your app's log4j.properties (log4j 1.2 only) log4j.rootLogger=daily log4j.appender.daily=org.apache.log4j.rolling.RollingFileAppender log4j.appender.daily.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy log4j.appender.daily.RollingPolicy.FileNamePattern=/var/log/your-app/app.%d.log log4j.appender.daily.layout = org.apache.log4j.PatternLayout log4j.appender.daily.layout.ConversionPattern=%d{YYYY-MM-dd HH:mm:ss,SSSZ} %p %c{1}:%L - %m%n
更詳細地配置log4j.properties
超出了這個遷移指南的範圍。socket
配置filebeat,接下來安裝filebeat,基於上面的log4j.properties
,咱們可使用這個filebeat配置:ide
# filebeat.yml filebeat: prospectors: - paths: - /var/log/your-app/app.*.log input_type: log output: logstash: hosts: ["your-logstash-host:5000"]
有關配置filebeat的詳細信息,請參閱filebeat配置指南。ui
配置Logstash從filebeat接收,最後,使用beats輸入配置Logstash:
# logstash configuration input { beats { port => 5000 } }
強烈建議你也在filebeat和logstash beats輸入中啓用TLS
,以保護日誌數據的安全。
有關配置beats輸入的詳細信息,請參閱logstash beats輸入文檔。
從Log4j SocketAppender經過TCP socket讀取事件,這個插件只適用於log4j 1.x版本。
是否能夠接受客戶端鏈接或鏈接到服務器,取決於mode
,根據配置的mode
,你須要在遠程端配置匹配的SocketAppender
或SocketHubAppender
。
每接收到一個log4j LoggingEvent建立一個事件,其模式以下:
timestamp
⇒ 從1/1/1970開始的毫秒數,直到日誌事件被建立path
⇒ 日誌記錄器的名稱priority
⇒ 事件的級別logger_name
⇒ 記錄器的名字thread
⇒ 發出日誌請求的線程名稱class
⇒ 發出日誌請求的調用者的徹底限定類名file
⇒ 以冒號分隔的格式「fileName:lineNumber」發出日誌請求的調用者的源文件名和行號method
⇒ 發出日誌記錄請求的調用者的方法名NDC
⇒ NDC字符串stack_trace
⇒ 多行堆棧跟蹤另外,若是原始log4j LoggingEvent包含MDC散列條目,它們將做爲字段在事件中合併。
此插件支持如下配置選項以及稍後描述的通用選項。
設置 | 輸入類型 | 要求 |
---|---|---|
host |
string | No |
mode |
string,["server", "client"] 中的一個 |
No |
port |
number | No |
proxy_protocol |
boolean | No |
還能夠查看全部輸入插件支持的選項列表的通用選項。
hots
「0.0.0.0」
server
時,要監聽的地址,當模式爲client
時,鏈接到的地址。mode
server
,client
"server"
server
監聽客戶端鏈接,client
鏈接服務器。port
4560
server
時,監聽的端口,當模式爲client
時,要鏈接的端口。proxy_protocol
false
全部輸入插件都支持如下配置選項:
設置 | 輸入類型 | 要求 |
---|---|---|
add_field |
hash | No |
codec |
codec | No |
enable_metric |
boolean | No |
id |
string | No |
tags |
array | No |
type |
string | No |
add_field
{}
codec
"plain"
enable_metric
true
id
向插件配置添加惟一的ID
,若是沒有指定ID,則Logstash將生成一個,強烈建議在配置中設置此ID,當你有兩個或多個相同類型的插件時,這一點特別有用。例如,若是你有兩個log4j輸入,在本例中添加一個命名ID將有助於在使用監視API時監視Logstash。
input { log4j { id => "my_plugin_id" } }
tags
type
type
字段,類型主要用於過濾器激活,該type
做爲事件自己的一部分存儲,所以你也可使用該類型在Kibana中搜索它。若是你試圖在已經擁有一個type
的事件上設置一個type
(例如,當你將事件從發送者發送到索引器時),那麼新的輸入將不會覆蓋現有的type
,發送方的type
集在其生命週期中始終與該事件保持一致,甚至在發送到另外一個Logstash服務器時也是如此。