Вывести список журналов ошибок из Stckdriver соответствующего шаблона - PullRequest
3 голосов
/ 27 мая 2019

Я оцениваю подходы для сценария, где мне нужно получить список журналов из Stackdriver. Может быть несколько критериев фильтра (например, полезная нагрузка содержит слово 'retry' из журналов типа 'Warning' ...)

С помощью gcp sdk я смог запросить драйвер стека, но не уверен, насколько эффективен этот подход. Пожалуйста, предложите другие подходы, где я могу использовать клиент эластичного поиска, чтобы запрашивать драйвер стека и перечислять журналы соответствия

1 Ответ

3 голосов
/ 03 июня 2019

Похоже, у вас есть несколько наборов журналов, которые вы хотите использовать отдельно, и каждый из этих наборов журналов может быть описан с помощью фильтра Stackdriver. Это хорошее начало, так как использование фильтров для Stackdriver - эффективный способ сортировки данных. И вы правы, что запускать один и тот же фильтр для Stackdriver снова и снова будет довольно неэффективно.

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

Вы можете прочитать о приемниках журналов здесь и агрегированных приемниках журналов здесь .

Общая идея состоит в том, чтобы Google автоматически фильтровал и экспортировал журналы для вас, используя несколько приемников журналов (по одному приемнику на фильтр). Пунктом назначения экспорта может быть Google Storage, BigQuery или Pub / Sub. Каждый приемник должен экспортироваться в другое место и будет делать это непрерывно, пока приемник существует. Кроме того, приемники журналов могут быть настроены для каждого проекта или на уровне организации (где он может наследовать все нижеуказанные проекты).

Например, допустим, вы хотите настроить три приемника журналов. Каждый приемник использует свой фильтр и свое место экспорта (но все в одно и то же ведро):

  • Log Sink 1 (вычислить журналы) -> gs: // my-example-log-dump-bucket / compute-logs /
  • Log Sink 2 (сетевые журналы) -> gs: // my-example-log-dump-bucket / network-logs /
  • Log Sink 3 (журналы linux) -> gs: // my-example-log-dump-bucket / linux-logs /

После настройки SDK вашего кода может просто получить доступ к каждому местоположению в зависимости от того, какие журналы ему нужны в данный момент. Это устраняет необходимость в вашем коде для выполнения фильтрации, поскольку Google уже обработал его для вас в фоновом режиме.

Стоит отметить: экспорт журналов в BigQuery и Pub / Sub выполняется мгновенно, но экспорт в Google Storage происходит в начале каждого часа. Поэтому, если вам нужен быстрый оборот журналов, избегайте Google Storage и используйте BigQuery или Pub / Sub.

Надеюсь, это поможет!

...