En este codelab, aprenderás a comenzar a usar Stackdriver para supervisar y revisar las métricas y los registros de rendimiento de los servicios y las VMs de Google Cloud Platform.
En este codelab, harás lo siguiente:
- Familiarízate con la página principal de Stackdriver.
- Comprender los paneles y los gráficos
- Crear una verificación de tiempo de actividad
- Crea una política de alertas simple.
- Trabaja con incidentes de alerta.
- Navega por el Visor de registros.
¿Cuál es tu experiencia con Stackdriver?
Configuración del entorno de autoaprendizaje
Si aún no tienes una Cuenta de Google (Gmail o Google Apps), debes crear una.
Accede a Google Cloud Platform Console (console.developers.google.com) y crea un proyecto nuevo:
Recuerda el ID del proyecto, un nombre único en todos los proyectos de Google Cloud. Se mencionará más adelante en este codelab como PROJECT_ID
.
Muy importante: Visita la página de Compute Engine para comenzar a habilitar la API de Compute Engine:
Luego, haz clic en Compute → Compute Engine → Instancias de VM.
La primera vez que lo hagas, verás una pantalla con el mensaje "Compute Engine se está preparando. Esto puede tardar un minuto o más". Puedes seguir accediendo a Google Cloud Shell a continuación, pero no podrás crear VMs hasta que se complete esta operación.
La mayor parte del trabajo la harás desde Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube. Esta máquina virtual basada en Debian está cargada con todas las herramientas de desarrollo que necesitarás y ofrece un directorio principal persistente de 5 GB. Haga clic en el ícono en la parte superior derecha de la pantalla para abrir Google Cloud Shell:
Finalmente, utilice Cloud Shell para configurar la zona predeterminada y la configuración del proyecto:
$ gcloud config set compute/zone us-central1-b $ gcloud config set compute/region us-central
También puedes elegir diferentes zonas. Consulta la documentación sobre regiones y zonas para obtener más información sobre el tema.
En esta sección, crearás instancias de Compute Engine que ejecuten nginx+ con Cloud Launcher. Necesitaremos estas instancias para demostrar la supervisión y las alertas. Puedes crear una instancia de Compute Engine desde la consola gráfica o desde la línea de comandos. En este lab, se te guiará por las líneas de comandos.
Ahora, comencemos.
Usa gcloud para establecer tu ID del proyecto:
$ gcloud config set project PROJECT_ID
A continuación, asegúrate de copiar y pegar este código tal como está:
$ 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
Verás mensajes de advertencia sobre el tamaño del disco y, luego, el siguiente resultado a medida que se cree cada VM:
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 ...
Anota el EXTERNAL_IP
, ya que será importante más adelante.
Estas operaciones pueden tardar unos minutos en completarse.
De forma predeterminada, Google Cloud Platform solo permite el acceso a algunos puertos. Como pronto accederemos a Nginx, habilitemos el puerto 80 en la configuración del firewall:
$ 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
Se creará una regla de firewall llamada allow-80 que tendrá los siguientes valores predeterminados:
- La lista de bloques de direcciones IP que pueden realizar conexiones entrantes (
--source-ranges
) se establece en0.0.0.0/0
(en todas partes). - La lista de etiquetas de instancias que indica el conjunto de instancias en la red que pueden aceptar conexiones entrantes se establece en none, lo que significa que la regla de firewall se aplica a todas las instancias.
Ejecuta gcloud compute firewall-rules create --help
para ver todos los valores predeterminados.
Después de crear la primera instancia, puedes probar si nginx se está ejecutando y si se puede acceder a él. Para ello, navega a http://EXTERNAL_IP/, donde EXTERNAL_IP
es la IP pública de nginx-plus-1, y deberías poder ver la página de Nginx:
También puedes ver tus instancias en ejecución escribiendo lo siguiente:
$ gcloud compute instances list
Google Stackdriver es una potente solución de supervisión que integra varias herramientas para facilitar la supervisión y el análisis de tus aplicaciones potenciadas por la nube. Puedes usar Stackdriver para ver métricas de rendimiento, establecer y recibir alertas, agregar tus propios paneles y métricas personalizados, ver registros y seguimientos, y configurar paneles integrados, todo desde un lugar central.
En los siguientes pasos, se explica cómo habilitar Stackdriver y trabajar con la consola.
De forma predeterminada, Google Stackdriver se encuentra actualmente en versión beta y no está habilitado para proyectos nuevos. Para habilitarlo, ve a la barra de navegación izquierda y haz clic en "Monitoring" (es posible que debas desplazarte hacia abajo para encontrarlo).
En la siguiente pantalla, haz clic en "Habilitar la supervisión" y espera un minuto para que se habilite.
Una vez que se habilite, el contenido cambiará y verás el texto que se muestra a continuación. Haz clic en “Ir a Supervisión” para comenzar a explorar. Deberás acceder con tu cuenta de Google y, luego, se te redireccionará a la consola de Stackdriver de tu proyecto, donde realizarás y analizarás las tareas relacionadas con la supervisión.
Familiaricémonos con la página principal.
- El menú superior: Se usa para seleccionar diferentes vistas o contextos, y acceder a todas las acciones disponibles de Stackdriver.
- Paneles: Son paneles de las métricas y los eventos que se supervisan. Inicialmente, estos son paneles del sistema predefinidos basados en los recursos de tu proyecto, pero también puedes crear tus propios paneles personalizados.
- Verificaciones de tiempo de actividad: Estas verificaciones comprueban periódicamente la disponibilidad de los recursos orientados al usuario y habilitan las alertas cuando estos dejan de estar disponibles.
- Lista de grupos: Los grupos se usan para agrupar recursos que comparten propiedades y características, de modo que se puedan controlar como un grupo o clúster para tareas como la supervisión y las alertas. Se pueden detectar automáticamente y también definirse por el usuario.
- Panel de incidentes: El panel de incidentes hace un seguimiento de los incidentes que generaron alertas. No verás nada aquí hasta que definas políticas de alertas.
- El registro de eventos: Enumera los eventos relacionados con los recursos supervisados, por ejemplo, cambios en las instancias, eventos de incidentes, etcétera.
Antes de examinar los gráficos, notarás que la mayoría de las líneas se aplanaron después de la inicialización de la instancia inicial. Veamos si podemos "desaplanar" algunas de ellas generando carga en una de las instancias.
Para acceder a la instancia a través de SSH desde la línea de comandos de Cloud Shell, haz lo siguiente:
$ 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:~$
¡Eso es todo! Es muy fácil. (En producción, asegúrate de ingresar una frase de contraseña). Además, ten en cuenta que es posible que no se te solicite que agregues una frase de contraseña.
De manera alternativa, también puedes establecer una conexión SSH a la instancia directamente desde la consola. Para ello, navega a Compute Engine > Instancias de VM y haz clic en 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 &
Ahora se está cargando la CPU de la instancia nginx-plus-1. Podemos volver a la pestaña del panel de Stackdriver y comenzar a explorar, pero antes de volver a la página de los paneles de Stackdriver, aprovechemos la oportunidad para instalar el agente de 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
Ten en cuenta que, cuando realices la instalación en producción, asegúrate de verificar el hash SHA-256. Puedes obtener más información sobre el proceso de instalación aquí.
Ahora es momento de volver a la consola de Google Stackdriver.
Dedica tiempo a familiarizarte con la navegación y el uso de los paneles y gráficos. Usa el mouse para colocar el cursor sobre las líneas del gráfico y ver qué sucede. Cambia la duración de los gráficos (los controles se encuentran en la esquina superior derecha). Siempre puedes volver a la vista de la "página principal" haciendo clic en el logotipo de Stackdriver en la esquina superior izquierda de la consola.
Veamos el gráfico de uso de CPU:
Estos son algunos elementos del gráfico:
- La línea destacada es la métrica seleccionada actualmente (un gráfico puede mostrar varias métricas).
- La línea horizontal gris representa el punto en el tiempo al que apunta el cursor.
- En la parte inferior, se muestra el nombre del recurso junto con el valor en el punto temporal seleccionado.
- En la parte superior del gráfico, hay puntos de colores que representan los eventos que se detallan en el registro de eventos. Puedes hacer clic en ellos para obtener una lista de eventos. Nota: Es posible que no veas ninguno si aún no tienes eventos.
- En la parte superior derecha del gráfico, hay tres controles (de izquierda a derecha):
- Activa o desactiva la visualización de una lista de métricas debajo del gráfico
- Activar o desactivar modo de pantalla completa
- Menú con varias funciones interesantes (DEBES probar el modo de rayos X una vez que tengas un gráfico muy detallado). Ten en cuenta la opción "Ver registros"; la veremos más adelante.
Las verificaciones de tiempo de actividad te permiten comprobar rápidamente el estado de cualquier página web, instancia o grupo de recursos. Con frecuencia, cada verificación configurada recibe consultas de diversas ubicaciones de todo el mundo. Las verificaciones de tiempo de actividad se pueden usar como condiciones en las definiciones de políticas de alertas.
Para mostrar tus verificaciones y su estado, selecciona Alertas > Verificaciones de tiempo de actividad en el menú superior. También encontrarás secciones de Uptime Checks en el panel de Google Stackdriver y en las páginas dedicadas a recursos específicos. En el caso de las verificaciones de tiempo de actividad que abarcan un grupo de recursos, puedes expandir la verificación para mostrar el estado de los miembros individuales del grupo.
Creemos una verificación de tiempo de actividad. Busca el widget de verificaciones de tiempo de actividad en la pantalla principal de Stackdriver:
Aparecerá una ventana emergente nueva. Podemos configurar verificaciones de tiempo de actividad para un solo recurso o un grupo de recursos, utilizar encabezados y cargas útiles personalizados, agregar autenticación y otras opciones. Por ahora, solo usaremos una verificación http predeterminada que verificará el grupo nginx creado automáticamente cada 1 minuto.
Usa la siguiente captura de pantalla para completar las diferentes opciones:
Haz clic en el botón "Probar" para asegurarte de que se pueda acceder a tus extremos (deberías ver 3 marcas de verificación verdes) y, luego, haz clic en Guardar. Nota: Si no recibes las confirmaciones, puedes seguir con el lab, ya que podría tratarse de un problema de sincronización de la verificación de la prueba.
A continuación, aparecerá un cuadro que indica que se creó la verificación de tiempo de actividad y se te preguntará si deseas crear una política de alertas para esta verificación. Hagámoslo en la siguiente sección. No hagas clic en nada todavía.
Puedes configurar políticas de alertas para definir las condiciones que determinan si tus servicios y plataformas en la nube funcionan con normalidad. Cloud Monitoring proporciona muchos tipos diferentes de métricas y verificaciones de estado que puedes usar en las políticas.
Cuando se infringen las condiciones de una política de alertas, se crea un incidente que se muestra en la sección Incidentes de la consola de Stackdriver. El personal de respuesta puede acusar recibo de la notificación y cerrar el incidente cuando se haya resuelto.
Haz clic en "Crear política de alertas" y pasemos a configurar la política.
Ahora deberías ver esta pantalla:
Ingresa un nombre para la política: "Verificación del tiempo de actividad para el grupo nginx".
Ahora, en la sección del método de notificación, haz clic en "Agregar notificación".
Ingresa la dirección de correo electrónico asociada con tu cuenta de Google Cloud. Desplázate hasta la parte inferior de la pantalla y haz clic en "Guardar política".
Regresa a la página principal de Stackdriver (haz clic en el logotipo en la esquina superior izquierda).
Ahora deberías ver la verificación de tiempo de actividad que creaste en la sección de verificaciones de tiempo de actividad del panel. Por ahora, el estado debería ser verde.
Desplázate hacia abajo hasta el registro de eventos y deberías ver el evento que indica que se creó una política de alertas.
Ahora, creemos algunos problemas :)
Veamos qué sucede cuando detenemos el servicio de Nginx.
Vuelve a acceder a la instancia a través de SSH desde la línea de comandos de Cloud Shell:
$ gcloud compute ssh nginx-plus-1
Y escribe lo siguiente:
yourusername@nginx-plus-1:~$ sudo service nginx stop
Ahora, la verificación de tiempo de actividad que creamos debería fallar. Como resultado, se creará un incidente y se enviará un correo electrónico de notificación de alerta a la dirección que ingresaste anteriormente. La condición tardará un minuto en detectarse (¿recuerdas la duración de 1 minuto cuando configuraste la verificación de tiempo de actividad?), así que vamos a examinar la página del grupo de nginx.
Existen varias formas de navegar al panel de un grupo de recursos específico:
- Puedes hacer clic en el nombre del grupo en la página principal. Esto te redireccionará a un panel creado específicamente para supervisar los recursos del grupo. También puedes personalizar este panel.
- En el menú de nivel superior, selecciona Grupos y, luego, busca tu grupo específico.
Ahora, haz clic en el botón de actualización automática para asegurarte de que los paneles se actualicen automáticamente. El ícono se pondrá de color rojo.
Ahora, estás viendo un panel específico del grupo de nginx creado automáticamente. En el lado derecho, hay gráficos de varias métricas clave relacionadas con el grupo. En otras palabras, estos gráficos muestran métricas relacionadas con todos los recursos del grupo de nginx (las 3 VMs de nginx+ que creamos anteriormente).
En el lado izquierdo, verás diversa información relacionada con el grupo:
- Estado del incidente
- Verificaciones de tiempo de actividad
- Registro de eventos
- Es una lista de recursos (instancias, volúmenes, etcétera).
Ten en cuenta que estos solo se relacionan con el grupo, por lo que el registro de eventos solo muestra los eventos del grupo.
Puedes hacer clic en diferentes recursos o subgrupos para acceder a sus propios paneles específicos. Por ejemplo, si haces clic en nginx-plus-1, accederás a un panel que solo contiene métricas y verificaciones relacionadas con esa instancia. Probar ahora:
Los incidentes de Stackdriver se abren cuando un conjunto de condiciones de alerta cumple con ciertos criterios. En nuestro caso, configuramos una alerta para la verificación del tiempo de actividad de nginx, que actualmente falla en nginx-plus-1. Los incidentes te ayudan a hacer un seguimiento de las condiciones actuales y a colaborar con otros miembros del equipo cuando trabajas en problemas.
Confirmemos el incidente para que otros miembros del equipo sepan que estamos investigando:
Ten en cuenta que esto cambia el estado del incidente de Abierto a Confirmado. La situación aún está en curso (las condiciones de la política de alertas aún se incumplen), pero les indicas a los miembros del equipo que estás trabajando en ello. Esto también se registrará en el registro de eventos.
Los incidentes se pueden resolver de forma manual o automática. Para ver este último, accede a nginx-plus-1 a través de SSH y corrige el problema:
yourusername@nginx-plus-1:~$ sudo service nginx start
Ahora, el incidente se resolverá automáticamente una vez que la verificación de tiempo de actividad vuelva a la normalidad. También puedes resolverlo por tu cuenta seleccionando el elemento del menú de resolución.
Cloud Logging es una solución de registro como servicio que ofrece un lugar central y conveniente para ver y consultar registros de múltiples fuentes. También puedes usar los registros para exportarlos a otros destinos (Google Cloud Storage, Google BigQuery o Google Cloud Pub/Sub).
Para acceder al Visor de registros de Cloud, selecciónalo en el menú de la izquierda de la consola de Cloud:
Se te redireccionará al visor de registros, en el que podrás usar consultas predefinidas o crear y guardar tus propias consultas personalizadas, obtener una transmisión en vivo de los registros provenientes de varios recursos en tu implementación en la nube, crear métricas a partir de los registros, exportar y mucho más.
Hay algunos controles útiles para filtrar rápidamente la información pertinente:
- Filtrar por tipos de recursos
- Filtrar por tipos de registros específicos de los recursos seleccionados
- Cómo filtrar niveles de registro específicos
- Aplica un filtro para ver fechas específicas y examinar problemas anteriores
- Activar o desactivar la transmisión continua
- Un cuadro de búsqueda para buscar texto, etiquetas o expresiones regulares
Ahora, practiquemos cómo reducir la búsqueda a registros específicos.
En el selector de tipo de recurso (1 en la captura de pantalla), selecciona Compute Engine -> Todos los tipos de recursos.
A continuación, en el selector de tipo de registro (2 en la captura de pantalla), selecciona nginx-access para ver todos los registros de acceso.
Ahora, activa la transmisión continua (5) para ver los registros a medida que llegan. Si no ves ningún registro nuevo, intenta ingresar la dirección IP externa de una de las VMs de nginx-plus en tu navegador.
Si bien este codelab no se enfoca en los registros, puedes explorarlos más adelante antes de limpiar. Puedes encontrar más información para navegar por el visor aquí. Si deseas obtener información más general sobre lo que puedes hacer con Cloud Logging, aquí encontrarás el directorio de nivel superior de la documentación pertinente.
Liberemos los recursos de procesamiento creados durante el codelab. Ejecuta los siguientes comandos por separado en Cloud Shell:
$ for i in {1..3}; do \ gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done
A continuación, ve a la consola de Google Stackdriver ("Monitoring" en el menú del panel izquierdo de Cloud Console) y quita las políticas de alerta y verificación del tiempo de actividad que creamos. Puedes hacerlo desde los elementos de menú de nivel superior Alertas -> Descripción general de las políticas y Alertas -> Verificaciones de tiempo de actividad.
Ahora puedes supervisar tus aplicaciones potenciadas por la nube.
Temas abordados
- Familiarizarte con la página principal de Stackdriver
- Comprender los paneles y los gráficos
- Crear una verificación de tiempo de actividad
- Crea una política de alertas simple.
- Trabajar con incidentes de alerta
- Navegar por el Visor de registros
Próximos pasos
- Intenta crear paneles personalizados.
- Explora las diferentes opciones cuando crees una política de alertas.
- Explorar las diferentes opciones disponibles cuando se usa Cloud Logging
Más información
- Obtén más información para usar la API de Monitoring.
- Usar métricas personalizadas
Envíanos tus comentarios
- Tómate un momento para completar nuestra breve encuesta