Docker部署Sentry+Django(無法收到告警郵件解決)

docker部署

docker run -d --name sentry-redis redis

docker 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 sentry

docker 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 cron

docker 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 raven

RAVEN_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

發佈了36 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章