설치 가이드 · 6 min read · Dec 19, 2025
우분투 22.04에서 Docker로 Sentry 설치하는 방법

Sentry는 실시간으로 충돌을 모니터링하고 수정하는 무료 오픈 소스 오류 추적 플랫폼입니다. 소프트웨어 개발자가 중요한 사항을 보고, 더 빠르게 문제를 해결하고, 애플리케이션에 대해 지속적으로 학습할 수 있도록 합니다. 이 플랫폼은 충돌을 재현하고 수정하는 데 필요한 정보를 제공하여 프로덕션 배포에 대한 실시간 통찰력을 제공합니다. Sentry는 모든 주요 언어와 프레임워크를 지원하며, 좋아하는 앱 및 서비스와 통합됩니다.
이 튜토리얼에서는 우분투 22.04에서 Docker로 Sentry 오류 추적 시스템을 설치하는 방법을 보여줍니다.
전제 조건
- 우분투 22.04를 실행하는 서버.
- 서버 IP를 가리키는 유효한 도메인 이름.
- 서버에 구성된 루트 비밀번호.
필수 종속성 설치
시작하기 전에 패키지를 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령어로 업데이트할 수 있습니다:
apt update -y
apt upgrade -y시스템이 업데이트되면 다음 명령어로 모든 필수 패키지를 설치합니다:
apt-get install curl git build-essential apt-transport-https ca-certificates software-properties-common -y모든 종속성을 설치한 후 다음 단계로 진행할 수 있습니다.
Docker 및 Docker Compose 설치
기본적으로 우분투 22.04 기본 저장소에는 Docker 및 Docker Compose 패키지의 최신 버전이 없습니다. 따라서 APT에 Docker 공식 저장소를 추가해야 합니다.
먼저, 다음 명령어로 Docker GPG 키를 다운로드하고 추가합니다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg다음으로, 다음 명령어로 Docker 저장소를 추가합니다.
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저장소가 추가되면 다음 명령어로 저장소 캐시를 업데이트합니다.
apt update -y다음으로, 다음 명령어로 Docker와 Docker Compose를 모두 설치합니다.
apt install docker docker-compose -y두 패키지가 모두 설치되면 다음 명령어로 Docker 서비스를 시작하고 시스템 재부팅 시 자동으로 시작되도록 설정합니다:
systemctl start docker
systemctl enable docker다음 명령어로 Docker의 상태를 확인할 수 있습니다:
systemctl status docker다음과 같은 출력을 받아야 합니다:
? 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"
Docker 버전을 확인하려면 다음 명령어를 실행합니다:
docker --version다음과 같은 출력을 받아야 합니다:
Docker version 20.10.12, build 20.10.12-0ubuntu4
다음 명령어를 사용하여 Docker compose 버전도 확인할 수 있습니다:
docker-compose --version다음과 같은 출력을 받아야 합니다:
docker-compose version 1.29.2, build unknown
Sentry 설치
먼저, 다음 명령어를 사용하여 Git 저장소에서 Sentry의 최신 버전을 다운로드합니다:
git clone https://github.com/getsentry/onpremise다운로드가 완료되면 다운로드한 디렉토리로 이동하고 Sentry 설치 스크립트를 실행하여 설치를 시작합니다.
cd onpremise
bash install.sh설치 중에 아래와 같이 관리자 계정을 생성하라는 메시지가 표시됩니다:
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: [email protected]
Password:
Repeat for confirmation:
Added to organization: sentry
User created: [email protected]
Creating missing DSNs
Correcting Group.num_comments counter
-----------------------------------------------------------------
You're all done! Run the following command to get Sentry running:
docker-compose up -d
-----------------------------------------------------------------
다음으로, 다음 명령어를 사용하여 다운로드한 모든 이미지를 확인합니다.
docker images다음과 같은 출력을 받아야 합니다.
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 컨테이너 시작
이 시점에서 Sentry가 설치되었습니다. 이제 다음 명령어를 사용하여 Sentry 컨테이너를 시작할 수 있습니다:
docker-compose up -d이 명령어는 아래와 같이 Sentry의 모든 컨테이너를 시작합니다:
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
다음 명령어로 모든 컨테이너의 상태를 확인할 수 있습니다.
docker-compose ps다음과 같은 출력을 받아야 합니다.
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
작업이 완료되면 다음 단계로 진행할 수 있습니다.
Sentry 웹 UI 접근
이 시점에서 Sentry가 시작되었고 포트 9000에서 수신 대기 중입니다. 이제 웹 브라우저를 열고 URL http://your-server-ip:9000를 입력하여 Sentry 대시보드에 접근합니다. 아래와 같이 Sentry 로그인 페이지로 리디렉션됩니다:

관리자 사용자 이름, 비밀번호를 입력하고 로그인 버튼을 클릭합니다. 다음 페이지가 표시됩니다:


Sentry URL, 이메일 주소 및 SMTP 세부 정보를 입력하고 계속 버튼을 클릭합니다. 다음 페이지에서 Sentry 기본 대시보드를 볼 수 있습니다:

결론
이 가이드에서는 우분투 22.04에 Sentry를 설치하는 방법을 설명했습니다. 이제 조직에서 Sentry를 구현하여 전체 스택에서 애플리케이션을 실시간으로 추적할 수 있습니다. 질문이 있으면 언제든지 문의해 주세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.