Sentry異常捕獲平臺

本文包括Sentry平臺的介紹,以及環境搭建兩部分,更多細節請查閱官方文檔。web

簡介

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

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

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

環境搭建

Sentry可使用Python2.7搭建,也能夠利用Docker直接部署。考慮到目前大部分用戶已經使用Python3,直接安裝Sentry可能弄亂Python環境,所以強烈推薦使用Docker搭建Sentry環境ruby

如下是Docker搭建Sentry平臺的步驟,請保證每一步執行完成:框架

  1. 啓動一個 Redis 容器:
$ docker run -d --name sentry-redis redis 
  1. 啓動一個 Postgres 容器
$ docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres 
  1. 生成一個密鑰,用於在後面全部sentry容器之間握手。請記住這串密鑰,在後面的docker命令中,密鑰須要以環境變量形式傳入。
$ docker run --rm sentry config generate-secret-key 
  1. 鏈接Redis、Postgres和Sentry,運行後會自動執行初始化操做:
$ docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade 
  1. 啓動 Sentry Server,同時添加端口映射。Sentry的端口爲9000,可使用 -p 9000:9000 參數,在啓動後能夠經過訪問http://localhost:9000http://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 
  1. 默認配置中須要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 

Sentry配置

進入Web管理頁面後,按照提示配置管理員帳號密碼與其餘信息。注意:URL填寫你所訪問的地址,如http://host-ip:9000運維

配置成功後,按順序進入Project-internal-Setting頁面, 選擇右側Release標籤curl

選擇Release

複製WEBHOOK中的curl命令,打開終端發送請求,便可在頁面上看到測試的錯誤日誌信息:編程語言

捕獲到的異常詳情

參考

做者:嚴北 連接:https://www.jianshu.com/p/ca4ad23a2dd6 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索