
我有一個寫入資料庫的灰塵syslog-ng 3.1.3
,一切運作良好,但它似乎只保留 30 天的日誌(最後一個表格是logs20150826
)我怎麼能增加它?我在文件中沒有看到任何立即清晰的內容。
logrotate 目錄中有一些引用,但似乎沒有任何內容可以控制 mysql 目標,因此/etc/syslog-ng/syslog-ng.conf
30 天的保留必須是某種預設值。
答案1
檢查您是否安裝了 php-syslog-ng,syslog-ng 對此不負有責任。
日誌旋轉
日誌輪替應該是使用 php-syslog-ng 的大多數安裝的一部分。使用日誌輪轉比刪除主表中的行更好,因為刪除行可能會導致效能問題。將舊日誌移出主表通常也會帶來更好的效能,因為包含舊日誌的表是靜態的並且可以最佳化。在scripts目錄下有一個logrotate.php腳本。您可能需要編輯它以輸入 php-syslog-ng 安裝的正確路徑,但之後它應該可以使用了。如果您在 config.php 檔案中啟用合併表,則會在腳本末尾建立所有日誌表的合併表。合併表將允許您搜尋所有表,而不必一次針對一個表進行搜尋。合併表確實會對搜尋表單造成輕微的效能影響,因為欄位是根據所有表而不是某個特定表填入的。
您也可以在 config.php 中指定啟用 LOGRETENTION 設定。如果啟用此功能,則每當 logrotate.php 運行時,早於此設定的日誌都會被刪除。
如果您決定使用 logrotate.php 腳本,那麼只需將其新增至您的 crontab 並讓它運行您想要的頻率(目前最多為每天一次)。