搭建 sentry 追蹤 Laravel 生產環境 bug

it書童發表於2019-08-19

未上線的程式碼無論再測試,也不可能保證全無 bug ,很多 bug 一直隱藏在某個陰暗的角落,邪惡又猥瑣地等著你將其部署上線,然後在某個條件的觸發下,開始興風作浪...

線上上除錯是程式設計師的惡夢,對於初級程式設計師來說更是如此。相當於給正在飛行的飛機更換重要零件,而且還不能讓旅客有所感知。

這時候,就需要有一款 bug 監控系統,能在第一時間將各種異常捕獲,併傳送郵件提醒。你能看到異常的詳細資訊,能在客戶,尤其是老闆感知之前把 bug 先處理了。營造一種現世安好,天下太平的現象,畢竟,穩穩的幸福,是每個人的追求。

Sentry, 就是這樣一款工具。

對於 sentry 不瞭解的同學,先到官網看下 demo 演示,官方也提供免費服務,只是每月的異常提醒次數有限,僅作為體驗。

此外由於是國外伺服器,由於眾所周知的原因,訪問並不方便,幸好這是開源產品,我們可以在自己的伺服器搭建

官方推薦用 docker 搭建,詳細版見 官方文件

首先要安裝 docker ,詳情見 centos搭建docker及docker-compose

然後下載 sentry 倉庫

$ git clone https://github.com/getsentry/onpremise.git

構建 sentry

$ cd onpremise
$ ./install.sh

構建過程中會提示你輸入賬號密碼,用你的郵箱作為賬號,以後該郵箱也用於接收郵件,奇怪的是,在構建時可以用 qq 郵箱,後面在專案中邀請成員卻不能用,因此建議統一不用 qq 郵箱,可以用 163 或者 foxmail 等

安裝完成後,執行以下命令讓 sentry 服務在後臺執行

$ docker-compose up -d

瀏覽器訪問:http://你的伺服器ip:9000

sentry

郵件傳送的設定,以騰訊企業郵箱為例,在目錄下的 docker-compose.yml 新增配置:

SENTRY_EMAIL_HOST: smtp.exmail.qq.com
SENTRY_EMAIL_USER: 你的郵箱地址
SENTRY_EMAIL_EMAIL: 你的郵箱地址
SENTRY_EMAIL_PASSWORD: 授權碼
SENTRY_EMAIL_USE_TLS: 'true'
SENTRY_EMAIL_PORT: 587

重啟 sentry 服務

docker-compose down && docker-compose up -d

新建 laravel 專案,按 sentry 所指示的進行配置即可

相關文章