Docker部署Sentry+Django(日誌收集框架)
介紹
Sentry是一個實時的錯誤日誌收集平臺,支持多種語言及框架,支持異常郵件告警等,部署簡單,功能強大,本文主要介紹使用docker部署sentry,並把我們的django項目配置為使用sentry進行異常信息收集,sentry提供的web界面如圖:
Docker部署
docker run -d --name sentry-redis redisdocker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres# 生成祕鑰,後面的容器執行都使用這個docker run --rm sentry config generate-secret-key# r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j# 初始化docker run -it --rm -e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade# 如果發現無法收到告警郵件,或者可以收到測試郵件,但無法收到告警郵件,配置環境變量如下docker run -d --name my-sentry \-p 9000:9000 \-e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' \-e SENTRY_EMAIL_HOST='mail.xxx.com' \-e SENTRY_EMAIL_PORT='587' \-e SENTRY_EMAIL_USER='[email protected]' \-e SENTRY_EMAIL_PASSWORD='xxx' \-e SENTRY_EMAIL_USE_TLS=True \-e SENTRY_SERVER_EMAIL='[email protected]' \--link sentry-postgres:postgres \--link sentry-redis:redis sentrydocker run -d --name sentry-cron \-e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' \-e SENTRY_EMAIL_HOST='mail.xxx.com' \-e SENTRY_EMAIL_PORT='587' \-e SENTRY_EMAIL_USER='[email protected]' \-e SENTRY_EMAIL_PASSWORD='xxx' \-e SENTRY_EMAIL_USE_TLS=True \-e SENTRY_SERVER_EMAIL='[email protected]' \--link sentry-postgres:postgres \--link sentry-redis:redis sentry run crondocker run -d --name sentry-worker \-e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' \-e SENTRY_EMAIL_HOST='mail.xxx.com' \-e SENTRY_EMAIL_PORT='587' \-e SENTRY_EMAIL_USER='[email protected]' \-e SENTRY_EMAIL_PASSWORD='xxx' \-e SENTRY_EMAIL_USE_TLS=True \-e SENTRY_SERVER_EMAIL='[email protected]' \--link sentry-postgres:postgres \--link sentry-redis:redis sentry run worker
創建管理員賬號
docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry createuser
配置Django項目
訪問sentry(http://ip:9000)
點擊new project,選擇django確定,按提示在你django項目中進行如下配置
安裝raven
pip install raven --upgrade
在settings中增加app
INSTALLED_APPS = ( 'raven.contrib.django.raven_compat',)
在settings中設置(dsn在提示中可以看到,也可以在project設置中看到)
import ravenRAVEN_CONFIG = { 'dsn': 'http://b292277ff0444d12b24208496156f180:[email protected]:9000/3',}
然後觸發代碼異常,可以發現sentry異常提示信息,並且可以收到郵件告警
捕獲404異常,需要在配置的MIDDLEWARE中加如下配置
'raven.contrib.django.raven_compat.middleware.Sentry404CatchMiddleware',
其他
如docker中提示vim: command not found
apt-get update
apt-get install vim
相關推薦
推薦中...