설치 방법
Sentry CLI는 다양한 운영 체제와 환경에서 사용할 수 있도록 여러 설치 옵션을 제공합니다.
수동 다운로드
GitHub 릴리스 페이지에서 각 플랫폼(Linux, macOS, Windows)에 맞는 실행 파일을 직접 다운로드할 수 있습니다. 받은 파일을 sentry-cli 또는 sentry-cli.exe로 이름을 변경하여 사용하면 됩니다.
자동 설치 스크립트 (macOS/Linux)
cURL 명령어를 통해 최신 버전을 자동으로 설치할 수 있습니다:
curl -sL https://sentry.io/get-cli/ | bash
설치 후 관리자 권한이 필요할 경우 sudo 비밀번호 입력을 요청할 수 있습니다. 정상 설치 여부는 다음 명령어로 확인 가능합니다:
sentry-cli --help
NPM을 통한 설치
빌드 서버나 CI 환경에서는 npm 패키지를 활용하는 것이 편리합니다:
npm install @sentry/cli
설치 후 프로젝트 내에서 다음과 같이 실행할 수 있습니다:
./node_modules/.bin/sentry-cli --help
전역 설치 시에는 --unsafe-perm 플래그가 필요할 수 있으나, 일반적으로 추천하지 않습니다:
sudo npm install -g @sentry/cli --unsafe-perm
커스텀 CDN 설정
기본적으로 Fastly 기반 CDN에서 바이너리를 다운로드하지만, 내부 미러를 사용하려면 다음 중 하나의 방법으로 설정할 수 있습니다:
- NPM config 지정:
npm install @sentry/cli --sentrycli_cdnurl=https://my-mirror.local/path - .npmrc 파일에 추가:
sentrycli_cdnurl=https://my-mirror.local/path - 환경 변수 사용:
SENTRYCLI_CDNURL=https://my-mirror.local/path npm install @sentry/cli
패키지 매니저 사용
macOS 사용자는 Homebrew로 간편하게 설치할 수 있습니다:
brew install getsentry/tools/sentry-cli
Windows 사용자는 Scoop을 이용할 수 있습니다:
scoop install sentry-cli
Docker 이미지 활용
특정 환경이나 CI 파이프라인에서는 Docker 이미지를 사용하는 것이 유용합니다:
docker pull getsentry/sentry-cli
docker run --rm -v $(pwd):/work getsentry/sentry-cli --help
현재 디렉터리를 /work에 마운트하여 로컬 파일 접근이 가능하도록 구성됩니다.
인증 및 환경 설정
대부분의 CLI 기능은 Sentry 인스턴스와의 인증이 필요합니다. 다음 범위(scope)를 포함하는 토큰이 요구됩니다:
project:readproject:releasesorg:read
로그인 절차
간편한 인터랙티브 로그인:
sentry-cli login
자체 호스팅 환경일 경우 URL을 명시해야 합니다:
sentry-cli --url https://my-sentry-server.com/ login
수동 토큰 설정
다음 중 한 가지 방법으로 인증 정보를 제공할 수 있습니다:
- 환경 변수:
export SENTRY_AUTH_TOKEN=your_token_here - 명령어 인자:
sentry-cli --auth-token your_token_here [command] - 설정 파일(~/.sentryclirc):
[auth] token = your_token_here
기타 구성 항목
다음과 같은 주요 설정값을 환경 변수 또는 설정 파일로 지정할 수 있습니다:
| 환경 변수 | 설명 |
|---|---|
SENTRY_URL |
Sentry 서버 주소 (기본값: https://sentry.io) |
SENTRY_ORG |
조직 식별자(slug) |
SENTRY_PROJECT |
프로젝트 식별자(slug) |
SENTRY_LOG_LEVEL |
로그 출력 수준(info, warn 등) |
SENTRY_HTTP_MAX_RETRIES |
업로드 재시도 횟수 |
설정 확인
구성 상태를 점검하려면 다음 명령을 사용하세요:
sentry-cli info
릴리스 관리
Sentry CLI는 애플리케이션 배포와 연계된 릴리스 정보를 관리하는 핵심 도구입니다.
릴리스 생성
새 릴리스를 생성하려면 고유한 버전 식별자가 필요합니다:
sentry-cli releases new "v1.0.0"
릴리스 이름은 특수 문자(/,\,공백 등)를 포함할 수 없으며 최대 200자까지 가능합니다. 모바일 앱의 경우 package@version 형식을 권장합니다.
자동 버전 제안
Git 저장소 기반 프로젝트에서는 커밋 해시를 기반으로 한 버전을 자동 생성할 수 있습니다:
VERSION=$(sentry-cli releases propose-version)
릴리스 완료 처리
생성된 릴리스는 기본적으로 미완료 상태이며, 다음 명령으로 완료 상태로 전환할 수 있습니다:
sentry-cli releases finalize "v1.0.0"
또는 생성 시 바로 완료 처리할 수 있습니다:
sentry-cli releases new "v1.0.0" --finalize
커밋 연동
릴리스에 관련된 커밋을 자동으로 연결할 수 있습니다:
sentry-cli releases set-commits "v1.0.0" --auto
저장소 접근이 불가능한 환경에서는 수동으로 커밋을 지정할 수 있습니다:
sentry-cli releases set-commits "v1.0.0" --commit "repo-name@abc123def"
이전 커밋 기준을 명시하려면 범위를 지정합니다:
sentry-cli releases set-commits "v1.0.0" --commit "repo-name@prev..current"
아티팩트 업로드
특히 JavaScript 프로젝트에서는 소스맵을 업로드하여 오류 추적 정확도를 높일 수 있습니다:
sentry-cli releases files "v1.0.0" upload-sourcemaps ./dist/js
주요 옵션:
--url-prefix: 원격 경로 접두사 지정 (예:~/static/js)--strip-common-prefix: 공통 로컬 경로 제거--ignore-file .sentryignore: 무시할 파일 패턴 지정--validate: 업로드 전 소스맵 유효성 검사
배포(Deploy) 기록
릴리스를 특정 환경에 배포했음을 기록할 수 있습니다:
sentry-cli releases deploys "v1.0.0" new -e production
배포 시간도 함께 기록할 수 있습니다:
start_time=$(date +%s)
# ... 배포 작업 수행 ...
end_time=$(date +%s)
sentry-cli releases deploys "v1.0.0" new -e staging -t $((end_time - start_time))
디버그 심볼 관리
네이티브 앱(iOS, Android 등)의 충돌 분석을 위해 디버그 심볼 파일(dSYM, PDB 등)을 업로드할 수 있습니다.
파일 확인
업로드 가능한 디버그 정보 파일인지 확인:
sentry-cli difutil check MyApp.app.dSYM
디버그 파일 업로드
다음 명령어로 디버그 심볼을 업로드합니다:
sentry-cli upload-dif -o my-org -p my-project /path/to/symbols
서버 처리 완료까지 대기하려면 --wait 플래그를 사용합니다:
sentry-cli upload-dif --wait -o my-org -p my-project /path/to/symbols
소스 번들 생성
스택 트레이스에 소스 코드 컨텍스트를 표시하기 위해 소스 번들을 생성할 수 있습니다:
sentry-cli difutil bundle-sources /path/to/debug/files
업로드 시 즉시 생성하려면:
sentry-cli upload-dif --include-sources /path/to/files
ProGuard 매핑 파일 업로드 (Android)
난독화된 Android 앱의 역추적을 위해 ProGuard 매핑 파일을 업로드합니다:
sentry-cli upload-proguard \
--write-properties app/build/generated/sentry.properties \
app/build/outputs/mapping/release/mapping.txt
--write-properties 옵션은 UUID 값을 속성 파일에 자동으로 기록합니다.
이벤트 전송
테스트 목적이나 스크립트 오류 모니터링을 위해 CLI를 통해 직접 이벤트를 전송할 수 있습니다. 먼저 DSN을 설정해야 합니다:
export SENTRY_DSN=https://public-key@o0.ingest.sentry.io/0
기본 메시지 전송
sentry-cli send-event -m "서비스 시작 완료"
파라미터화된 메시지
sentry-cli send-event -m "사용자 %s 생성됨" -a "alice"
로그 파일 및 추가 데이터
로그 파일을 크럼블(빵조각) 형태로 포함할 수 있습니다:
sentry-cli send-event -m "실패 발생" --logfile app.log
태그와 추가 정보도 전달 가능:
sentry-cli send-event -m "오류" -t env:prod -e user_id:123
Bash 오류 훅
스크립트에서 발생하는 오류를 자동으로 전송하려면 다음을 사용합니다:
#!/bin/bash
export SENTRY_DSN=https://public-key@o0.ingest.sentry.io/0
eval "$(sentry-cli bash-hook)"
# 스크립트 본문
이후 스크립트 내에서 처리되지 않은 오류는 자동으로 Sentry로 전송됩니다.