問題タブ [logrotate]
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.
log4j - logrotateがログファイルをローテーションするときに、log4jfileappenderが新しいファイルに切り替わらない
コンテクスト:
log4jを使用して、監査関連のログを特定のログファイル(たとえば、audit.log)に書き込みたいと思います。データの損失に耐えたくないので、syslogappender(udpベース)を使用したくありません。さらに、ファイルが特定のサイズに達したときに、logrotateを使用してaudit.logをローテーションしています。
問題:
私が遭遇しているのは、logrotateがファイルaudit.logをaudit.log.1にローテーションすると、log4jはaudit.logへの書き込み以外にaudit.log.1への書き込みを続けるということです。
考えられるアプローチ:
logrotateを使用する以外にrollingfileappenderを使用してログローテーションを実行できることはわかっているので、rollingfileappenderがファイルをロールすると、面倒なことなく新しいファイルに切り替わります。しかし、rollingfileappenderを使用できない理由は、logrotateのポストローテーション機能を使用して、ローテーションが発生した後に、rollingfileappenderでは提供できないスクリプトをトリガーするためです。
私が考えることができるもう1つの必死の方法は、log4jのカスタマイズされたアペンダーを自分で作成して、ログファイル(audit.log.1)を閉じ、ファイルが回転したことを検出したときに新しいアペンダー(audit.log)を開くことです。
ExternallyRolledFileAppenderを使用したことはありませんが、logrotate postrotateを使用して信号をExternallyRolledFileAppenderに送信し、log4jにファイルが回転していることを認識させて、新しいファイルへの書き込みを開始できる場合はどうでしょうか。
質問:
そのようないくつかのアペンダーがすでに発明/書かれているのだろうか?または、これを解決する他のオプションがありますか?
ubuntu - エラー:状態ファイルの作成中にエラーが発生しました/ var / lib / logrotate / status:アクセスが拒否されました
logrotateを使用しようとすると、logrotate.dの特定の定義に対してログローテーションスクリプトを実行すると、次のエラーが発生します。
error: error creating state file /var/lib/logrotate/status: Permission denied
私はそのパスに触れていないので、なぜデフォルトでエラーが発生するのだろうか...
icecast - Icecast ファイルがログに記録されなくなった
次の logrotate を icecast access.log で使用しているときに、次の問題が発生します。
- ファイル access.log はランダムな時間 0ko にとどまり、何も記録しません
- アーカイブ ファイル access.log-20120601.gz が空です
これは私の /etc/logrotate.d/icecast です
c - ログのローテーションを容易にするための C プログラムによるログ出力のパイピング
私は、bash リダイレクトを介してログを記録する一部のアプリを簡単に logrotate できるようにしようとしています。基本的に、STDINをバッファに読み込むCプログラムがあります。このバッファを読み取り、改行に遭遇するたびに、収集した出力をファイルに書き込みます。
このプログラムの違いは、ファイルを開いたままにしないことです。新しい行に遭遇するたびに追加するためにそれを開きます。これは logrotate ユーティリティでうまく機能しますが、後で出くわす、私が説明していない恐ろしい予期せぬ問題があるのではないかと思っています。
このユーティリティでシグナル処理を実装し、logrotate に SIGHUP を送信させるだけの方がよいでしょうか? 私がしていることに恐ろしいパフォーマンスのペナルティがありますか?
したがって、通常は次のようにします。
ロガーユーティリティを使用すると、次のことができます。
私は C が苦手ですが、C のベスト プラクティスについてはあまり詳しくありません。ガイダンスをいただければ幸いです。
ソースは次のとおりです。
ありがとう!
logrotate - logrotate で使用されるデフォルトのサイズは?
マニュアルページを見たり、ここで検索したり、ググったりしました。
logrotate で使用されるデフォルトのサイズを知っている人はいますか?
デフォルトのサイズについて、どの参考文献を引用できますか?
構成ファイルで具体的にサイズを設定できることを知っています。
truncate - WTMP(RHEL 5/6)ログのメンテナンス-ローテーションではなくローリングログを保持する必要があります
'last'コマンドやGDM-Last-Loginの詳細など、wtmpを使用するアイテムを使用するためのポリシー要件があります。wtmpが最後に回転された日時によっては、これらのアイテムにギャップがあることがわかりました。これを回避する必要があります。
これらのギャップは許容できないと判断されており、古いデータをアーカイブに分割せずにwtmpデータを単一のアクティブなログファイルに永久に保持することは実際には実行可能ではないため、古いwtmpエントリをロールオーバー/エージングアウトする方法を探しています。まだ最近のものを保持しています。
いくつかの初期の調査から、Unix(AIX、SunOS)の世界で、「fwtmp」といくつかのログローテーション前後のスクリプトを使用してこの問題が解決されるのを見てきました。これはLinuxの世界で対処されており、私はそれを見逃しましたか?
私が知る限り、「fwtmp」は、RHELカスタマーポータルの検索とテストボックスでの「yumwhatprovides」検索ごとに、RHEL5および6に組み込まれていないUnixビルトインです。
よろしくお願いします!
shell - Logrotate とシェル スクリプト
次のようにスタンプされたディレクトリ内のログファイルを指定します。
そして、このようなファイルが約 155450 個あることを考えると、次のことを簡単または効率的な方法で行うにはどうすればよいでしょうか。
logrotate または別のツールを使用して、各月のフォルダーを作成します。たとえば、mkdir $currentMont = october に、2012 年 10 月のすべてのファイルをそこに配置します。
logging - logrotate:ローテーション後にサーバー構成がリロードされるのはなぜですか
nginxとapacheの両方に、ログがローテーションされた後に送信される何らかの形式のリロード信号があることがわかります。どうしてこれなの?自分のアプリ用に設定しているので、ログが更新されずにローテーションされた場合にアプリが何らかの理由でハングするかどうかを知りたいのですが。
unix - logrotate は現在のファイルをコピーするか、現在のファイルの名前を変更しますか
オンラインでいくつかの記事を読みましたが、まだ logrotate の仕組みがわかりません。
私の設定ファイルは次のとおりです。
logrotate が開始されるたびに、メイン サービスのパフォーマンスが少し低下することに気付きました。私はその理由を見つけようとしています。
今考えられることは二つ。
1 つは、logrotate がファイルの名前を変更するのではなく、実際にファイルをコピーすることです。これは本当ですか?logrotate config に copy というオプションがあることは理解しています。そのオプションを設定しない場合でも、logrotate はファイルをコピーしますか? ファイルが大きく、それぞれが 2G を超えています。
もう 1 つのことは、HUP シグナルが原因でサービスのパフォーマンスが低下することです。私はそれについてフォローアップします。
ありがとう、ジェリー