标签: google-cloud-stackdriver

使用 gcloud 报告 Stackdriver 错误

我正在重新使用 gcloud cli 将事件发送到 StackDriver 错误报告。
(非常有限的)文档在这里:https : //cloud.google.com/sdk/gcloud/reference/beta/error-reporting/events/report

无论我作为消息发送什么,我似乎都会收到此错误:

错误:(gcloud.beta.error-reporting.events.report) INVALID_ARGUMENT:ReportedErrorEvent.context 必须包含一个位置,除非message包含异常或堆栈跟踪。

我尝试将消息格式化为错误报告的 JSON 表示:https : //cloud.google.com/error-reporting/docs/formatting-error-messages 但消息似乎相同。这是一个示例命令和 JSON:

gcloud beta error-reporting events report --service foo --message-file err.json

{
    "serviceContext": {
        "service": "foo"
    },
    "message": "Whoops!",
    "context": {
        "reportLocation": {
            "filePath": "/usr/local/bin/test",
            "lineNumber": 123,
            "functionName": "main"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform gcloud stackdriver google-cloud-stackdriver google-cloud-error-reporting

5
推荐指数
1
解决办法
1195
查看次数

如何将 JSON 从 GCE 容器 VM 记录到 Stackdriver?

我目前正在使用 GCE 容器虚拟机(不是 GKE)来运行 Docker 容器,这些容器将其 JSON 格式的日志写入控制台。日志信息会自动收集并存储在 Stackdriver 中。

问题:Stackdriver 将data-field显示jsonPayload为文本 - 而不是 JSON。看起来有效负载中字段的引号被转义,因此不被识别为 JSON 结构。

我同时使用了 logback-classic(就像这里解释的那样)和 slf4j/log4j(使用 JSONPattern)来生成 JSON 输出(看起来不错),但是输出没有正确解析。

我假设,我必须在某处配置输出是 JSON 结构的,而不是纯文本。到目前为止,我还没有找到在使用容器 VM 时执行此操作的选项。

logging json google-compute-engine google-cloud-stackdriver

5
推荐指数
1
解决办法
254
查看次数

我可以使用 Google Cloud Platform 在一处监控多个项目吗?

我在 GCP 中有多个项目,我试图在一个地方读取我所有项目的日志。

有什么建议?

google-cloud-platform stackdriver google-cloud-stackdriver

5
推荐指数
1
解决办法
3830
查看次数

如何从数据流作业发送和过滤结构化日志

目标是存储来自不同应用程序/作业的审计日志,并能够通过一些 id 聚合它们。为此,我们选择了 BigQuery,因此我们需要从日志中获取结构化信息到 BigQuery。

我们成功地使用了部署在 kubernetes 引擎中的应用程序,该应用程序将输出日志作为 json 字符串记录到 stdout 并对其进行解析,其结构可以在 stackdriver 中看到为jsonPayload. 我们从本教程中获取了它。

但是,当我在数据流作业中使用相同的日志附加程序时,它不会被视为结构化消息,而是被视为jsonPayload.message字段中的字符串。

我需要两件事的结构:

实现这一目标的最简单方法是什么?

logback google-cloud-dataflow apache-beam google-cloud-stackdriver

5
推荐指数
1
解决办法
327
查看次数

将 Container-Optimized OS 服务日志输出发送到 Stackdriver Logging

如何将 Cloud-Config 服务的输出获取到 Stackdriver Logging?

我正在使用 node.js API 创建我的 VM 实例,并按照此处找到的示例创建我的服务:https : //cloud.google.com/container-optimized-os/docs/how-to/run-container -instance#starting_a_docker_container_via_cloud-config

一切都运行成功,但我可以看到日志输出的唯一方法是通过 SSH 连接到实例并运行sudo journalctl -ef,但我真的很想将日志流式传输到 Stackdriver Logging。但是 COS 似乎不允许我安装日志代理。

这是我的服务文件,它/home/ci/run.sh只是运行一些 docker 容器,这些容器运行一些测试并输出到标准输出:

- path: /etc/systemd/system/ciservice.service
  permissions: 0644
  owner: root
  content: |
    [Unit]
    Description=Run tests
    Wants=gcr-online.target
    After=gcr-online.target

    [Service]
    User=ci
    Group=ci
    Environment="HOME=/home/ci"
    ExecStartPre=/usr/bin/docker-credential-gcr configure-docker
    ExecStart=/bin/bash /home/ci/run.sh
Run Code Online (Sandbox Code Playgroud)

我正在使用容器优化操作系统,因为它带有 Docker、开箱即用的 GCR 访问、安全性,并且可以快速启动。但我想我可能不得不切换回基于 Ubuntu/Debian 的映像,因为这将允许我安装日志代理,但代价是在自定义映像中进行更多的基本配置。

对此使用 COS 的任何帮助将不胜感激,因此在此先感谢您 :)

google-compute-engine stackdriver google-container-os google-cloud-stackdriver

4
推荐指数
1
解决办法
1486
查看次数

如何在Google Stackdriver日志中使过滤器“不包含”

在Google Stackdriver高级过滤器中,我可以插入类似以下内容的内容:

resource.type="container"
resource.labels.cluster_name="mycluster"
textPayload!="Metric stackdriver_sink_successfully_sent_entry_count was not found in the cache."
severity="INFO"
textPayload:(helloworld)
Run Code Online (Sandbox Code Playgroud)

最后一条规则意味着字段textPayload应该包含字符串helloworld。但是我找不到添加NOT运算符的方法。

我会用类似的东西:

textPayload:!(helloworld)
Run Code Online (Sandbox Code Playgroud)

但不起作用

logging string-comparison google-cloud-stackdriver

4
推荐指数
2
解决办法
3998
查看次数

在 GKE 上启用 Stackdriver 结构化日志记录

我在 GKE 上的 k8s 集群fluentd默认有一个pod 设置(当前命名为fluentd-gcp-v3.1.0-....),但所有日志都以非结构化的形式出现在单个textPayload字段中。让我的 nginx(和所有其他)日志以某种jsonPayload格式出现会更好。

结构化记录的文档有很多信息,如果你将要自己手动安装代理,但似乎没有要上哪里GKE得到启用日志结构化信息的任何fluend默认安装在幕后。

脱壳到其中的一个fluentd容器我看到下面的文件,这些文件不是默认CONFIGS(nginx/ syslog/ apache)上面列出的结构化测井文档。

/etc/google-fluentd/config.d

containers.input.conf
monitoring.conf
output.conf
system.input.conf
Run Code Online (Sandbox Code Playgroud)

所以基本上,我在 GKE/Stackdriver 上有非结构化的 nginx 日志。如何将它们转换为结构化?

fluentd google-kubernetes-engine google-cloud-stackdriver

4
推荐指数
1
解决办法
1301
查看次数

为什么 Cloud Composer 中会自动生成名为“airflow_monitoring”的 DAG?

在 GCP Composer 上创建 Airflow 环境时,会airflow_monitoring自动创建一个名为 DAG 的 DAG ,即使删除它也会返回。

为什么?如何处理?我应该将此文件复制到我的 DAG 文件夹中并辞职以使其成为我代码的一部分吗?我注意到每次上传代码时它都会停止执行此 DAG,因为在它神奇地重新出现之前无法在 DAG 文件夹中找到它。

我已经尝试在 DAG 文件夹中删除它,删除日志,从 UI 中删除它,所有这些同时等等。

google-cloud-platform airflow google-cloud-stackdriver google-cloud-composer

4
推荐指数
1
解决办法
1881
查看次数

如何使用 PYTHON 获取详细的 Big Query 错误

我希望将此信息视为 python 消息:

在此处输入图片说明

但目前,我只能看到第一/第二

这是我目前使用的

from google.api_core.exceptions import BadRequest

if __name__ == '__main__':
      try:
          upload('XXX','XXX')
      except BadRequest as e: 
          print('ERROR: {}'.format(str(e)))
Run Code Online (Sandbox Code Playgroud)

上传:

def upload(FILE_NAME, TABLE_ID):

    client = bigquery.Client()

    dataset_ref = client.dataset(config.DATASET_ID )
    table_ref = dataset_ref.table(TABLE_ID)
    job_config = bigquery.LoadJobConfig()
    job_config.source_format = bigquery.SourceFormat.NEWLINE_DELIMITED_JSON
    job_config.autodetect = False

    with open(FILE_NAME, 'rb') as source_file:
        job = client.load_table_from_file(
            source_file,
            table_ref,
            location='EU',  # Must match the destination dataset location.
            job_config=job_config)  # API request

    job.result()  # Waits for table load to complete.
Run Code Online (Sandbox Code Playgroud)

python error-handling google-bigquery google-cloud-stackdriver python-bigquery

4
推荐指数
1
解决办法
4696
查看次数

在没有表行更新/上传发生时设置大查询警报

当没有数据上传到 Big Query 表超过一天时,为每封电子邮件设置 Big Query 警报的最佳方法是什么?我想到的是:

  • 堆栈驱动程序
  • 酒馆子
  • 云功能

但我不确定最快和最好的方法是什么。我尝试通过 Stackdirver -> Create New Alert Ploicy 进行设置

  • 资源类型:BigQuery 数据集
  • 指标:上传的行
  • 如果-> 违反任何时间序列 -> 23 小时不存在,则条件触发

但是没有发送电子邮件。虽然有些表几个月没有数据......

google-bigquery google-cloud-platform stackdriver google-cloud-stackdriver

4
推荐指数
1
解决办法
1454
查看次数