Docker部署Sentry+Django(日誌收集框架)

Docker Django Redis NoSQL pythonquantum pythonquantum 2017-10-04

介紹

Sentry是一個實時的錯誤日誌收集平臺,支持多種語言及框架,支持異常郵件告警等,部署簡單,功能強大,本文主要介紹使用docker部署sentry,並把我們的django項目配置為使用sentry進行異常信息收集,sentry提供的web界面如圖:

Docker部署Sentry+Django(日誌收集框架)

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

相關推薦

推薦中...