【问题标题】:How to parse audit log entries from Stackdriver on GCP如何在 GCP 上解析来自 Stackdriver 的审核日志条目
【发布时间】:2018-02-09 11:37:38
【问题描述】:

我正在尝试在 Python 中使用 Stackdriver Logging Client Libraries 检索 BigQuery 审核日志。

根据the tutorial,以下代码应该可以获取日志条目:

for entry in client.list_entries():
    do_something_with(entry)

但是,这个迭代器只返回ProtobufEntry,我找不到如何从这个对象获取实际的日志消息。

for entry in client.list_entries():
    print type(entry)

以上代码产生以下输出:

$ python log_test.py
<class 'google.cloud.logging.entries.ProtobufEntry'>
<class 'google.cloud.logging.entries.ProtobufEntry'>
<class 'google.cloud.logging.entries.ProtobufEntry'>
....

但是,我找不到任何方法来解析这些对象。

如何解析实际的日志消息?

【问题讨论】:

    标签: python google-bigquery google-cloud-python google-cloud-stackdriver google-cloud-logging


    【解决方案1】:

    ProtobufEntry 的字段列于here。如果有效载荷是None,请使用payload_pb,就像我在code 中找到的那样。

    以下 sn-p 对我有用:

    from google.cloud import logging
    
    client = logging.Client()
    for entry in client.list_entries():
            timestamp = entry.timestamp.isoformat()
            print('* {}: {}'.format
                  (timestamp, entry.payload_pb))
    

    【讨论】:

    • payload_pb 是 Protobuf 格式的二进制 blob。知道如何解析它吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2019-01-27
    • 2022-11-24
    • 1970-01-01
    • 2023-03-22
    • 2019-07-26
    相关资源
    最近更新 更多