Агент ведения журнала stackdriver не показывает журналы, прочитанные из пользовательского файла журнала в средстве просмотра журналов stackdriver на облачной платформе Google - PullRequest
1 голос
/ 20 января 2020

Я решил опубликовать этот вопрос, потому что у меня закончились идеи отладки, просто идеи прекрасны, так как я знаю, что может быть трудно помочь отладить виртуальный экземпляр здесь (отладка кода достаточно сложна, jaja). В любом случае, я создал виртуальную машину в Compute engine, я создал файл журнала, который заполняю, например, этой командой в сценарии python, назовем его logging.py:

import logging 
logging.basicConfig(filename= 'app.log'  , level = logging.INFO , format = ' %(asctime)s - %(name) - %(levelname)s - %(message)s')   

 logging.info('Some message ' + str(type(variable))) 

каждый раз, когда я использую python3 logging.py, app.log эффективно заполняется. (Logging.py и app.log находятся в одном каталоге / home / username / folder)

Я хочу, чтобы stackdriver отображал этот журнал в средстве просмотра журналов при каждом его написании, поэтому я установил агент стека как драйвер далее в командной строке виртуальной машины:

    $ curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
    $ sudo bash install-logging-agent.sh

Здесь я не вижу никаких ошибок, на самом деле вы можете увидеть здесь полученные сообщения

enter image description here

Сообщения в средстве просмотра стека:

enter image description here

После этого я продолжаю создавать файл .conf, который я создаю в /etc/google-fluentd/config.d/app.conf

с этими параметрами

 <source>
 type tail
 format none
 path /home/username/app.log
 pos_file /var/lib/google-fluentd/pos/app.pos
 read_from_head true
 tag whatever-tag
</source>

После того, как это будет создано, я запускаю сервис sudo google-fluentd restart.

После того, как я выполню, python3 logging.py, логи не добавляются в программу просмотра логов драйверов стека.

Итак, где я мог ошибиться?

Вещи, которые я пытался / проверял:

-Есть более 13 гигабайт оперативной памяти

-Если я запускаю logger «некоторые сообщения» в командной строке, я эффективно добавить журнал с «некоторым сообщением» в программу просмотра журналов

- Если я запускаю

ps ax | grep fluentd

Я получу: 3033? Sl 0:09 / opt / google-fluentd / внедренный / bin / ruby / usr / sbin / google-fluentd --log /var/log/google-fluentd/google-fluentd.log --no-supervisor 3309 pts / 0 S + 0:00 grep --color = auto fluentd

- И мой пользователь, и учетная запись службы, которую я использую, имеют разрешение администратора регистратора в ролях IAM.

-Это документация, на которой я основывался:

https://cloud.google.com/logging/docs/agent/troubleshooting?hl=es-419 https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/list?hl=es-419 https://cloud.google.com/logging/docs/agent/configuration?hl=es-419 https://medium.com/google-cloud/how-to-log-your-application-on-google-compute-engine-6600d81e70e3 https://cloud.google.com/logging/docs/agent/installation

-Если я запускаю службу sudo в статусе google-fluentd, агент отображается активным.

enter image description here

-Мой экземпляр имеет доступ ко всем apis. Это стандарт n1-4 (4 виртуальных ЦП, 15 ГБ памяти) с использованием ubuntu linux 18:04

Итак, что еще можно проверить, чтобы отладить это? У меня нет идей, надеюсь, я здесь не идиот :(

Ответы [ 2 ]

1 голос
/ 20 января 2020

Исходя из моего понимания, я думаю, что вы ищете следующие типы ресурсов fluentd:

generic_node

«Узел generi c идентифицирует компьютер или другой вычислительный ресурс, для которого больше не применяется конкретный тип ресурса c. Значения меток должны однозначно идентифицировать узел. ”

generic_task

« Задача generi c идентифицирует процесс приложения, для которого не более применим конкретный ресурс c, например, процесс, запланированный пользовательской системой оркестровки. Значения меток должны однозначно идентифицировать задачу. ”

Источник моей информации был найден здесь
Этот документ объясняет, как отправлять журналы из вашего приложения различными способами. :

  • API Cloud Logging
  • Агент Cloud Logging
  • Generi c fluentd

Как вы уже упоминали, установив fluentd, давайте я предоставлю более специализированную документацию о Cloud Logging Agent Я также нашел некоторую python документацию по клиентской библиотеке , которая может вас заинтересовать.

Наконец, я нашел руководство по использованию nginx / apache , которое вам может использовать в качестве ссылки.

0 голосов
/ 22 января 2020

По какой-то причине, если я изменю каталог, на который указывает и файл .conf, и каталог, в котором находится logg, на / var / logs /, являясь окончательным путем /var/logs/app.logs, он работает правильно. Возможно, существует проблема конфигурации, из-за которой агент ведения журнала захватывает журналы только в указанных заранее определенных папках c или проблема с разрешениями, которая не позволяет ему работать, если журнал находится в каталоге имени пользователя.

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

https://cloud.google.com/logging/docs/agent/troubleshooting?hl=es-419 https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/list?hl=es-419 https://cloud.google.com/logging/docs/agent/configuration?hl=es-419 https://medium.com/google-cloud/how-to-log-your-application-on-google-compute-engine-6600d81e70e3 https://cloud.google.com/logging/docs/agent/installation

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

Эта документация, которую вы отправили https://docs.fluentd.org/quickstart, довольно интересная, возможно, я смогу найти там объяснение, спасибо за вашу помощь.

...