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):
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Login. Du solltest die folgende Seite sehen:
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:
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.