Назад | Перейти на главную страницу

Stackdriver Extractor не работает

Я пытаюсь заставить стековый драйвер работать с GCE. Я выполнил стандартные инструкции по установке (выполнив 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

Я убедился, что служба включена. Когда я проверяю разрешения, он говорит, что мне не нужны специальные учетные данные, поскольку я использую 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

Любые идеи? Моя основная проблема в том, что я не могу создавать предупреждения о количестве процессов, но я думаю, что Stackdriver получает их именно отсюда.

Чтобы решить эту проблему, я исправил ключ API. Я случайно пропустил двойные кавычки, когда редактировал файл.

Это подводит меня к следующему пункту. Почему я редактировал файл? Они предоставляют удобную утилиту для добавления ключа API. Мы должны это использовать.

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

Он даже перезапустит службы для вас.

Что касается того, как я попал в это место для начала ... Я случайно скопировал / вставил частичный ключ API. Это было неочевидно, потому что в конце я немного пропустил. Мелочи имеют значение.

Что касается того, почему я не смог заставить это работать, изменив область действия на весь доступ к API, я не знаю. Я думал, что это сработает, так как я действительно не хочу возиться с большим количеством состояний на моем диске виртуальной машины, чем мне нужно. Но на данный момент я возьму рабочее решение.

И последний совет ... если вы здесь, возможно, вам также понадобится найти свой ключ API. Вы можете найти это здесь:

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

Если его нет, вы можете его создать.

Удачи!

К вашему сведению, использование ключей API является устаревшим / устаревшим. Вам следует включить Google Monitoring API и просто установить агент.