我有一个最近在 GCE 上运行的 kubernetes 集群。我正在尝试让我的应用程序登录到 Cloud Logging / Stackdriver。
我可以在那里看到所有 kubernetes 集群日志,但没有容器输出出现。
因此,当我按照本指南操作时:http://kubernetes.io/docs/getting-started-guides/logging/,我可以看到 Pod 的输出
kubectl logs counter
2163: Wed Aug 31 15:02:52 UTC 2016
Run Code Online (Sandbox Code Playgroud)
这永远不会进入日志记录界面
fluidd-cloud-logging pod 不提供日志输出
kubectl logs --namespace=kube-system fluentd-cloud-logging-staging-minion-group-20hk
Run Code Online (Sandbox Code Playgroud)
/var/log/google-fluidd/google-fluidd.log 文件看起来很高兴
...
2016-08-31 14:07:16 +0000 [info]: following tail of /var/log/containers/node-problem-detector-v0.1-hgtcr_kube-system_POD-07e5b134c9f8ff48f73f1df41473a84a07738ac750840f09938d604694c4bd6e.log
2016-08-31 14:07:16 +0000 [info]: following tail of /var/log/containers/rails-2607986313-s7r5e_default_POD-9f1dd02f23de552a40297f761d09c03b50e5a2cd9789ef498139d24602d9847e.log
2016-08-31 14:07:16 +0000 [info]: following tail of /var/log/salt/minion
2016-08-31 14:07:16 +0000 [info]: following tail of /var/log/startupscript.log
2016-08-31 14:07:16 +0000 [info]: following tail of /var/log/docker.log …Run Code Online (Sandbox Code Playgroud) 我没有关于谷歌云平台 VM 实例监控的堆栈驱动程序监控配置的实践经验。我们对项目的基本监控工作正常,但是在尝试在 Ubuntu 14.04 操作系统中安装 stackdriver 代理时,它给了我们错误,并且带有代理的堆栈驱动程序对我们不起作用。以下是供您参考的错误。
Jan 3 10:43:42 ubuntu-uat01 collectd[2283]: write_gcm: 不成功的 HTTP 请求 403: {#012 "error": {#012 "code": 403,#012
"message": "User is notauthorized访问项目监控记录。",#012 "status": "PERMISSION_DENIED"#012 }#012} Jan 3 10:43:42 ubuntu-uat01 collectd[2283]: write_gcm: Error -2 from wg_curl_get_or_post Jan 3 10:43 :42 ubuntu-uat01 collectd[2283]: write_gcm: wg_transmit_unique_segment 失败。
有人可以帮助我设置安装在服务器上的代理的堆栈驱动程序监控,或者提供一些可用的文档链接。
找不到一种干净的方法来设置有关云函数中错误的 Stackdriver 警报通知
我正在使用云功能将数据处理到云数据存储。我希望收到两种类型的错误警报:
我做了以下,
这是根据问题的答案完成的, how to create an alert per error in stackdriver
对于条件的第一个触发器,我收到一封电子邮件。但是,在随后的触发器上,可以说在第二天,我没有。事件也处于“打开”状态。
Resource type: cloud function
Metric:from point 2 above
Aggregation: Aligner: count, Reducer: None, Alignment period: 1m
Configuration: Condition triggers if: Any time series violates, Condition:
is above, Threshold: 0.001, For: 1 min
Run Code Online (Sandbox Code Playgroud)
所以我有3个问题,
这是满足我创建警报要求的正确方法吗?
我如何仍能收到后续错误的警报通知?
如何自动/手动将事件设置为“已解决”?
我正在尝试从 python 模块获取 GCP stackdriver 日志。我可以过滤 request_id 和 user 的日志
但是当我尝试获取两个时间段之间的日志时,它给出了我的错误。
import json
import sys
from google.cloud import logging
from google.cloud.logging import DESCENDING
from google.cloud import bigquery
#stackdriver client object
logging_client = logging.Client()
FILTER="logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>="+sys.argv[3]
results_iterator = logging_client.list_entries(filter_=FILTER,projects=PROJECT_IDS,order_by=DESCENDING,page_size=1000)
Run Code Online (Sandbox Code Playgroud)
我使用以下模式来提供时间。
timestamp:sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
timestamp=sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
timestamp>sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
timestamp>=sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
但注意到解决了我的问题。
我将 sys.argv 3的输入时间设置为“2019-09-28T03:28:04.189Z”
但在 GCP 堆栈驱动程序记录器 UI 中,它给出了两者的结果
timestamp:"2019-09-28T03:28:04.189Z"
Run Code Online (Sandbox Code Playgroud)
和
timestamp>="2019-09-28T03:28:04.189Z" AND timestamp<="2019-09-28T03:30:39.189Z"
Run Code Online (Sandbox Code Playgroud)
python google-cloud-platform stackdriver google-cloud-stackdriver
我使用的是 GCP 上不受支持的语言。
Stackdriver 日志记录很棒,它收集了我的标准输出日志,这是最出色的。
但我似乎无法设定严重性。
所有文档页面似乎都围绕发送整个日志。
我想知道将消息发送到标准输出时需要是什么样子,以便它了解严重性。一个例子将是惊人的。
我想使用 Stackdriver 监控来监视我的 GKE 节点的 CPU/mem % 使用率。
但是,在浏览 Stackdriver Monitoring UI 时,似乎没有任何此类选项可用(就百分比而言)。
另一方面,对于(似乎是)绝对内存使用,似乎有 2 个极其相似的指标(它们的描述是相同的)。(附截图)。
有没有人知道如何提供 GKE 节点上使用的内存和 CPU 的百分比?(不是容器)
monitoring google-kubernetes-engine stackdriver google-cloud-monitoring google-cloud-stackdriver
所以我设置了一个通知通道:
gcloud alpha monitoring channels create \
--description='test notification' \
--display-name='test_channel' \
--type=email \
--channel-labels=email_address=example@gmail.com
Run Code Online (Sandbox Code Playgroud)
但我似乎无法获得与命令行一起使用的警报策略(尝试避免使用从文件加载,因为我需要使用模板)。看起来这应该有效:
gcloud alpha monitoring policies create \
--notification-channels=test_channel \
--aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='CPU Utilization >0.80 for 10m'\
--condition-filter='metric.type="appengine.googleapis.com/flex/instance/cpu/utilization" resource.type="gae_instance"' \
--duration='1min' \
--if='> 0.80' \
--display-name='test alert'
Run Code Online (Sandbox Code Playgroud)
但它返回:
[--aggregation] 的值无效:仅当还指定了 --condition-filter 时才应指定。
但是,正如您所看到的,上面有一个--condition-filter标志。我尝试重新排序它,使其--condition-filter出现在 之前--aggregation,但这会导致持续时间错误,尽管它已经与文档匹配,并且像=60s、那样的轻微编辑=1min或在 中 的时间附近添加引号--aggregation似乎没有帮助:
gcloud alpha monitoring policies create \
--notification-channels=test_channel \
--condition-filter='metric.type=appengine.googleapis.com/flex/instance/cpu/utilization resource.type=gae_instance' \
--aggregation='{"alignmentPeriod": "20s","perSeriesAligner": "ALIGN_MEAN"}' …Run Code Online (Sandbox Code Playgroud) 我正在使用 Google Cloud Platform 的 Google Cloud Monitoring。
我为我监控的对象创建了一些警报策略。但是,当有警报触发时,我希望将一些未包含的信息包含在电子邮件中。所以我想使用一个云函数,如果在这种情况下可以做到的话,它将触发我创建的策略之一。
如果可能,请提供有关此问题的建议。
python-3.x google-cloud-platform google-cloud-functions stackdriver google-cloud-monitoring
有没有办法将应用引擎中的日志加载到Google Cloud Platform上的BigQuery?
我正在尝试使用联合查询来加载云存储中的Stackdriver日志文件.但是BigQuery无法加载Stackdriver编写的一些字段名称.
日志文件是换行符分隔的JSON,其记录看起来像
{
"insertId":"j594356785jpk",
"labels":{
"appengine.googleapis.com/instance_name":"aef-my-instance-20180204t220251-x59f",
"compute.googleapis.com/resource_id":"99999999999999999",
"compute.googleapis.com/resource_name":"c3453465db",
"compute.googleapis.com/zone":"us-central1-f"
},
"logName":"projects/my-project/logs/appengine.googleapis.com%2Fstdout",
"receiveTimestamp":"2018-02-08T02:59:59.972739505Z",
"resource":{
"labels":{
"module_id":"my-instance",
"project_id":"my-project",
"version_id":"20180204t220251"
},
"type":"gae_app"
},
"textPayload":"{\"json\":\"blob\"}\n",
"timestamp":"2018-02-08T02:59:54Z"
}
Run Code Online (Sandbox Code Playgroud)
但BigQuery在此输入上返回错误: query: Invalid field name "compute.googleapis.com/zone". Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 128 characters long.
有没有办法将这种日志摄入BigQuery?
我特别感兴趣的是只提取textPayload字段.
google-app-engine etl google-bigquery google-cloud-platform stackdriver
我正在尝试分析Google CLoud Stackdriver's Profiling,现在任何人都可以请告诉我如何使用此优化我的代码.
另外,我看不到任何我的函数名称和所有,我不知道这是什么_tickCallback以及它执行的代码的哪一部分?
任何人都请帮助我.
google-app-engine node.js google-cloud-platform stackdriver google-cloud-profiler
stackdriver ×10
alerts ×1
etl ×1
gcloud ×1
kubernetes ×1
monitoring ×1
node.js ×1
policy ×1
python ×1
python-3.x ×1
stdout ×1