問題タブ [logstash-logback-encoder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
798 参照

tcp - Logstash TCP 入力が起動すると、過去のすべてのログが取得されます

アプリケーション ログバック構成 -

Logstash の入力は TCP プラグインで、出力は ElasticSearch です。最初は Logstash サーバーがダウンしており、アプリケーションは継続的にログを生成しています。Kibana で表示すると、新しいログは追加されません。しばらくすると、logstash が開始されます。Kibana でログを表示すると、logstash がダウンしたときに生成されたすべてのログが ES にフラッシュされ、表示できるようになりました。

ss | grep 5001ポート 5001 が CLOSED-WAIT 状態で、キューが空であるときに、logstash サーバーがダウンしたときを確認しました。

この理由は何ですか?

0 投票する
3 に答える
1393 参照

groovy - Logback.groovy LogstashEncoder フィールド名の変更

いくつかのカスタム フィールドを使用してネットワーク上のログスタッシュにデータを送信する logback.groovy があります。

ここまでは順調ですね。ただし、elasticsearch ダウンストリームでは無効なフィールド名をクリーンアップする必要があります。LogstashEncoder のドキュメントに基づいて、これは次のように実現できます。

これは素晴らしいようですが、これを logback.groovy 表記に合わせる必要があります。ハッシュマップ、文字列などとして試しましたが、常に最終的にはCannot cast object 'xxxx' with class 'xxxx' to class 'net.logstash.logback.fieldnames.LogstashFieldNames'

0 投票する
1 に答える
974 参照

logback - OnMarkerEvaluator フィルターでのワイルドカードまたは正規表現の使用

すべてのマーカーを受け入れるアペンダーを作成しようとしていますlogstash-logback-encoder

1.0.7logbackを使用して次のことを試しましたlogstash-logback-encoder 4.6

....

しかし、うまくいきません。このアペンダーには何も入っていないようです。

次のフィルター作業ビットは非常に面倒です

0 投票する
1 に答える
578 参照

json - Handlebars-proto と logstash-logback-encoder slf4j の競合

私のプロジェクトでは、handlebars-proto を使用してテンプレートを json にバインドしています。また、logstash-logback-encoder を使用して、logstash の Json 形式でログインしようとしています。以下は私のコンパイル依存関係です(他の依存関係とともに)

ハンドルバーを削除すると、依存関係のログが正常に機能します。ハンドルバーが存在する場合、次の警告が表示されます。

SLF4J: クラスパスに複数の SLF4J バインディングが含まれています。SLF4J: [jar:file:/C:/Users/manish/.gradle/caches/modules-2/files-2.1/com.github.jknack/handlebars-proto/4.0.5/5979737344d99e0d8b482e828f247ae86fd0113/handlebars-proto でバインドが見つかりました-4.0.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: [jar:file:/C:/Users/manish/.gradle/caches/modules-2/files-2.1/ch でバインドが見つかりました.qos.logback/logback-classic/1.1.6/665e3de72f19ec66ac67d82612d7b8e6b3de3cd0/logback-classic-1.1.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: http://www.slf4j.org/codesを参照説明については.html#multiple_bindingsを参照してください。

エラーが続きます:

[ch.qos.logback.classic.LoggerContext] のインスタンス化に失敗しました 報告された例外: java.lang.NoSuchMethodError: ch.qos.logback.core.spi.ContextAwareBase.(Lch/qos/logback/core/spi/ContextAware;)V net.logstash.logback.composite.CompositeJsonFormatter.(CompositeJsonFormatter.java:106) で net.logstash.logback.composite.loggingevent.LoggingEventCompositeJsonFormatter.(LoggingEventCompositeJsonFormatter.java:28) で net.logstash.logback.LogstashFormatter.(LogstashFormatter. java:122) net.logstash.logback.LogstashFormatter.(LogstashFormatter.java:118) で net.logstash.logback.LogstashFormatter.(LogstashFormatter.java:114) で net.logstash.logback.encoder.LogstashEncoder.createFormatter(LogstashEncoder) .java:31) で net.logstash.logback.encoder.CompositeJsonEncoder.(CompositeJsonEncoder.java:48) で net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder.(LoggingEventCompositeJsonEncoder.java:23) で net.logstash.logback.encoder. LogstashEncoder.(LogstashEncoder.java:27) は sun.reflect にあります。NativeConstructorAccessorImpl.newInstance0(Native Method) の sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) の sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) の java.lang.reflect.Constructor.newInstance(Constructor. java:526) で java.lang.Class.newInstance(Class.java:379) で ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) で ch.qos.logback.core で.joran.spi.Interpreter.callBeginAction(Interpreter.java:276)、ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148)、ch.qos.logback.core.joran.spi .Interpreter.startElement(Interpreter.java:130) at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)50)50)newInstance0(Native Method) の sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) の sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) の java.lang.reflect.Constructor.newInstance(Constructor.java: 526) java.lang.Class.newInstance(Class.java:379) で ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) で ch.qos.logback.core.joran .spi.Interpreter.callBeginAction(Interpreter.java:276) で ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) で ch.qos.logback.core.joran.spi.Interpreter .startElement(Interpreter.java:130) at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance0(Native Method) の sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) の sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) の java.lang.reflect.Constructor.newInstance(Constructor.java: 526) java.lang.Class.newInstance(Class.java:379) で ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) で ch.qos.logback.core.joran .spi.Interpreter.callBeginAction(Interpreter.java:276) で ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) で ch.qos.logback.core.joran.spi.Interpreter .startElement(Interpreter.java:130) at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance(NativeConstructorAccessorImpl.java:57) で sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) で java.lang.reflect.Constructor.newInstance(Constructor.java:526) で java.lang.Class.newInstance(Class .java:379) ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) で ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) で) ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) で ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) で ch. qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance(NativeConstructorAccessorImpl.java:57) で sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) で java.lang.reflect.Constructor.newInstance(Constructor.java:526) で java.lang.Class.newInstance(Class .java:379) ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) で ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) で) ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) で ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) で ch. qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance(DelegatingConstructorAccessorImpl.java:45) で java.lang.reflect.Constructor.newInstance(Constructor.java:526) で java.lang.Class.newInstance(Class.java:379) で ch.qos.logback.core.joran .action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) で ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) で ch.qos.logback.core.joran.spi.Interpreter ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) の .startElement(Interpreter.java:148) ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer) .java:50)newInstance(DelegatingConstructorAccessorImpl.java:45) で java.lang.reflect.Constructor.newInstance(Constructor.java:526) で java.lang.Class.newInstance(Class.java:379) で ch.qos.logback.core.joran .action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) で ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) で ch.qos.logback.core.joran.spi.Interpreter ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) の .startElement(Interpreter.java:148) ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer) .java:50)122) ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) で ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) で.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)122) ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) で ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) で.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)

ハンドルバーから推移的な依存関係として slf4j を除外しようとしましたが、役に立ちませんでした。

助けてくれてありがとう。詳細が必要な場合はお知らせください。

0 投票する
2 に答える
1541 参照

java - ELK スタックで使用する JSON での Java ログアウトのフォーマット

ロガーを JSON 形式で出力しようとしているので、ELK スタックでフィルターを使用する必要がなくなります。それはうまくいくようです。

これが私が持っているものです

私のfile.logへの出力

logstash コンソールへの出力

私の質問

メッセージは文字列として出力されているようですが、Elasticsearch が個々のフィールドを取得してインデックスを付けて検索できるように、JSON として出力するにはどうすればよいですか?

0 投票する
0 に答える
2104 参照

spring-mvc - Spring-boot の logstash-logback 構成に失敗しました

spring-boot 1.4.0 を使用しています。ログを json 形式で出力するために、アプリケーションで logstash-logback-encoder を使用したいと考えています。エラーは発生していませんが、ログは引き続き json ではなくプレーン テキストで出力されます。この問題を解決します。

pom.xml

logback-spring.xml

HomeController.java

構成クラス

ロガーをjson形式で出力したいのですが、よろしくお願いします。

0 投票する
1 に答える
942 参照

json - logstash-logback-encoder を使用した JSON としてのファイルへの失敗ログ

scala logging 3.5.0、logback-classic 1.1.7を使用する Scala アプリケーションがあります。問題なくプレーン テキスト ファイルにログを記録できますが (logstash はまだ使用していませんが)、logstash-logback-encoderを使用してログ ファイル形式を JSON に変更したいと考えていました。更新されたファイル アペンダーの定義は次のようになります。

ドキュメントから、これはサポートされているすべてのフィールドを含む JSON としてファイルに記録する必要があるようですが、アプリケーションの起動時に空のログ ファイルと次のエラー メッセージが表示されます。

明らかな何かが欠けていると確信しています。私のセットアップは、私が見た他のセットアップと非常に似ているようです (JSON ファイルのログが必要なだけで、logstash をまだ使用していない)。どんな助けでも大歓迎です!

0 投票する
0 に答える
290 参照

json - serviceMix、pax-logging-logback、logstash-logback-encoder

pax-logging-logback と logstash-logback-encoder を使用して、json 形式で logstash にログオンしています。ここで、logstash-logback-encoder のマーカーを使用して、JSON 出力にフィールドを追加したいと考えています。

LogstashTcpSocketAppender は json を logstash に送信しますが、追加のフィールドはありません ("msg":"msg")。シンプルなMavenプロジェクトLogstashTcpSocketAppenderで同じコードを使用しようとすると、jsonにフィールドが追加されます。

メソッド`の場合、サービスミックスはエラーを表示しません

実行可能です。

0 投票する
1 に答える
795 参照

logstash - Logstash で grok を使用して、JSON データと非 JSON データが混在するログ行からフィールドを抽出できません

Docker コンテナーでいくつかの Spring Boot アプリケーションを実行しています。ファイルにログを記録したくないので、代わりにコンソールにログを記録し、logspout を使用してログをLogstashに転送しています。logstash-logback-encoderを使用して、アプリケーションからのすべてのログを JSON 形式で記録しています。

これらとは別に、Spring Boot アプリケーションを開始する前に docker コンテナーによって作成されるいくつかのログ (コンソール出力) もあります。これらは JSON 形式ではありません。

これらの両方に、Logspout は Logstash に送信する前にメタデータ (コンテナー名、コンテナー ID など) を追加します。以下は、両方の形式のログの例です。

  1. コンテナーから直接 (JSON なし)

<14>1 2016-12-01T12:58:20Z 903c18d47759 com-test-myapp 31635 - - テストするアクティブなプロファイルを設定しています

  1. アプリケーション ログ (JSON 形式)

<14>1 2016-12-01T13:08:13Z 903c18d47759 com-test-myapp 31635 - - {"@timestamp":"2016-12-01T13:08:13.651+00:00","@version":1 ,"message":"ここにログ メッセージが入ります","logger_name":"com.test.myapp.MyClass","thread_name":"http-nio-8080-exec-1","level":"DEBUG" ,"レベル値":10000,"ホスト名":"903c18d47759"}

以下は、Logstash の grok 構成です。

これに基づいて、JSON の各フィールドを Elasticsearch/Kibana のフィルターとして使用できるようにしたいと考えていました。しかし、それらのフィールドの値を取得できません。以下のように Kibana に表示されます。 ここに画像の説明を入力

ここで何が欠けているのかわかりません。JSON からフィールドを抽出するにはどうすればよいですか? また、Grok フィルターは、JSON ログと非 JSON ログの両方を処理するのに適切ですか?

ありがとう、アヌープ