Docker搭建Sentry環境


Sentry簡介

Sentry是一個實時事件的日志聚合平台。它專門監測錯誤並提取所有有用信息用於分析,不再麻煩地依賴用戶反饋來定位問題。

Sentry發展多年,幾乎沒有同類產品可與其媲美。它能覆蓋大部分的主流編程語言與框架,很適合應用到實際生產環境中采集異常日志。

最近我在設計持續交付流程過程時,公司一位前輩提到這個工具與用法。簡單搭建並使用之后,基本確定在CD的灰度發布環節應用Sentry:若在灰度過程中獲取到異常則觸發灰度結束,將可能出現的異常由
“上線-客戶發現問題- 反饋問題-運維手動回滾”
變為
“灰度-Sentry捕獲異常-自動停止灰度”,杜絕了回滾帶來的不好形象,同時也能縮短問題發現的周期。

環境搭建

1.啟動一個Redis容器:

$ docker run -d --name sentry-redis redis

2.啟動一個Postgres容器

$ docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres

3.生成一個密鑰,用於后面所有sentry容器之間握手。請記住這串密鑰,在后面的docker命令中,密鑰需要以環境變量形式傳入

$ docker run --rm sentry config generate-secret-key

4.連接Redis、Postgres和Sentry,運行后會自動執行初始化操作:

$ docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
此處執行過程中會提示創建賬號和密碼,如果此處不想創建,等所有步驟執行完成后,再運行命令來創建: docker exec -it my-sentry /bin/sh ==> sentry createuser

5.啟動Sentry Server,同時添加端口映射。Sentry的端口為9000,可以使用 -p 9000:9000參數,再啟動后可以通過訪問http://localhost:9000或http://host-ip:9000進入Sentry的web管理頁面:

$ docker run -d --name my-sentry -p 9000:9000 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry

6.默認配置中需要Celery,因此啟動一個Celery主節點與執行節點(worker節點可按需多啟幾個):

$ docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
$ docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker

然后直接訪問即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM