Использование мониторинга и ведения журнала Stackdriver для лучшего контроля состояния вашего приложения.

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

В этой лаборатории кода вы будете

  • Ознакомьтесь с домашней страницей Stackdriver.
  • Понимание информационных панелей и диаграмм.
  • Создайте проверку работоспособности.
  • Создайте простую политику предупреждений.
  • Работа с тревожными инцидентами.
  • Перейдите к средству просмотра журналов.

Каков ваш опыт работы со Stackdriver?

Мониторинг - что это? Я никогда раньше не использовал Stackdriver, но у меня есть опыт мониторинга приложений. Я пинал шины Stackdriver, но не углублялся.

Самостоятельная настройка среды

Если у вас еще нет учетной записи Google (Gmail или Google Apps), вы должны создать ее.

Войдите в консоль Google Cloud Platform ( console.developers.google.com ) и создайте новый проект:

Запомните идентификатор проекта, уникальное имя для всех проектов Google Cloud. Позже в этой кодовой лаборатории он будет упоминаться как PROJECT_ID .

Очень важно ! Посетите страницу Compute Engine, чтобы активировать API Compute Engine:

А затем: Compute → Compute Engine → Экземпляры ВМ.

В первый раз, когда вы сделаете это, вы увидите экран с сообщением «Compute Engine готовится. Это может занять минуту или больше». Вы можете продолжить вход в Google Cloud Shell ниже, но вы не сможете создавать виртуальные машины, пока эта операция не будет завершена.

Вы будете выполнять большую часть работы из Google Cloud Shell , среды командной строки, работающей в облаке . Эта виртуальная машина на основе Debian загружена всеми необходимыми инструментами разработки и предлагает постоянный домашний каталог размером 5 ГБ. Откройте Google Cloud Shell, щелкнув значок в правом верхнем углу экрана:

Наконец, используя Cloud Shell, установите зону по умолчанию и конфигурацию проекта:

$ gcloud config set compute/zone us-central1-b
$ gcloud config set compute/region us-central

Вы также можете выбирать разные зоны. Узнайте больше о зонах в документации по регионам и зонам .

В этом разделе вы создадите экземпляры Compute Engine под управлением nginx+ с помощью Cloud Launcher. Нам понадобятся эти экземпляры для демонстрации мониторинга и оповещения. Вы можете создать экземпляр Compute Engine из графической консоли или из командной строки. Эта лабораторная работа проведет вас через командные строки.

Теперь давайте начнем.

Используйте gcloud, чтобы установить идентификатор вашего проекта:

$ gcloud config set project PROJECT_ID



Затем обязательно скопируйте и вставьте это как есть:

$ for i in {1..3}; do \
gcloud compute instances create "nginx-plus-$i" \
--machine-type "n1-standard-1" \
--metadata  "google-cloud-marketplace-solution-key=nginx-public:nginx-plus" \
--maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/cloud-platform" \
--tags "http-server","google-cloud-marketplace" \
--image "https://www.googleapis.com/compute/v1/projects/nginx-public/global/images/nginx-plus-ubuntu1404-v20150916-final" \
--boot-disk-size "10" --boot-disk-type "pd-standard" \
--boot-disk-device-name "nginx-plus-$i"; done

Вы увидите предупреждающие сообщения о размере диска, а затем следующий вывод при создании каждой виртуальной машины:

NAME         ZONE          MACHINE_TYPE  PREEMPTIBLE INTERNAL_IP EXTERNAL_IP     STATUS
nginx-plus-1 us-central1-b n1-standard-2                X.X.X.X  X.X.X.X      RUNNING
...

Запишите EXTERNAL_IP — это важно позже.

Выполнение этих операций может занять несколько минут.

По умолчанию Google Cloud Platform разрешает доступ только к нескольким портам. Так как мы скоро получим доступ к Nginx, давайте включим порт 80 в конфигурации брандмауэра:

$ gcloud compute firewall-rules create allow-80 --allow tcp:80 --target-tags "http-server"
Created [...].
NAME     NETWORK SRC_RANGES RULES  SRC_TAGS TARGET_TAGS
allow-80 default 0.0.0.0/0  tcp:80 http-server

Это создаст правило брандмауэра с именем allow-80 со следующими значениями по умолчанию:

  • Список блоков IP-адресов, которым разрешено устанавливать входящие подключения ( --source-ranges ), установлен на 0.0.0.0/0 (везде).
  • В списке тегов экземпляров, указывающих набор экземпляров в сети, которые могут принимать входящие подключения, установлено значение none, что означает, что правило брандмауэра применимо ко всем экземплярам.

Запустите gcloud compute firewall-rules create --help , чтобы увидеть все значения по умолчанию.

После создания первого экземпляра вы можете проверить, запущен ли и доступен ли nginx, перейдя по адресу http://EXTERNAL_IP/, где EXTERNAL_IP — общедоступный IP-адрес nginx-plus-1 , и вы сможете увидеть страницу Nginx:

Вы также можете просмотреть запущенные экземпляры, набрав:

$ gcloud compute instances list

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

Следующие шаги проведут вас через включение Stackdriver и работу с консолью.

По умолчанию Google Stackdriver в настоящее время находится в бета-версии и не включен для новых проектов. Чтобы включить его, перейдите на левую панель навигации и нажмите «Мониторинг» (возможно, вам придется прокрутить вниз, чтобы найти его).

На следующем экране нажмите «Включить мониторинг» и подождите минуту, чтобы он включился.

Как только он будет включен, содержимое изменится, и вы увидите текст ниже. Нажмите «Перейти к мониторингу», чтобы начать изучение! Вам нужно будет войти в систему с помощью Google, а затем перейти к консоли Stackdriver для вашего проекта — здесь вы будете выполнять и анализировать задачи, связанные с мониторингом.

Давайте ознакомимся с главной страницей.

  1. Верхнее меню: используйте для выбора различных представлений/контекстов и доступа ко всем доступным действиям Stackdriver.
  2. Панели мониторинга: это панели мониторинга метрик и событий. Изначально это предопределенные системные панели мониторинга на основе ресурсов вашего проекта, но вы также можете создавать свои собственные панели мониторинга.
  3. Проверки времени безотказной работы: они периодически проверяют доступность ресурсов, с которыми сталкивается пользователь, и включают оповещение, когда они становятся недоступными.
  4. Список групп: группы используются для группировки ресурсов с общими свойствами и характеристиками, чтобы их можно было обрабатывать как группу или кластер для таких задач, как мониторинг и оповещение. Они могут быть обнаружены автоматически, а также определены пользователем.
  5. Панель инцидентов: панель инцидентов отслеживает инциденты, вызывающие оповещения. Вы ничего не увидите здесь, пока не определите политики предупреждений.
  6. Журнал событий: содержит список событий, связанных с отслеживаемыми ресурсами, например, изменения экземпляра, инциденты и т. д.

Прежде чем мы рассмотрим диаграммы, вы заметите, что большинство линий сгладились после первоначальной инициализации экземпляра. Давайте посмотрим, сможем ли мы «разгладить» некоторые из них, сгенерировав некоторую нагрузку на один из экземпляров.

Чтобы подключиться к экземпляру по SSH из командной строки Cloud Shell:

$ gcloud compute ssh nginx-plus-1
...
Do you want to continue (Y/n)? Y
...
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): [Hit Enter]
Enter same passphrase again: [Hit Enter]
...

yourusername@nginx-plus-1:~$

Вот и все! довольно легко. (В рабочей среде убедитесь, что вы вводите парольную фразу :) Также обратите внимание, что вам может не быть предложено добавить парольную фразу.

Кроме того, вы также можете подключиться к экземпляру по SSH прямо из консоли, перейдя в Compute Engine > Экземпляры виртуальных машин и нажав SSH .

In the SSH window, type:

yourusername@nginx-plus-1:~$ sudo apt-get install rand
yourusername@nginx-plus-1:~$ for i in {1..10}; do dd if=/dev/zero of=/dev/null count=$(rand -M 80)M; sleep 60; done &

Теперь загружается процессор экземпляра nginx-plus-1. Мы можем вернуться на вкладку панели мониторинга Stackdriver и начать изучение, но прежде чем вернуться на страницу панелей мониторинга Stackdriver, давайте воспользуемся возможностью установить агент Cloud Logging.

Fetch and install the script:

yourusername@nginx-plus-1:~$ curl -sS https://dl.google.com/cloudagents/add-logging-agent-repo.sh | sudo bash /dev/stdin --also-install

Обратите внимание, что при установке в рабочей среде обязательно проверьте хэш SHA-256. Вы можете получить больше информации о процессе установки здесь .

Теперь пришло время вернуться к консоли Google Stackdriver.

Потратьте время, чтобы ознакомиться с навигацией и использованием информационных панелей и диаграмм. Используйте мышь, чтобы навести курсор на линии графика и посмотреть, что произойдет. Изменить продолжительность времени для графиков (элементы управления находятся в правом верхнем углу). Вы всегда можете вернуться к представлению «домашняя страница», щелкнув логотип Stackdriver в верхнем левом углу консоли.

Посмотрим на график загрузки процессора:

Некоторые элементы диаграммы:

  • Выделенная линия — это выбранная в данный момент метрика (на диаграмме может отображаться несколько метрик).
  • Серая горизонтальная линия представляет момент времени, на который указывает курсор мыши.
  • Внизу находится имя ресурса вместе со значением на выбранный момент времени.
  • В верхней части диаграммы цветные точки представляют события, подробно описанные в журнале событий. Вы можете нажать на них, чтобы получить список событий. Примечание. Возможно, вы ничего не видите, если у вас еще нет событий.
  • В правом верхнем углу диаграммы находятся три элемента управления (слева направо):
  • Переключить скрыть/показать список метрик под диаграммой
  • Переключить полноэкранный режим
  • Меню с различными вкусностями (вы ДОЛЖНЫ попробовать режим рентгена, если у вас очень подробная диаграмма!). Обратите внимание на параметр «Просмотр журналов» — мы вернемся к нему позже.

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

Вы можете отобразить свои проверки и их статус, выбрав Оповещение > Проверки работоспособности в верхнем меню. Вы также найдете разделы Uptime Checks на панели инструментов Google Stackdriver и на страницах, посвященных определенным ресурсам. Для проверок времени безотказной работы, которые охватывают группу ресурсов, вы можете развернуть проверку, чтобы показать состояние отдельных членов группы.

Давайте создадим проверку работоспособности. Найдите виджет проверки работоспособности на главном экране Stackdriver:

Появится новое всплывающее окно. Мы можем настроить проверки работоспособности для одного ресурса или группы ресурсов, использовать настраиваемые заголовки и полезные данные, добавить аутентификацию и другие параметры. На данный момент мы просто будем использовать проверку http по умолчанию, которая будет проверять автоматически созданную группу nginx каждую минуту.

Используйте скриншот ниже, чтобы заполнить различные параметры:

Нажмите кнопку «Проверить», чтобы убедиться, что ваши конечные точки доступны (вы должны получить 3 зеленых одобрения), и нажмите «Сохранить». Примечание. Если вы не получите одобрение, вы все равно сможете продолжить лабораторную работу, так как это может быть просто проблема со временем проверки.

Затем вы получите окно «Проверка работоспособности создана» и вас спросят, хотите ли вы создать политику оповещения для этой проверки. Давайте сделаем это в следующем разделе — пока ничего не нажимайте.

Вы можете настроить политики предупреждений, чтобы определить условия, определяющие, нормально ли работают ваши облачные службы и платформы. Cloud Monitoring предоставляет множество различных метрик и проверок работоспособности, которые можно использовать в политиках.

При нарушении условий политики оповещения создается инцидент, который отображается на консоли Stackdriver в разделе «Инцидент». Респонденты могут подтвердить получение уведомления и могут закрыть инцидент, когда о нем позаботятся.

Нажимаем «Создать политику оповещения» и переходим к настройке политики.

Теперь вы должны увидеть этот экран:

Введите имя для политики: «Проверка времени работы для группы nginx».

Теперь в разделе метода уведомления нажмите «Добавить уведомление».

Введите адрес электронной почты, связанный с вашей учетной записью Google Cloud. Прокрутите экран вниз и нажмите «Сохранить политику».

Вернитесь на домашнюю страницу Stackdriver (щелкнув логотип в левом верхнем углу).

Теперь вы должны увидеть созданную вами проверку работоспособности в разделе проверок работоспособности на панели инструментов. На данный момент статус должен быть зеленым.

Прокрутите вниз до журнала событий, и вы должны увидеть событие о создании политики предупреждений.

Теперь давайте создадим некоторые проблемы :)

Давайте посмотрим, что произойдет, когда мы остановим службу Ngnix.

Снова подключитесь к экземпляру по SSH из командной строки Cloud Shell:

$ gcloud compute ssh nginx-plus-1

И введите:

yourusername@nginx-plus-1:~$ sudo service nginx stop

Теперь проверка работоспособности, которую мы создали, должна завершиться ошибкой. В результате будет создан инцидент, и на адрес, который вы указали выше, будет отправлено уведомление по электронной почте. Обнаружение условия займет минуту (помните продолжительность 1 минуты при настройке проверки времени работы?), поэтому давайте рассмотрим страницу группы nginx.

Существует несколько способов перехода к панели мониторинга конкретной группы ресурсов:

  1. Вы можете нажать на название группы на главной странице. Это переключает на панель инструментов, созданную специально для мониторинга ресурсов группы. Вы также можете настроить эту панель управления.



  2. В меню верхнего уровня выберите «Группы», а затем найдите свою конкретную группу.

Теперь нажмите кнопку автоматического обновления, чтобы убедиться, что информационные панели обновляются автоматически. Значок станет красным.

Теперь вы смотрите на панель инструментов, относящуюся к автоматически созданной группе nginx. С правой стороны есть графики нескольких ключевых показателей, относящихся к группе. Другими словами, эти графики показывают метрики, относящиеся ко всем ресурсам в группе nginx (наши 3 виртуальные машины nginx+, которые мы создали ранее).

С левой стороны вы видите различную информацию, относящуюся к группе:

  • Статус инцидента
  • Проверка работоспособности
  • Журнал событий
  • Список ресурсов (экземпляры, тома и т. д.)

Обратите внимание, что они относятся только к группе, поэтому в журнале событий перечислены только события для группы.

Вы можете щелкнуть различные ресурсы или подгруппы, чтобы перейти к их собственным панелям мониторинга. Например, нажав на nginx-plus-1, вы попадете на панель инструментов, которая состоит только из метрик и проверок, относящихся к этому экземпляру. Попробуй это сейчас:

Инциденты Stackdriver открываются, когда набор условий оповещения соответствует определенным критериям. В нашем случае мы установили оповещение для проверки работоспособности nginx, которая в настоящее время не работает на nginx-plus-1. Инциденты помогают отслеживать текущие условия, а также сотрудничать с другими членами команды при работе над проблемами.

Давайте признаем инцидент, сообщив другим членам команды, что мы расследуем дело:

Обратите внимание, что это меняет состояние инцидента с «Открыто» на «Подтверждено». Ситуация все еще продолжается (условия политики предупреждений все еще нарушаются), но вы сообщаете членам команды, что вы в ней. Это также будет записано в журнале событий.

Инциденты могут быть разрешены вручную или автоматически. Чтобы увидеть последний, подключитесь по ssh к nginx-plus-1 и устраните проблему:

yourusername@nginx-plus-1:~$ sudo service nginx start

Теперь инцидент будет разрешен автоматически, как только проверка работоспособности вернется в нормальное состояние. Вы также можете решить ее самостоятельно, выбрав пункт меню разрешения.

Cloud Logging — это решение для ведения журналов как услуги, которое предлагает удобное централизованное место для просмотра и запроса журналов из нескольких источников. Вы также можете использовать журналы для их экспорта в другие места назначения (Google Cloud Storage, Google BigQuery или Google Cloud Pub/Sub).

Чтобы получить доступ к средству просмотра облачных журналов, выберите его в левом меню облачной консоли:

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

Есть несколько удобных элементов управления для быстрой фильтрации необходимой информации:

  1. Фильтровать по типам ресурсов
  2. Фильтрация по конкретным типам журналов выбранных ресурсов
  3. Отфильтровать определенные уровни журнала
  4. Отфильтруйте по определенной дате (датам), чтобы изучить прошлые проблемы
  5. Переключить непрерывную трансляцию
  6. Поле поиска для поиска по тексту, метке или регулярному выражению

Теперь давайте попрактикуемся в сужении до конкретных журналов.

В селекторе типа ресурса (1 на скриншоте) выберите Compute Engine -> Все типы ресурсов.

Далее в селекторе типа журнала (2 на скриншоте) выберите nginx-access для просмотра всех журналов доступа.

Теперь включите непрерывную потоковую передачу (5), чтобы просматривать журналы по мере их поступления. Если вы не видите новых журналов, попробуйте ввести внешний IP-адрес одной из виртуальных машин nginx-plus в браузере.

Хотя эта лаборатория кода не уделяет большого внимания журналам, не стесняйтесь изучить их позже, прежде чем приводить в порядок. Дополнительную информацию о навигации по программе просмотра можно найти здесь . Если вам нужна более подробная информация о том, для чего вы можете использовать Cloud Logging, вот каталог верхнего уровня для соответствующей документации.

Давайте освободим вычислительные ресурсы, созданные во время лаборатории кода. Выполните следующие команды в Cloud Shell:

$ for i in {1..3}; do \
gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done

Затем перейдите в консоль Google Stackdriver («Мониторинг» в меню левой панели Cloud Console) и удалите созданные нами политики проверки работоспособности и оповещения. Сделать это можно из пунктов меню верхнего уровня Оповещения -> Обзор политик и Оповещения -> Проверки работоспособности.

Теперь вы готовы к мониторингу ваших облачных приложений.

Что мы рассмотрели

  • Ознакомьтесь с домашней страницей Stackdriver.
  • Понимание дашбордов и диаграмм.
  • Создание проверки работоспособности.
  • Создание простой политики предупреждений.
  • Работа с тревожными инцидентами.
  • Навигация по просмотрщику журналов.

Следующие шаги

  • Попробуйте создать пользовательские панели мониторинга.
  • Изучите различные параметры при создании политики предупреждений.
  • Изучите различные варианты, доступные при использовании Cloud Logging.

Узнать больше

Дайте нам свой отзыв

  • Пожалуйста, найдите минутку, чтобы заполнить наш очень короткий опрос