Sentry 是一款可用於Production環境的錯誤跟蹤工具,可實時通知Production環境中用戶因爲一些不可預料行爲(或者程序寫的有問題)致使程序Crash或Exception,Sentry能夠經過Integration如HipChat來發送通知,而且能夠經過JIRA Integration來快速建立Issue,而後開發者能夠根據這個Issue快速修復程序,並把這個已修復的Hotfix快速部署到生產環境,這樣就快速開發快速修補。python
安裝依賴軟件
安裝Sentry須要如下知足如下條件:web
基於UNIX的操做系統redis
PostgreSQL:版本
9.5
以上,推薦最新版本9.6
sqlRedis:最低版本
2.8.9
, 推薦2.8.18
,3.0
數據庫Python 2.7 +django
Pip 8.1+vim
安裝下列軟件:python-setuptools python-dev libxslt1-dev gcc libffi-dev libjpeg-dev libxml2-dev libxslt-dev ibyaml-dev libpq-devcentos
yum -y install openssl-devel python-develbash
yum -y install libjpeg-turbo-develdom
yum -y install postgresql96-devel.x86_64
安裝PostgreSQL
安裝新版的yum源
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm經過postgreSQL安裝postgresql96
、postgresql96-devel
、postgresql96-libs
、postgresql96-server
四項便可。
至此,新版 PostgreSQL
就安裝好了,接下來是作些鏈接配置:
$ vim /var/lib/pgsql/9.6/data/pg_hba.conf
將相關鏈接的 Method
改成 trust
:
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 ident #host replication postgres ::1/128 ident
安裝redis相對簡單,使用 yum
安裝便可
####For centos6 #yum安裝redis yum -y install redis # 開啓redis /etc/init.d/redis start #保持redis開機自啓動 chkconfig redis on
安裝virtualenv
$ # 安裝環境 $ pip install -U virtualenv $ virtualenv /www/sentry/ $ source /www/sentry/bin/activate $ # 安裝sentry $ pip install -U sentry
1.Error: pg_config executable not found.
處理方法:把pg_config所在目錄加入到環境變量。
初始化配置,若是不設置路徑的話,默認會生成在 ~/.sentry
目錄中,推薦使用默認路徑。初始化配置包含兩個文件,分別是 config.yml
和 sentry.conf.py
。
$ sentry init
郵件配置項保存在 config.yml 文件中,Sentry 收到異常時會給本身的郵箱發送郵件通知, 因此須要配置下郵件,固然也能夠不啓用,但不建議這樣作。 # 若是不想啓用郵件通知,能夠將 mail.backend 設置爲 dummy mail.backend: 'smtp' mail.host: 'localhost' mail.port: 25 mail.username: '' mail.password: '' mail.use-tls: false mail.from: 'sentry@localhost'
數據庫配置項保存在 sentry.conf.py
文件中,使用默認便可,只須要修改 HOST
和 PORT
項。
# ~/.sentry/sentry.conf.py # for more information on DATABASES, see the Django configuration at: # https://docs.djangoproject.com/en/1.6/ref/databases/ DATABASES = { 'default': { 'ENGINE': 'sentry.db.postgres', 'NAME': 'sentry', 'USER': 'postgres', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '5432', } }
建立數據庫
createdb -U postgres -E utf-8 sentry
執行數據更新,數據填充完成後會提示是否建立用戶,能夠選擇不建立後續再建立
$ sentry upgrade $ # 若是沒有使用默認目錄的話,須要使用以下命令 $ # SENTRY_CONF=/path/to/sentry sentry upgrade
建立用戶,須要填寫郵箱和密碼,建立好後會提示是否做爲超級用戶,根據本身狀況選擇便可。
$ sentry createuser $ # 若是沒有使用默認目錄的話,須要使用以下命令 $ # SENTRY_CONF=/path/to/sentry sentry createuser
開啓 web
服務,開啓後能夠訪問 http://[IP或域名]:[前面配置的端口]
進行訪問。
初始化配置,若是不設置路徑的話,默認會生成在 ~/.sentry
目錄中,推薦使用默認路徑。初始化配置包含兩個文件,分別是 config.yml
和 sentry.conf.py
。
$ sentry run web $ # 若是沒有使用默認目錄的話,須要使用以下命令 $ # SENTRY_CONF=/path/to/sentry sentry run web
開啓後臺 worker
服務
sentry run worker worker服務默認不可以使用Root帳號啓動,使用一下命令可用root用戶啓動 $ # export C_FORCE_ROOT="true" $ # 若是沒有使用默認目錄的話,須要使用以下命令 $ # SENTRY_CONF=/path/to/sentry sentry run worker
開啓 cron
進程
$ sentry run cron $ # 若是沒有使用默認目錄的話,須要使用以下命令 $ # SENTRY_CONF=/path/to/sentry sentry run cron
關閉自動註冊
在sentry.conf.py文件中添加如下兩行,並重啓服務 SENTRY_FEATURES['auth:register'] = False SENTRY_FEATURES['social-auth:register'] = False