Stackdriver提取器失败

我正在尝试使用GCE与stackdriver。 我通过标准的指示来安装(执行stack-install.sh --write-gcm ),但是它似乎并没有工作。 当我添加监视警报来监视进程时,我得到:

 Process monitoring not available for this instance 

/var/log/messages我看到:

 Mar 28 19:47:59 myhost stackdriver-agent: which: no java in (/root/.gvm/bin:/usr/local/sbin:/sbin :/usr/sbin:/bin:/usr/bin:/go/bin:/bin) Mar 28 19:47:59 myhost stackdriver-agent: Starting stackdriver-collectd: option = PIDFile; value = /var/run/stackdriver-agent.pid; Mar 28 19:47:59 myhost stackdriver-agent: option = Interval; value = 60.000000; Mar 28 19:47:59 myhost stackdriver-agent: Created new plugin context. Mar 28 19:47:59 myhost stackdriver-agent: [ OK ] Mar 28 19:47:59 myhost collectd[1934]: Initialization complete, entering read-loop. Mar 28 19:47:59 myhost systemd: Started LSB: start and stop Stackdriver Agent. Mar 28 19:47:59 myhost collectd[1934]: match_throttle_metadata_keys: 1 history entries, 1 distinc t keys, 71 bytes server memory. Mar 28 19:47:59 myhost collectd[1934]: tcpconns plugin: Reading from netlink succeeded. Will use the netlink method from now on. Mar 28 19:47:59 myhost collectd[1934]: write_gcm: Asking metadata server for auth token 

我已经validation该服务已启用。 当我检查权限时,它说我不需要特殊的证书,因为我正在使用GCE。 但是,当我重新启动stackdriver-extractor服务时,我得到:

 Please set STACKDRIVER_API_KEY in /etc/sysconfig/stackdriver 

所以,如果我设定了…我得到:

 stackdriver-extractor[3020]: Starting stackdriver-extractor: Unable to determine extractor endpoint! stackdriver-extractor[3020]: Unable to generate config file 

我觉得在项目层面有些问题,在这个服务没有自动获得关键信息的情况下,

我深入到脚本中,发现它在哪里

 curl -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/project/attributes/stackdriver-agent-key 

但是这是404。

另外,当我检查范围:

 # curl --silent -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes https://www.googleapis.com/auth/cloud.useraccounts.readonly https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/monitoring.write 

有任何想法吗? 我最终的问题是,我不能在stream程计数上创build警报,但我认为这是Stackdriver从中获取的。

    为了解决这个问题,我修复了API密钥。 当我编辑文件时,我不小心把双引号省略了。

    这使我想到下一点。 我为什么要编辑文件? 他们为添加API密钥提供了一个非常简单的实用程序。 我们应该使用它。

     /opt/stackdriver/stack-config --api-key DEADBEEFDEADBEEFDEADBEEFDEADBEEF... 

    它甚至会为您重新启动服务。

    至于我怎么到这个地方开始…我不小心复制/粘贴了一个部分的API密钥。 这并不明显,因为我最后错过了一点点。 一点点关系。

    至于为什么我不能通过改变范围到所有的API访问,我不知道。 我认为这是可行的,因为我真的不想在我的虚拟机磁盘中混淆更多的状态, 但是我现在要做一个有效的解决scheme。

    最后一点build议…如果你在这里,你可能还需要find你的API密钥。 你可以在这里find它:

    https://app.google.stackdriver.com/settings/accounts/agent/

    如果不在那里,你可以创build它。

    祝你好运!

    仅供参考使用API​​密钥是一种折旧/遗产。 您应该启用Google监控API并安装代理。