我想为使用Container-Optimized OS在Stackdriver Exports中生成的日志设置导出。
对于Linux VM实例,我知道logName是从/etc/google-fluentd/config.d/[APPLICATION_NAME].conf
之类的文件中获取的。例如:
以下是/etc/google-fluentd/config.d/syslog.conf
在Linux VM中的外观:
<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日志中的logName将为“ projects / [PROJECT-NAME] / logs / some-log-name” 。如果手动安装代理,则以下资源说明了日志记录代理的配置。
现在,在使用CONTAINER-OPTIMIZED OS的情况下,没有名为/etc/google-fluentd
的文件夹,并且我无法找到conf文件,在该文件中我更改了logName以反映在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"
}
在上面的日志中,我不知道
(PS更改日志名称对我很重要,因为在google cloud bucket中为导出日志而创建的接收器会创建一个目录,该目录的名称与logName标记相同(对于{{1} },名为
logName: "projects/[PROJECT-NAME]/logs/gcplogs-docker-driver
将被创建。)
答案 0 :(得分:1)
现在,在使用CONTAINER-OPTIMIZED操作系统的情况下,没有名为/ etc / google-fluentd的文件夹,并且我无法找到conf文件,在该文件中我更改了logName以反映在StackDriver Log Viewer中。
/etc/google-fluentd
文件夹用于存储Stackdriver Logging代理(documentation,code)的配置文件。
在容器优化的OS上,代理由stackdriver-logging.service进行容器化和管理,并且config file存储在/etc/stackdriver/logging.config.d
。
您将需要运行sudo systemctl start stackdriver-logging
来启动代理。
我不知道logName中gcplogs-docker-driver的来源。我正在寻找一种改变这种情况的方法。
这些日志实际上来自完全不同的来源。它们来自Docker日志记录驱动程序:Google Cloud Logging driver。查看文档,显然它们没有提供任何配置日志名称的方法。
再看一下他们的源代码,显然该日志名称在Docker的源代码中为hard-coded。因此,恐怕没有好的方法来为gcplogs Docker日志记录驱动程序配置日志名称。