2019. 3. 27. 18:44ㆍ[정리] 기능별 개념 정리/Sentry
공식링크 : https://docs.sentry.io/server/installation/python/
참고링크 : https://blog.outsider.ne.kr/928
참고링크 : https://www.lesstif.com/pages/viewpage.action?pageId=30705079
추신) 도커파일도 있었다. : https://hub.docker.com/r/getsentry/sentry-cli
센트리를 설치하기 위한 폴더를 하나 생성해줍니다.
저는 ~/Desktop/LocalSentry/sentry 로 폴더를 만들어줬습니다.
이렇게 지정했을 때 최종적으로 설치가 완료되면 다음과 같은 디렉토리 구조를 가집니다.
Sentry 가상 환경을 돌리기위한 지정 경로 : ~/Desktop/LocalSentry/sentry
Sentry 가 실행 파일이 설치되는 경로 : ~/Desktop/LocalSentry/sentry/bin/sentry
Sentry 가 실제 소스가 설치되는 경로 : ~/Desktop/LocalSentry/sentry/lib/python2.7/site-packages/sentry
삽질 주의 ! : 파이썬 2.7 버전을 사용해야합니다.
-> 센트리가쓰는 Beautiful soup이 3 버전인데 이것이 python 3.x 으로는 호환이 안되기 때문입니다. 테스트 에러가 발생합니다.
-> mac은 python 2.7 버전이 자동으로 설치되어있으니 넘어갑니다.
1. 파이썬 라이브러리 설치를 위한 pip, setuptools 설치합니다
pip install --upgrade pip
pip install --upgrade setup tools
sudo easy_install -UZ virtualenv
# virtualenv는 파이썬 가상환경을 위해 필요한 파일입니다.
2. Sentry 구동을 위하여 Sentry가 사용하는 Redis, PostgreSQL 설치합니다.
brew install redis
brew install postgresql
3. PostgreSQL에 template1이라는 이름으로 데이터베이스를 하나 만들고 센트리가 접근 가능한 계정을 만들어줍니다.
cd /usr/local/var/postgres
open postgresql.conf
listen_addresses = 'localhost'
psql -d template1
template1= # ALTER USER 컴퓨터_사용자_이름 with encrypted password ‘원하는 패스워드’;
# 내 컴퓨터의 사용자 이름이 무엇인지 모르겠다면 psql 에서 \du 를 해서 찾아봅니다.
4. 센트리를 위한 파이썬 가상환경을 설치하고 가상환경을 활성화 시킵니다.
virtualenv ~/Desktop/LocalSentry/sentry --python=python2.7
source ~/Desktop/LocalSentry/sentry/bin/activate
# 터미널 커맨드 앞에 (sentry) 가 붙여서 나온다면 가상환경이 제대로 활성화 된 것 입니다.
# 앞으로 센트리를 구동할 때는 source ~/Desktop/LocalSentry/sentry/bin/activate 를 입력하고 가상환경을 활성화 하여 실행시켜야 합니다.
5. 센트리 설치 및 센트리 초기화 파일을 생성합니다.
pip install -U sentry
sentry init
# sentry init을 통해서 sentry.conf.py 파일이 생성됩니다.
# sentry init 할 때 sentry init ~/Desktop/LocalSentry/.sentry와 같이 설정 파일의 경로를 지정해줄 수도 있습니다.
# 다만 그 이후 매번 모든 키워드에 SENTRY_CONF=~/Desktop/LocalSentry/ 을 추가로 입력해줘야하므로 생략합니다.
6. 센트리를 PostgreSQL과 연동합니다.
# 설정파일을 열고 파일내용을 수정해줍니다.
# 주석을 해제하고 3번에서 지정한 DB, 유저, 패스워드를 입력하면 됩니다.
open ~/.sentry/sentry.conf.py
DATABASES = { 'default': { 'ENGINE': 'sentry.db.postgres', 'NAME': 'template1', 'USER': '컴퓨터_사용자_이름', 'PASSWORD': '원하는 패스워드', 'HOST': '', 'PORT': '', 'AUTOCOMMIT': True, 'ATOMIC_REQUESTS': False, }
}
SENTRY_WEB_OPTIONS = { 'workers': 2 } |
sentry upgrade
7. 센트리 구동을 위한 명령어
sentry run web&
sentry run worker&
sentry run cron&
# 이후 localhost:9000 으로 접근해봅니다.
# Oops! Something went wrong 하면서 안됩니다.
8. 센트리 DB에 아무런 프로젝트가 없어서 초기에 에러가 발생한다고 합니다. sentry shell을 켜고 기본 프로젝트를 생성해줘야합니다.
sentry shell
from sentry.models import Project
from sentry.receivers.core import create_default_projects
create_default_projects([Project])
# 쉘을 켜고 위에 세줄을 입력해주면 됩니다.
# 출처 : https://github.com/getsentry/sentry/issues/8862
# 다시 localhost:9000 으로 접근해보면 이제 로그인창이 나옵니다.
9. 센트리 웹에서 접근가능한 회원을 가입해줘야합니다.
# 그런데 센트리 계정을 만들려고 sentry createuser를 하면 장문의 에러와함께 psql에 시퀀스 함수가 없다고 안됩니다,
# createuser 하기전에 PostgreSQL에서 시퀀스를 생성해줘야합니다.
# 출처 : https://github.com/getsentry/sentry/issues/9270
psql -d template1
create or replace function sentry_increment_project_counter( project bigint, delta int) returns int as $$ declare new_val int; begin loop update sentry_projectcounter set value = value + delta where project_id = project returning value into new_val; if found then return new_val; end if; begin insert into sentry_projectcounter(project_id, value) values (project, delta) returning value into new_val; return new_val; exception when unique_violation then end; end loop; end $$ language plpgsql;
sentry createuser
# 아이디 패스워드 입력합니다.
# localhost:9000/에 접근하여 아이디와 패스워드를 입력합니다.
10. 센트리 웹으로 다시 접근합니다.
superuser로 첫 로그인을 하게되면 센트리의 root url을 지정해달라는 폼이 나옵니다.
Root URL 은 localhost:9000 으로 지정해줍니다.
'[정리] 기능별 개념 정리 > Sentry' 카테고리의 다른 글
Sentry on-premise 로컬 서버 start, stop 쉘스크립트 (0) | 2019.04.01 |
---|---|
sentry-cli를 통해 JS source map 업로드하기 (0) | 2019.03.29 |
센트리 자바스크립트 샘플 코드 (0) | 2019.03.27 |
센트리 자바 샘플 코드 (0) | 2019.03.27 |