У меня есть файл журнала на моем 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>
Ваш регистратор использует
tail
. Когда вы изменяете файл журнала, размер файла отличается (скорее всего, меньше, чем при последнем обновлении), поэтому журналирование считает, что это новый файл, и загружает файл целиком. Таким образом, не трогайте файлы, используемые для ведения журнала.Спасибо обоим за ваши ответы, в конце концов, я собираюсь использовать ротацию журналов. Теоретически он не должен дублировать журналы.
Пожалуйста, проверьте Журналы дублируются из официальной документации, возможно, ротация журналов уже включена или временная метка не обрабатывается должным образом.