我正在尝试使用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并安装代理。