Как изменить имя журнала и настроить агент ведения журнала stackdriver в ОС, оптимизированной для контейнеров?

Я хочу настроить экспорт журналов, созданных в ОС, оптимизированной для контейнеров, используя Stackdriver Exports.

В случае экземпляра виртуальной машины Linux я знаю, что logName берется из файла, например /etc/google-fluentd/config.d/[APPLICATION_NAME].conf. Например:
Ниже показано, как /etc/google-fluentd/config.d/syslog.conf выглядит на виртуальной машине Linux:

<source>
  @type tail

  # Parse the timestamp, but still collect the entire line as 'message'
  format syslog

  path /var/log/syslog
  pos_file /var/lib/google-fluentd/pos/syslog.pos
  read_from_head true
  tag some-log-name
</source>

В соответствии с приведенным выше файлом conf имя журнала в журналах StackDriver будет иметь вид "projects / [PROJECT-NAME] / logs / some-log-name". Вот ресурс, который объясняет конфигурацию агента ведения журнала в случае, если агент устанавливается вручную.

Теперь, в случае ОС, ОПТИМИЗИРОВАННОЙ КОНТЕЙНЕРОМ, нет папки с именем /etc/google-fluentd, и я не могу найти файл conf, в котором я изменяю имя журнала, чтобы отразить его в StackDriver Log Viewer. На данный момент вот пример журнала, созданного этой виртуальной машиной:

{
   insertId:  "some-random-id"  
   jsonPayload: {…}  
   logName:  "projects/[PROJECT-NAME]/logs/gcplogs-docker-driver"  
   receiveTimestamp:  "2019-03-28T13:10:31.609437487Z"
   resource: {…}  
   timestamp:  "2019-03-28T13:10:30.588317266Z"
}

В приведенном выше журнале я не знаю, откуда берется gcplogs-docker-driver в logName. Я ищу способ изменить это.

(PS Изменение имени журнала важно для меня, потому что приемники, созданные для экспорта журналов в Google Cloud Bucket создает каталог, имя которого идентично тегу logName (для logName: "projects/[PROJECT-NAME]/logs/gcplogs-docker-driver будет создан каталог с именем gcplogs-docker-driver).


person amit yadav    schedule 28.03.2019    source источник


Ответы (1)


Теперь, в случае ОС, ОПТИМИЗИРОВАННОЙ КОНТЕЙНЕРОМ, нет папки с именем / etc / google-fluentd, и я не могу найти файл conf, в котором я изменяю имя журнала, чтобы отобразить его в средстве просмотра журналов StackDriver.

Папка /etc/google-fluentd используется для хранения файла конфигурации для агента Stackdriver Logging (документация , код).

В ОС, оптимизированной для контейнеров, агент помещен в контейнер и управляется stackdriver-logging.service и файл конфигурации хранится в /etc/stackdriver/logging.config.d.

Вам нужно будет запустить sudo systemctl start stackdriver-logging, чтобы запустить агент.

Я не знаю, откуда берется gcplogs-docker-driver в logName. Я ищу способ изменить это.

Эти журналы на самом деле поступают из совершенно другого источника. Они поступают из драйвера ведения журнала Docker: драйвера Google Cloud Logging. Глядя на документацию, очевидно, что они не предоставляют никакого способа настроить имя журнала.

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

person Xuewei Zhang    schedule 06.11.2019