Вопрос или проблема
Вот моя конфигурация (/etc/google-cloud-ops-agent/config.yaml):
logging:
receivers:
my_logs:
type: files
include_paths:
- /var/log/pods/*.log
- /tmp/*.log
# exclude_paths: [/var/log/not-this-one.log]
record_log_file_path: true
Я знаю, что это в правильном месте, потому что когда она была неверной, агент не запускался.
Она не отслеживает логи в “/tmp” или “/var/log/pods”. Я также не видел ничего в документации о рекурсии. Происходит ли рекурсия по подпапкам “/var/log/pods”? Если нет, как мне это сделать?
Когда он запускается, кажется, что он игнорирует мои файлы журнала:
Ответ или решение
Почему GCE Ops Agent не отслеживает мои журналы?
Существует несколько причин, по которым Google Cloud Ops Agent может не отслеживать или «не делать tail» ваших файлов журналов в указанных вами каталогах (/tmp
и /var/log/pods
). Давайте рассмотрим основные моменты.
1. Неправильная конфигурация
Вы указали, что вы разместили свою конфигурацию в /etc/google-cloud-ops-agent/config.yaml
и убедились, что синтаксис правильный, так как агент запустился. Однако наличие правильного синтаксиса не гарантирует правильное поведение. Обратите внимание на следующее:
- Убедитесь, что вы правильно указали
include_paths
. Путь должен быть корректным и файлам в этих каталогах должны быть доступны права на чтение для основного пользователя или группы, под которой работает агент. - Попробуйте добавить точки входа для конкретных файлов журналов, чтобы сузить диапазон поиска и убедиться, что проблема не в путях.
2. Ограничения агента
По умолчанию Google Cloud Ops Agent может иметь ограничения по рекурсивному сканированию подкаталогов. Ваша гипотеза о том, что агент не просматривает подкаталоги, может быть верной. К сожалению, в официальной документации действительно не указано, что агент автоматически рекурсирует по подкаталогам. Как вариант, вы можете проверить, не влияют ли ограничения на фильтрацию в конфигурационной секции.
Для отслеживания подкаталогов можно явно указать их в include_paths
, либо проверить, нет ли возможности задать параметры, позволяющие агенту рекурсивно просматривать эти каталоги.
3. Логи в использовании
Если файлы журналов активно записываются, но агента не видно следящих за ними, стоит проверить, не заблокированы ли они процессами, работающими на момент обработки файла. Убедитесь, что ваши журналы действительно обновляются и существуют.
4. Логи бета-версии и ошибки
Также следует проверить вывод логов самого агента на предмет возможных ошибок. Агенты могут записывать ошибки, предупреждения или другую полезную информацию в специальные журналы. Глядя на эти сообщения, вы сможете понять, есть ли проблемы с файлами журналов или конфигурацией.
Значения log_level
можно настроить в конфиге для более детального логирования:
logging:
log_level: debug # добавьте это для получения подробной информации
После изменения уровня логирования перезапустите агент, чтобы изменения вступили в силу.
Заключение
Есть множество причин, по которым Google Cloud Ops Agent может не отслеживать ваши журналы. Проверьте конфигурацию на уровне правил доступа, убедитесь, что файлы существуют и обновляются, и внимательно изучите логи агента для выявления возможных ошибок. Если ничего из вышеперечисленного не поможет, возможно, стоит обратиться за поддержкой к сообществу Google Cloud или в техническую поддержку для более детального анализа вашей среды.