Syslog-ng и Logrotate, создающий редкие файлы

Мы использовали системный-журнал-ng для входа наших журналов пост-ГРЭС. Вдобавок к нему мы выполняем logrotate каждые 5 минут который также gzips файлы. Недавно, мы отметили, что эти журналы пост-ГРЭС содержат много нулевых символов в начале файла. Мы позже поняли, что место, занятое нулевыми символами, равно предыдущему размеру файла.

Исследование (https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=733856) на том, почему sparsing происходил, мы поняли, что проблема связана с системным-журналом-ng, не бывшим способным записать журналы с начала. Мы пытались писать постповорачивать сценарий, который уничтожит - ПОНУКАЮТ системный-журнал-ng. Мы попробовали это, но напрасно. Многие разобрались в этой проблеме путем установки бита o_append. Кто-либо знает, как установить бит o_append для системного-журнала-ng так, чтобы он не писал из последней сохраняемой головки записи и запускался с начала файла?

0
задан 20 March 2015 в 09:24
1 ответ

Предположим, вы говорите о /var/log/postgresql/postgresql--main.log: syslog - это не ваша точка контроля. Как указывает wurtel, эти журналы не поступают через syslog, а являются stdout / stderr процесса postgres

Вот почему стандартный logrotate для postgres должен быть copytruncate, т.е. скопировать файл, а затем усечь его до нулевых байтов. . После этого перенаправленный вывод снова начнет записывать с начала файла (по крайней мере, так происходит в стандартной готовой системе).

Как ни странно, если ваш logrotate не является copytruncate, то я ожидал бы, что после поворота вывод пойдет в файл .1. Не могли бы вы поделиться конфигурацией logrotate, которую вы используете? Я подозреваю, что где-то там есть зацепка.

0
ответ дан 5 December 2019 в 12:53

Теги

Похожие вопросы