谷歌Stackdriver失去与Dataproc的连接

时间:2016-08-29 13:43:36

标签: google-compute-engine google-cloud-dataproc stackdriver

每当我使用Stackdriver监控和监控代理设置Google Dataproc集群时,我注意到只要Dataproc找到工作,Stackdriver就会失去连接。在stackdriver UI上,它具有一个延迟值,他们说在大多数情况下不应该超过2分钟。这个值对我来说只是我提交作业后的时间(通常是几小时),并且没有可用的指标在计算引擎网页中看不到。

有没有办法让stackdriver监控与dataproc一起使用?如果可能的话,我希望能够监控我的工作的RAM使用情况。

Stackdriver监视由我的组织运行和设置,但它们似乎可以访问所有功能。我们不使用HTTP代理。使用Google's documentation中的命令设置监视代理程序。我有一个启动脚本(--initialization-actions标志),它对主服务器和工作服运行,如下所示:

#!/bin/bash
cd /tmp
curl -O "https://repo.stackdriver.com/stack-install.sh"
bash stack-install.sh --write-gcm
# ... other initialization stuffs

编辑:“其他初始化内容”只是一些gsutil复制命令,可以将一些资源文件放到本地计算机上,如果这样做有所不同。

我尝试将代理的安装移到其他命令之后,我只使用/ tmp,因为Google建议在复制文件时使用绝对路径(忘记了文档的用途,但之前它帮助了我。)< / p>

这是我在stackdriver中看到的请求的屏幕截图。请注意除CPU使用率之外的所有度量标准如何在垂直行停止。那是今天工作被提交到火花的时候:

Stackdriver screenshot

grep stackdriver-agent /var/logs/syslog的结果:

Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Starting Stackdriver metrics collection agent: stackdriver-agentoption = Hostname; value = 3431688934917455875;
Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Interval; value = 60.000000;
Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Created new plugin context.
Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = PIDFile; value = /var/run/stackdriver-agent.pid;
Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Hostname; value = 3431688934917455875;
Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Interval; value = 60.000000;
Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Created new plugin context.
Sep  2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: .
Sep  2 13:31:56 <cluster-name>-m stackdriver-agent[3823]: Stopping Stackdriver metrics collection agent: stackdriver-agent.
Sep  2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Starting Stackdriver metrics collection agent: stackdriver-agentoption = Interval; value = 60.000000;
Sep  2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Created new plugin context.
Sep  2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: option = PIDFile; value = /var/run/stackdriver-agent.pid;
Sep  2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: option = Interval; value = 60.000000;
Sep  2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Created new plugin context.
Sep  2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: .

编辑:完整集群创建命令是:

gcloud dataproc clusters create <cluster-name> --master-machine-type n1-highmem-2 --worker-machine-type n1-highmem-2 --initialization-actions <path-to-script> --master-boot-disk-size 50GB --worker-boot-disk-size 50GB --num-workers 16 --network internal --zone us-east1-c --scopes https://www.googleapis.com/auth/cloud-platform --project <project-name> --tags dataproc

dataproc标记在我的组织中的所有端口上打开防火墙。发现internal网络的效果优于default

sudo systemctl | grep stackdriver-agent的结果:

stackdriver-agent.service      active running   
LSB: start and stop Stackdriver Agent

sudo ps wwaux | grep stackdriver-agent的结果:

root      3851  0.0  0.0 1004704 9096 ?        Ssl  12:50   0:00 /opt/stackdriver/collectd/sbin/stackdriver-collectd -C 
/opt/stackdriver/collectd/etc/collectd.conf -P /var/run/stackdriver-agent.pid
7053  0.0  0.0  12732  2068 pts/0    S+   13:14   0:00 grep stackdriver-agent

1 个答案:

答案 0 :(得分:0)

我重复了你的一些步骤,虽然我不能说为什么在你提交工作之前看起来监控“有效”,因为这是我在尝试申请时遇到的第一件事。在没有调试Dataproc内部的指令的情况下,您应该验证是否为Dataproc集群提供了正确的作用域,以使stackdriver-agent能够将其指标编写到API中。也就是说,以下似乎对我有用,保持init动作相同:

gcloud dataproc clusters create dhuo-stackdriver \
    --initialization-actions gs://<my-bucket>/install_stackdriver.sh \
    --scopes https://www.googleapis.com/auth/monitoring.write

或者,您可以使用Stackdriver documentation中列出的其他范围,例如更广泛的cloud-platform范围。请注意,这可能会覆盖其他一些默认范围mixins,如果没有使用用户指定的范围,通常会添加这些混合:

https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/devstorage.full_control

我的本​​地测试仅将您的代码段作为初始操作:

#!/bin/bash
cd /tmp
curl -O "https://repo.stackdriver.com/stack-install.sh"
bash stack-install.sh --write-gcm

加上https://www.googleapis.com/auth/monitoring.write在我的测试项目中工作,包括通过提交作业:

Stackdriver page for Dataproc cluster

相关问题