Cómo instalar el sistema de seguimiento de errores Sentry con Docker en Ubuntu

Sentry es una aplicación de seguimiento de errores gratuita y de código abierto que puede utilizarse para identificar problemas en tiempo real. En este tutorial, explicaremos cómo instalar Sentry con Docker en un servidor Ubuntu 18.04.

Requisitos

  • Un servidor que ejecute Ubuntu 18.04 con 4 GB de RAM.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Antes de empezar, se recomienda actualizar tu sistema con la última versión. Puedes hacerlo con el siguiente comando:

apt-get update -y
 apt-get upgrade -y

Una vez actualizado el sistema, reinícialo para aplicar todos los cambios.

Instalar Docker CE

A continuación, tendrás que instalar la última versión de Docker CE en tu sistema. Por defecto, la última versión de Docker no está disponible en el repositorio por defecto de Ubuntu 18.04. Así que tendrás que añadir el repositorio para ello.

Primero, instala los paquetes necesarios con el siguiente comando:

apt-get install curl git build-essential apt-transport-https ca-certificates curl software-properties-common -y

A continuación, descarga y añade la clave GPG con el siguiente comando:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

A continuación, añade el repositorio de Docker CE con el siguiente comando:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

A continuación, actualiza el repositorio e instala Docker CE con el siguiente comando:

apt-get update -y
 apt-get install docker-ce -y

Una vez instalado Docker, puedes comprobar el estado de Docker con el siguiente comando:

systemctl status docker

Deberías ver la siguiente salida:

? docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-07-03 12:34:40 UTC; 22s ago
     Docs: https://docs.docker.com
 Main PID: 4683 (dockerd)
    Tasks: 8
   CGroup: /system.slice/docker.service
           ??4683 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jul 03 12:34:37 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:37.685945390Z" level=warning msg="Your kernel does not support swap memory lim
Jul 03 12:34:37 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:37.686904854Z" level=warning msg="Your kernel does not support cgroup rt perio
Jul 03 12:34:37 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:37.687422213Z" level=warning msg="Your kernel does not support cgroup rt runti
Jul 03 12:34:37 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:37.697386605Z" level=info msg="Loading containers: start."
Jul 03 12:34:38 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:38.896641657Z" level=info msg="Default bridge (docker0) is assigned with an IP
Jul 03 12:34:39 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:39.508555810Z" level=info msg="Loading containers: done."
Jul 03 12:34:39 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:39.939899550Z" level=info msg="Docker daemon" commit=2d0083d graphdriver(s)=ov
Jul 03 12:34:39 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:39.947534196Z" level=info msg="Daemon has completed initialization"
Jul 03 12:34:40 ubuntu1804 systemd[1]: Started Docker Application Container Engine.
Jul 03 12:34:40 ubuntu1804 dockerd[4683]: time="2019-07-03T12:34:40.230411944Z" level=info msg="API listen on /var/run/docker.sock"

Instalar Sentry

En primer lugar, tendrás que descargar la última versión de Sentry desde el repositorio de Github. Puedes descargarla con el siguiente comando:

git clone https://github.com/getsentry/onpremise

Una vez completada la descarga, deberías ver la siguiente salida:

Cloning into 'onpremise'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 228 (delta 3), reused 6 (delta 2), pack-reused 215
Receiving objects: 100% (228/228), 55.14 KiB | 275.00 KiB/s, done.
Resolving deltas: 100% (106/106), done.

A continuación, crea la imagen local personalizada con el siguiente comando:

cd ~/onpremise
 make build

A continuación, tendrás que crear un script de servicio centinela. Puedes crearlo con el siguiente comando:

nano sentry_services.sh

Añade las siguientes líneas:

#! /bin/bash
clear
docker run --detach --name sentry-redis redis:3.2-alpine
docker run --detach  --name sentry-postgres --env POSTGRES_PASSWORD=secret --env POSTGRES_USER=sentry postgres:9.5
docker run  --detach  --name sentry-smtp tianon/exim4
docker run --rm sentry-onpremise --help
docker run --rm sentry-onpremise config generate-secret-key

Guarda y cierra el archivo cuando hayas terminado. A continuación, ejecuta el script con el siguiente comando:

. sentry_services.sh

Deberías ver la siguiente salida:

0kvhow&i+k#rjkkc0wvo*n=45=uuua8)51li8)cdjuld6e(2wa

A continuación, tendrás que almacenar la clave anterior en la variable SENTRY_SECRET_KEY. Puedes hacerlo con el siguiente comando:

echo 'export SENTRY_SECRET_KEY="0kvhow&i+k#rjkkc0wvo*n=45=uuua8)51li8)cdjuld6e(2wa"' >> ~/.bashrc
 source ~/.bashrc

A continuación, inicia el proceso de migración con el siguiente comando:

docker run --link sentry-redis:redis --link sentry-postgres:postgres --link sentry-smtp:smtp --env SENTRY_SECRET_KEY=${SENTRY_SECRET_KEY} --rm -it sentry-onpremise upgrade

Una vez que el proceso de migración se haya completado con éxito, inicia la aplicación Sentry con el siguiente comando:

docker run --detach --name sentry-web-01 --publish 9000:9000 --link sentry-redis:redis --link sentry-postgres:postgres --link sentry-smtp:smtp --env SENTRY_SECRET_KEY=${SENTRY_SECRET_KEY} sentry-onpremise run web

A continuación, inicia los trabajadores en segundo plano con el siguiente comando:

docker run --detach --name sentry-worker-01 --link sentry-redis:redis --link sentry-postgres:postgres --link sentry-smtp:smtp --env SENTRY_SECRET_KEY=${SENTRY_SECRET_KEY} sentry-onpremise run worker

A continuación, inicia el proceso cron con el siguiente comando:

docker run --detach --name sentry-cron --link sentry-redis:redis --link sentry-postgres:postgres --link sentry-smtp:smtp --env SENTRY_SECRET_KEY=${SENTRY_SECRET_KEY} sentry-onpremise run cron

Sentry ya está configurado y escucha en el puerto 9000. Puedes acceder a la interfaz web de Sentry visitando la URL http://yourserverip:9000.

Enhorabuena! has instalado y configurado con éxito Sentry con Docker en el servidor Ubuntu 18.04.

También te podría gustar...