Когда я удаляю самые старые журналы из файла журнала, API ведения журнала снова вставляет остальные журналы.

avatar
JMoreira
1 июля 2021 в 15:50
62
0
0

У меня есть файл журнала на моем Linux-сервере с именем demo.log, из которого API ведения журнала получает журналы.

Что я хочу сделать, так это удалить старые журналы из demo.log, но когда я это сделаю, API ведения журналов загружает остальные журналы обратно в GCP, дублируя их.

Я пытался использовать код, запрограммированный в узле, и эту команду Linux: sed -i "1,10d" demo.log

Мне удалось успешно удалить журналы, но я не могу заставить API ведения журналов не дублировать оставшиеся журналы.

Как удалить журналы, не дублируя их в GCP?

Это файл конфигурации, который указывает на demo.log в /etc/google-fluentd/config.d

<source>
   @type tail
   <parse>
       # 'none' indicates the log is unstructured (text).
       @type none
   </parse>
   # The path of the log file.
   path /home/username/demo/src/demo.log
   # The path of the position file that records where in the log file
   # we have processed already. This is useful when the agent
   # restarts.
   pos_file /var/lib/google-fluentd/pos/demo-log.pos
   read_from_head true
   # The log tag for this log input.
   tag demo-log
</source>
Источник
John Hanley
1 июля 2021 в 18:20
0

Ваш регистратор использует tail. Когда вы изменяете файл журнала, размер файла отличается (скорее всего, меньше, чем при последнем обновлении), поэтому журналирование считает, что это новый файл, и загружает файл целиком. Таким образом, не трогайте файлы, используемые для ведения журнала.

JMoreira
5 июля 2021 в 18:10
0

Спасибо обоим за ваши ответы, в конце концов, я собираюсь использовать ротацию журналов. Теоретически он не должен дублировать журналы.

Pit
8 июля 2021 в 15:19
0

Пожалуйста, проверьте Журналы дублируются из официальной документации, возможно, ротация журналов уже включена или временная метка не обрабатывается должным образом.

Ответы (0)