私はSpringBootアプリケーションでLogbackとLogstashを使用しています。私はサービスの名前のプロパティを持っている、などであるlogback.xmlでLogBack - LogStash - ログバックにプロパティを追加してLogstashに送信
:
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<property name="spring.application.name" calue="service"/>
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>localhost:9600</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="stash" />
</root>
</configuration>
Logstashのconfファイルは次のようである:
input{ tcp{
port=> 9600
host=>logstash
}
}
filter {
grok {
match => {
"message" =>
"^%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:level}\s+%{NUMBER:pid}\s+---\s+\[\s*%{USERNAME:thread}\s*\]\s+%{JAVAFILE:class}\s*:\s*%{DATA:themessage}(?:\n+(?<stacktrace>(?:.|\r|\n)+))?$"
}
}
date {
match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss.SSS" ]
}
mutate {
remove_field => ["@version"]
add_field => {
"appid" => "%{[path]}"
}
add_field => {
"levell" => "level"
}
add_field => {
"mensage" => "message"
}
}
}
output{
elasticsearch {
hosts => ["elasticsearch"]
index => "indice"
}
stdout{}
}
私が行うことができますどのようにフィールドとしてログバックファイルからアプリケーション名のプロパティを追加しますか? logstash-logback-エンコーダのドキュメントから
ありがとう@roby!プロパティはログに表示されますが、 "メッセージ"フィールドは表示されません。私はフィールドとしてのプロパティを持って、木場でログをフィルタリングしたい。あなたはそれをする方法を知っていますか? これをlogastash confファイルに書き込もうとしましたが、動作しませんでした: 'add_field => { " service "=> [" @ spring.application.name "] } – AleGallagher