問題タブ [systemd-journald]
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.
logging - FluentD と FluentBit の間の順序が正しくないログ
現在、ログ スタックとして JournalD + JournalBeat + Logstash を使用していますが、JournalD + FluentD の使用に切り替えたいと考えています。
https://github.com/fluent-plugin-systemd/fluent-plugin-systemdを FluentD の入力として使用してみましたが、1 秒あたり最大 1000 ログ行というスループットが低く、少なくとも 2000 をサポートする必要があります。
だから今、私はJournalD + FluentBit + FluentDで、FluentBit + FluentDの間のForwardプロトコルを使用して試しています。このスタックを使用すると、1 秒あたり 5000 ログ行のスループットに到達できますが、行が乱れます。実際、故障はチャンクにあるようです。
これが私のFluentBit設定です:
これが私のFluentD構成です:
追加の詳細:
- 4 GB と 4096 の CPU シェアを持つ Docker コンテナで FluentD と FluentBit を実行しています
- CPU 使用率の測定値は、両方のサービスで 20% 未満です。
私が試した他のこと:
- FluentBit を 2MB に設定
Mem_Buf_Limit
すると、順不同が修正されますが、1 秒あたり 350 行のスループットしか得られません。より大きなバッファログ行を使用すると、再び順不同になります。 - FluentBit の出力をファイルに設定すると、ログの行は順番に表示されますが、ログを別のファイルに分散する機能が失われます。
Flush
FluentBit でより大きな間隔を使用すると、より大きなチャンクが順不同になりますflush_thread_count
影響なしで FluentD で試した
私が試すべき他の設定/プロトコルのアイデアはありますか? Journal と FluentD を統合する他の方法はありますか?
- - - 編集 - -
DEBUG を使用して FluentBit ログを見ると、次のように表示されます。
したがって、前方出力は複数のスレッドを使用しているようです。それは期待されていますか?
systemd - **journalctl -u test.service** と **journalctl CONTAINER_NAME=test** の違い
ログドライバーjournaldでdockerコンテナーを実行するsystemdサービスファイルがあります。
journalctl でログを確認すると、2 つの異なる_TRANSPORTが表示されます。journalctl -u test.serviceを使用すると、 _TRANSPORT=stdoutが表示されます。そして、Journalctl CONTAINER_NAME=testを使用すると、 _TRANSPORT=journalが表示されます
違いはなんですか?
linux - sd_journal_print が正しくログに記録されない
以下でコンパイル:g++ sd-journal-test.cc -o sd-journal-test -lsystemd
ショー:
sd_journal_print は行やその他の番号のないログを出力し、sd_journal_Send はログを記録しませんでした。
何が原因で、これを修正するにはどうすればよいですか?