So installierst du Sentry mit Docker unter Ubuntu 22.04

Sentry ist eine kostenlose und quelloffene Plattform zur Fehlerverfolgung, die Abstürze in Echtzeit überwacht und behebt. Sie ermöglicht es Softwareentwicklern, zu sehen, worauf es ankommt, Fehler schneller zu beheben und kontinuierlich etwas über ihre Anwendungen zu lernen. Die Plattform bietet Echtzeiteinblicke in die Produktionseinsätze mit Informationen zur Reproduktion und Behebung von Abstürzen. Sentry unterstützt alle wichtigen Sprachen und Frameworks und lässt sich mit deinen Lieblingsanwendungen und -diensten integrieren.

Dieses Tutorial zeigt dir, wie du Sentry Error Tracking System mit Docker auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein gültiger Domainname ist auf die IP deines Servers gerichtet.
  • Ein Root-Passwort ist auf deinem Server konfiguriert.

Erforderliche Abhängigkeiten installieren

Bevor du beginnst, solltest du deine Pakete auf die neueste Version aktualisieren. Du kannst sie mit dem folgenden Befehl aktualisieren:

apt update -y
apt upgrade -y

Sobald dein System aktualisiert ist, installierst du alle erforderlichen Pakete mit dem folgenden Befehl:

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

Nachdem du alle Abhängigkeiten installiert hast, kannst du mit dem nächsten Schritt fortfahren.

Docker und Docker Compose installieren

Standardmäßig ist die neueste Version der Pakete Docker und Docker Compose nicht im Standard-Repository von Ubuntu 22.04 verfügbar. Daher musst du das offizielle Docker-Repository zur APT hinzufügen.

Lade zunächst den Docker GPG-Schlüssel herunter und füge ihn mit dem folgenden Befehl hinzu.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Als nächstes fügst du das Docker-Repository mit dem folgenden Befehl hinzu.

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

Sobald das Repository hinzugefügt ist, aktualisiere den Repository-Cache mit dem folgenden Befehl.

apt update -y

Als Nächstes installierst du sowohl Docker als auch Docker Compose mit dem folgenden Befehl.

apt install docker docker-compose -y

Sobald beide Pakete installiert sind, starte den Docker-Dienst und aktiviere ihn mit dem folgenden Befehl, damit er beim Neustart des Systems gestartet wird:

systemctl start docker
systemctl enable docker

Jetzt kannst du den Status von Docker mit dem folgenden Befehl überprüfen:

systemctl status docker

Du solltest die folgende Ausgabe erhalten:

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-01-10 04:37:27 UTC; 5s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 45847 (dockerd)
      Tasks: 8
     Memory: 29.1M
        CPU: 220ms
     CGroup: /system.slice/docker.service
             ??45847 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.903435377Z" level=info msg="scheme \"unix\" not registered, fallback to defau>
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.903453803Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:>
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.903464761Z" level=info msg="ClientConn switching balancer to \"pick_first\"" >
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.916581613Z" level=info msg="Loading containers: start."
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.997807510Z" level=info msg="Default bridge (docker0) is assigned with an IP a>
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.060381720Z" level=info msg="Loading containers: done."
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.074467014Z" level=info msg="Docker daemon" commit=20.10.12-0ubuntu4 graphdriv>
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.074649813Z" level=info msg="Daemon has completed initialization"
Jan 10 04:37:27 vultr systemd[1]: Started Docker Application Container Engine.
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.092699576Z" level=info msg="API listen on /run/docker.sock"

Um die Docker-Version zu überprüfen, führe den folgenden Befehl aus:

docker --version

Du solltest die folgende Ausgabe sehen:

Docker version 20.10.12, build 20.10.12-0ubuntu4

Du kannst auch die Version von Docker compose mit folgendem Befehl überprüfen:

docker-compose --version

Du solltest die folgende Ausgabe sehen:

docker-compose version 1.29.2, build unknown

Sentry installieren

Lade zunächst die neueste Version von Sentry mit folgendem Befehl aus dem Git-Repository herunter:

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

Sobald der Download abgeschlossen ist, änderst du das Verzeichnis in das heruntergeladene Verzeichnis und führst das Sentry-Installationsskript aus, um die Installation zu starten.

cd onpremise
bash install.sh

Während der Installation wirst du aufgefordert, ein Admin-Konto zu erstellen (siehe unten):

Here's the info we may collect:

  - OS username
  - IP address
  - install log
  - runtime errors
  - performance data

Thirty (30) day retention. No marketing. Privacy policy at sentry.io/privacy.

Would you like to create a user account now? [Y/n]: y

Email: Email: hitjethva81@gmail.com
Password: 
Repeat for confirmation: 
Added to organization: sentry
User created: hitjethva81@gmail.com
Creating missing DSNs
Correcting Group.num_comments counter

-----------------------------------------------------------------

You're all done! Run the following command to get Sentry running:

  docker-compose up -d

-----------------------------------------------------------------

Als Nächstes überprüfst du alle heruntergeladenen Bilder mit dem folgenden Befehl.

docker images

Du solltest die folgende Ausgabe sehen.

REPOSITORY                               TAG             IMAGE ID       CREATED             SIZE
sentry-cleanup-self-hosted-local         latest          04fa0fce18f0   4 minutes ago       908MB
symbolicator-cleanup-self-hosted-local   latest          6837f5f48e6c   5 minutes ago       180MB
snuba-cleanup-self-hosted-local          latest          242b7b248e1c   5 minutes ago       486MB
sentry-self-hosted-local                 latest          101b00356aa6   5 minutes ago       907MB
sentry-self-hosted-jq-local              latest          83c66fd3f78f   6 minutes ago       82.5MB
getsentry/sentry                         nightly         cf0f404d102e   About an hour ago   907MB
getsentry/snuba                          nightly         fc6c2d286bf8   8 hours ago         484MB
getsentry/relay                          nightly         43cd2ba5497c   5 days ago          242MB
busybox                                  latest          66ba00ad3de8   6 days ago          4.87MB
tianon/exim4                             latest          12842ac621c1   2 weeks ago         158MB
debian                                   bullseye-slim   dd94cb611937   2 weeks ago         80.5MB
getsentry/sentry-cli                     latest          a585383ff864   2 weeks ago         26.3MB
getsentry/symbolicator                   nightly         80d9b41cd195   3 weeks ago         178MB
nginx                                    1.22.0-alpine   5685937b6bc1   3 months ago        23.5MB
postgres                                 9.6             027ccf656dc1   11 months ago       200MB
confluentinc/cp-kafka                    5.5.0           efc480c1c89c   15 months ago       598MB
confluentinc/cp-zookeeper                5.5.0           ddeb961d8e80   15 months ago       598MB
redis                                    6.2.4-alpine    500703a12fa4   18 months ago       32.3MB
memcached                                1.6.9-alpine    a0132b3398e4   18 months ago       8.09MB
curlimages/curl                          7.77.0          e062233fb4a9   19 months ago       8.26MB
maxmindinc/geoipupdate                   v4.7.1          8ec32cc727c7   21 months ago       10.6MB
clickhouse-self-hosted-local             latest          abe55fc6544d   2 years ago         497MB
yandex/clickhouse-server                 20.3.9.70       abe55fc6544d   2 years ago         497MB

Sentry Container starten

Zu diesem Zeitpunkt ist Sentry installiert. Du kannst nun den Sentry-Container mit dem folgenden Befehl starten:

docker-compose up -d

Dadurch werden alle Container für Sentry gestartet, wie unten dargestellt:

Starting sentry_onpremise_memcached_1            ... done
Starting sentry_onpremise_redis_1                ... done
Starting sentry_onpremise_symbolicator_1         ... done
Creating sentry_onpremise_symbolicator-cleanup_1 ... done
Starting sentry_onpremise_zookeeper_1            ... done
Starting sentry_onpremise_clickhouse_1           ... done
Starting sentry_onpremise_smtp_1                 ... done
Starting sentry_onpremise_postgres_1             ... done
Starting sentry_onpremise_kafka_1                ... done
Starting sentry_onpremise_snuba-consumer_1          ... done
Starting sentry_onpremise_snuba-outcomes-consumer_1 ... done
Starting sentry_onpremise_snuba-api_1               ... done
Starting sentry_onpremise_snuba-sessions-consumer_1 ... done
Starting sentry_onpremise_snuba-replacer_1          ... done
Creating sentry_onpremise_snuba-cleanup_1           ... done
Creating sentry_onpremise_relay_1                   ... done
Creating sentry_onpremise_web_1                     ... done
Creating sentry_onpremise_post-process-forwarder_1  ... done
Creating sentry_onpremise_cron_1                    ... done
Creating sentry_onpremise_sentry-cleanup_1          ... done
Creating sentry_onpremise_worker_1                  ... done
Creating sentry_onpremise_ingest-consumer_1         ... done
Creating sentry_onpremise_nginx_1                   ... done

Du kannst den Status aller Container mit dem folgenden Befehl überprüfen.

docker-compose ps

Du solltest die folgende Ausgabe sehen.

                         Name                                        Command                  State                      Ports                
----------------------------------------------------------------------------------------------------------------------------------------------
sentry-self-hosted_clickhouse_1                           /entrypoint.sh                   Up (healthy)   8123/tcp, 9000/tcp, 9009/tcp        
sentry-self-hosted_cron_1                                 /etc/sentry/entrypoint.sh  ...   Up             9000/tcp                            
sentry-self-hosted_geoipupdate_1                          /usr/bin/geoipupdate -d /s ...   Exit 1                                             
sentry-self-hosted_ingest-consumer_1                      /etc/sentry/entrypoint.sh  ...   Up             9000/tcp                            
sentry-self-hosted_kafka_1                                /etc/confluent/docker/run        Up (healthy)   9092/tcp                            
sentry-self-hosted_memcached_1                            docker-entrypoint.sh memcached   Up (healthy)   11211/tcp                           
sentry-self-hosted_nginx_1                                /docker-entrypoint.sh ngin ...   Up             0.0.0.0:9000->80/tcp,:::9000->80/tcp
sentry-self-hosted_post-process-forwarder-errors_1        /etc/sentry/entrypoint.sh  ...   Up             9000/tcp                            
sentry-self-hosted_post-process-forwarder-                /etc/sentry/entrypoint.sh  ...   Up             9000/tcp                            
transactions_1                                                                                                                                
sentry-self-hosted_postgres_1                             /opt/sentry/postgres-entry ...   Up (healthy)   5432/tcp                            
sentry-self-hosted_redis_1                                docker-entrypoint.sh redis ...   Up (healthy)   6379/tcp                            
sentry-self-hosted_relay_1                                /bin/bash /docker-entrypoi ...   Up             3000/tcp                            
sentry-self-hosted_sentry-cleanup_1                       /entrypoint.sh 0 0 * * * g ...   Up             9000/tcp                            
sentry-self-hosted_smtp_1                                 docker-entrypoint.sh exim  ...   Up             25/tcp                              
sentry-self-hosted_snuba-api_1                            ./docker_entrypoint.sh api       Up             1218/tcp                            
sentry-self-hosted_snuba-cleanup_1                        /entrypoint.sh */5 * * * * ...   Up             1218/tcp                            
sentry-self-hosted_snuba-consumer_1                       ./docker_entrypoint.sh con ...   Up             1218/tcp                            
sentry-self-hosted_snuba-outcomes-consumer_1              ./docker_entrypoint.sh con ...   Up             1218/tcp                            
sentry-self-hosted_snuba-replacer_1                       ./docker_entrypoint.sh rep ...   Up             1218/tcp                            
sentry-self-hosted_snuba-sessions-consumer_1              ./docker_entrypoint.sh con ...   Up             1218/tcp                            
sentry-self-hosted_snuba-subscription-consumer-events_1   ./docker_entrypoint.sh sub ...   Up             1218/tcp                            
sentry-self-hosted_snuba-subscription-consumer-           ./docker_entrypoint.sh sub ...   Up             1218/tcp                            
transactions_1                                                                                                                                
sentry-self-hosted_snuba-transactions-cleanup_1           /entrypoint.sh */5 * * * * ...   Up             1218/tcp                            
sentry-self-hosted_snuba-transactions-consumer_1          ./docker_entrypoint.sh con ...   Up             1218/tcp                            
sentry-self-hosted_subscription-consumer-events_1         /etc/sentry/entrypoint.sh  ...   Up             9000/tcp                            
sentry-self-hosted_subscription-consumer-transactions_1   /etc/sentry/entrypoint.sh  ...   Up             9000/tcp                            
sentry-self-hosted_symbolicator-cleanup_1                 /entrypoint.sh 55 23 * * * ...   Up             3021/tcp                            
sentry-self-hosted_symbolicator_1                         /bin/bash /docker-entrypoi ...   Up             3021/tcp                            
sentry-self-hosted_web_1                                  /etc/sentry/entrypoint.sh  ...   Up (healthy)   9000/tcp                            
sentry-self-hosted_worker_1                               /etc/sentry/entrypoint.sh  ...   Up             9000/tcp                            
sentry-self-hosted_zookeeper_1                            /etc/confluent/docker/run        Up (healthy)   2181/tcp, 2888/tcp, 3888/tcp        

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Zugriff auf Sentry Web UI

Zu diesem Zeitpunkt ist Sentry gestartet und lauscht auf Port 9000. Öffne nun deinen Webbrowser und gib die URL http://your-server-ip:9000 ein, um das Sentry-Dashboard aufzurufen. Du wirst auf die Anmeldeseite von Sentry weitergeleitet (siehe unten):

Sentry Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Login. Du solltest die folgende Seite sehen:

Wächterkonfiguration

Authentifizierung

Gib deine Sentry-URL, deine E-Mail-Adresse und deine SMTP-Daten ein und klicke auf die Schaltfläche Weiter. Auf der folgenden Seite solltest du das Standard-Dashboard von Sentry sehen:

Sentry Dashboard zur Fehlerverfolgung

Fazit

In dieser Anleitung haben wir erklärt, wie du Sentry unter Ubuntu 22.04 installierst. Jetzt kannst du Sentry in deinem Unternehmen einsetzen, um deine Anwendung über den gesamten Stack in Echtzeit zu verfolgen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …