Sentry-Release

EnoSoup·2021년 7월 23일
0

Sentry

목록 보기
1/2
post-thumbnail

Sentry 구조

AWS 연동 및 Sentry 내부 작동방식

  • Sentry 21.x.x 버전 이후부터 기존 방식과 다르게 Nginx Proxy Pass 방식을 사용하여 WEB 컨테이너(Django 기반)로 전달해주는 방식으로 변경.
  • Sentry-release 서버는 기존과 내부 작동방식만 다르며, AWS 서비스와 연결하여 사용하는 방식은 기존과 동일합니다.
  • Sentry 구축 간 HTTPS 연동불가 이슈
    Sentry 서버 구축 후 AWS ALB(SSL 인증서 추가)와 연동하는 과정 중에서 내부 Nginx 컨테이너에서 Port:443 요청 InBound를 하지 못하여 Port:9000 서비스를 할 수 없는 이슈가 발생.
    Sentry Main 소스코드 버전파일 “Nginx SSL” 설정을 사용한 방식으로 구성.
    AWS ALB 서비스로 SSL 설정 시 Sentry-Release 관리 페이지 버전 설치 및 사용
    Sentry-Release 관리 페이지 : https://github.com/getsentry/sentry/releases

구축 방법

Docker, Docker-compose, Git 설치

$ sudo yum -y update && sudo yum -y install docker git
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Docker 설정 및 Docker-compose 권한 설정

$ sudo systemctl enable docker
$ sudo systemctl start docker
$ sudo chown $USER /var/run/docker.sock

Sentry dir 생성 및 Script 설치

$ mkdir sentry
$ git clone https://github.com/getsentry/onpremise.git ./sentry

Sentry Config 설정

$ cd sentry/sentry
$ mv config.example.yml config.yml
$ mv requirements.example.txt requirements.txt
$ mv sentry.conf.example.py sentry.conf.py

$ cd sentry/sentry
-rw-rw-r-- 1 ec2-user ec2-user 3465  3월  4 05:33 config.yml
-rwxrwxr-x 1 ec2-user ec2-user  487  3월  4 05:22 entrypoint.sh
drwxrwxr-x 2 ec2-user ec2-user   94  3월  4 05:28 old
-rw-rw-r-- 1 ec2-user ec2-user   19  3월  4 05:22 requirements.txt
-rw-rw-r-- 1 ec2-user ec2-user 7497  3월  4 05:22 sentry.conf.py

Sentry 설치

$ cd sentry
$ sudo ./install.sh
합계 88
-rw-rw-r-- 1 ec2-user ec2-user  4733  3월  4 05:22 LICENSE
-rw-rw-r-- 1 ec2-user ec2-user  5399  3월  4 05:22 README.md
drwxrwxr-x 2 ec2-user ec2-user    24  3월  4 05:22 clickhouse
drwxrwxr-x 2 ec2-user ec2-user    45  3월  4 05:22 cron
-rw-rw-r-- 1 ec2-user ec2-user  9211  3월  4 05:29 docker-compose.yml
drwxrwxr-x 2 ec2-user ec2-user    64  3월  4 05:39 geoip
drwxrwxr-x 2 ec2-user ec2-user    47  3월  4 05:22 install
-rwxrwxr-x 1 ec2-user ec2-user 15898  3월  4 05:22 install.sh
drwxrwxr-x 2 ec2-user ec2-user    24  3월  4 05:22 nginx
drwxrwxr-x 2 ec2-user ec2-user    74  3월  4 05:39 relay
drwxrwxr-x 2 ec2-user ec2-user    52  3월  4 05:22 scripts
drwxrwxr-x 3 ec2-user ec2-user   102  3월  4 06:07 sentry
-rw-r--r-- 1 root     root     33567  3월  4 05:39 sentry_install_log-2021-03-04_05-33-28.txt
drwxrwxr-x 2 ec2-user ec2-user    50  3월  4 05:33 symbolicator
-rwxrwxr-x 1 ec2-user ec2-user  4711  3월  4 05:22 test.sh
drwxrwxr-x 2 ec2-user ec2-user    24  3월  4 05:22 zookeeper
 * 위 설정이 완료되면 install.sh 스크립트를 실행시켜 설치를 진행하면 되겠습니다.

Sentry 컨테이너 실행 및 확인

$ cd sentry
$ docker-compose up -d
$ docker-compose ps
                           Name                                          Command               State               Ports
------------------------------------------------------------------------------------------------------------------------------------
sentry_onpremise_clickhouse_1                                 /entrypoint.sh                   Up       8123/tcp, 9000/tcp, 9009/tcp
sentry_onpremise_cron_1                                       /etc/sentry/entrypoint.sh  ...   Up       9000/tcp
sentry_onpremise_geoipupdate_1                                /usr/bin/geoipupdate -d /s ...   Exit 1
sentry_onpremise_ingest-consumer_1                            /etc/sentry/entrypoint.sh  ...   Up       9000/tcp
sentry_onpremise_kafka_1                                      /etc/confluent/docker/run        Up       9092/tcp
sentry_onpremise_memcached_1                                  docker-entrypoint.sh memcached   Up       11211/tcp
sentry_onpremise_nginx_1                                      nginx -g daemon off;             Up       0.0.0.0:9000->80/tcp
sentry_onpremise_post-process-forwarder_1                     /etc/sentry/entrypoint.sh  ...   Up       9000/tcp
sentry_onpremise_postgres_1                                   docker-entrypoint.sh postgres    Up       5432/tcp
sentry_onpremise_redis_1                                      docker-entrypoint.sh redis ...   Up       6379/tcp
sentry_onpremise_relay_1                                      /bin/bash /docker-entrypoi ...   Up       3000/tcp
sentry_onpremise_sentry-cleanup_1                             /entrypoint.sh 0 0 * * * g ...   Up       9000/tcp
sentry_onpremise_smtp_1                                       docker-entrypoint.sh exim  ...   Up       25/tcp
sentry_onpremise_snuba-api_1                                  ./docker_entrypoint.sh api       Up       1218/tcp
sentry_onpremise_snuba-cleanup_1                              /entrypoint.sh */5 * * * * ...   Up       1218/tcp
sentry_onpremise_snuba-consumer_1                             ./docker_entrypoint.sh con ...   Up       1218/tcp
sentry_onpremise_snuba-outcomes-consumer_1                    ./docker_entrypoint.sh con ...   Up       1218/tcp
sentry_onpremise_snuba-replacer_1                             ./docker_entrypoint.sh rep ...   Up       1218/tcp
sentry_onpremise_snuba-sessions-consumer_1                    ./docker_entrypoint.sh con ...   Up       1218/tcp
sentry_onpremise_snuba-subscription-consumer-events_1         ./docker_entrypoint.sh sub ...   Up       1218/tcp
sentry_onpremise_snuba-subscription-consumer-transactions_1   ./docker_entrypoint.sh sub ...   Up       1218/tcp
sentry_onpremise_snuba-transactions-consumer_1                ./docker_entrypoint.sh con ...   Up       1218/tcp
sentry_onpremise_subscription-consumer-events_1               /etc/sentry/entrypoint.sh  ...   Up       9000/tcp
sentry_onpremise_subscription-consumer-transactions_1         /etc/sentry/entrypoint.sh  ...   Up       9000/tcp
sentry_onpremise_symbolicator-cleanup_1                       /entrypoint.sh 55 23 * * * ...   Up       3021/tcp
sentry_onpremise_symbolicator_1                               /bin/bash /docker-entrypoi ...   Up       3021/tcp
sentry_onpremise_web_1                                        /etc/sentry/entrypoint.sh  ...   Up       9000/tcp
sentry_onpremise_worker_1                                     /etc/sentry/entrypoint.sh  ...   Up       9000/tcp
sentry_onpremise_zookeeper_1                                  /etc/confluent/docker/run        Up       2181/tcp, 2888/tcp, 3888/tcp

Sentry Install Script(설치 및 컨테이너 기동)

#!/bin/bash

sudo yum -y update
sudo yum -y install docker git
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo systemctl enable docker
sudo systemctl start docker
sudo chown $USER /var/run/docker.sock

git clone https://github.com/getsentry/onpremise.git /home/ec2-user/sentry
sudo mv /home/ec2-user/sentry/sentry/config.example.yml /home/ec2-user/sentry/sentry/config.yml
sudo mv /home/ec2-user/sentry/sentry/requirements.example.txt /home/ec2-user/sentry/sentry/requirements.txt
sudo mv /home/ec2-user/sentry/sentry/sentry.conf.example.py /home/ec2-user/sentry/sentry/sentry.conf.py

cd sentry
sudo ./install.sh
docker-compose up -d

Sentry 사용자 계정 생성

  • Sentry 사용자 계정 생성은 “sentry_onpremise_web_1” 컨테이너에 접속하여 “sentry shell” 명령을 사용하여 계정을 생성해야 한다.
    서버 초기 설정은 smtp 서비스 미 구축으로 인해 WEB 페이지에서 계정생성 불가
$ docker exec -it sentry_onpremise_web_1 /bin/bash
root@49a1bbb966ee:/# sentry createuser
06:32:31 [INFO] sentry.plugins.github: apps-not-configured
* Unknown config option found: 'slack.legacy-app'
Email: sg.kim@plateer.com
Password: "input password"
Repeat for confirmation:
Should this user be a superuser? [y/N]: y
User created: sg.kim@plateer.com
Added to organization: sentry

Sentry 접속

Login

Sentry 초기 접속 화면

Sentry 프로젝트 생성 화면

Sentry Issues 화면

profile
Cloud Engineer@Plateer. 클라우드 상에서 엔지니어링을 재미있게 하는 엔지니어입니다.

0개의 댓글