
syslog-ng 3.1.3
データベースに書き込むDusty があり、すべて正常に動作していますが、ログは 30 日間しか保持されないようです (最後のテーブルはlogs20150826
)。どうすればこれを増やすことができますか? ドキュメントにはすぐには何もわかりません。
logrotate ディレクトリにはいくつかの参照がありますが、mysql の宛先を制御しているものはなく、何もないので、/etc/syslog-ng/syslog-ng.conf
この 30 日間の保持は何らかのデフォルトである必要があります。
答え1
php-syslog-ng がインストールされているかどうかを確認してください。syslog-ng はこれに責任を負いません。
ログローテーション
ログ ローテーションは、php-syslog-ng を使用するほとんどのインストールの一部です。メイン テーブルの行を削除するとパフォーマンスの問題が発生する可能性があるため、ログ ローテーションを使用する方が、メイン テーブルから行を削除するよりも適しています。古いログをメイン テーブルからローテーションすると、古いログを含むテーブルは静的で最適化できるため、通常はパフォーマンスが向上します。スクリプト ディレクトリに logrotate.php スクリプトがあります。php-syslog-ng インストールへの正しいパスを入力するために編集する必要がある場合がありますが、その後は使用できる状態になります。config.php ファイルでマージ テーブルを有効にすると、スクリプトの最後にすべてのログ テーブルのマージ テーブルが作成されます。マージ テーブルを使用すると、一度に 1 つのテーブルに対して検索を行うのではなく、すべてのテーブルを検索できます。マージ テーブルを使用すると、フィールドが 1 つの特定のテーブルではなくすべてのテーブルに基づいて入力されるため、検索フォームのパフォーマンスがわずかに低下します。
config.php で LOGRETENTION 設定を有効にすることもできます。これを有効にすると、logrotate.php が実行されるたびに、この設定より古いログが削除されます。
logrotate.php スクリプトを使用する場合は、それを crontab に追加し、必要な頻度で実行します (最大実行頻度は現在 1 日 1 回です)。