Sentry日志監(jiān)控系統(tǒng)基本介紹及部署使用

Sentry簡介
在程序的開發(fā)過程中,代碼運行時難免會拋出異常,而且項目在部署到測試、生產(chǎn)環(huán)境后,我們便不可能像在開發(fā)時那樣容易的及時發(fā)現(xiàn)處理錯誤了。
一般我們都是在錯誤發(fā)生一段時間后,錯誤信息才會傳遞到開發(fā)?員那里,然后一頓操作查看程序運行的日志,但是往往我們會因為日志中缺少上下文關(guān)系,導(dǎo)致很難分析真正的錯誤是什么。
Sentry由此應(yīng)運而生成為了解決這個問題的一個很好的工具,設(shè)計了諸多特性幫助開發(fā)者更快、更方便、更直觀的監(jiān)控錯誤信息。
Sentry是什么?Sentry是程序的哨兵,它可以監(jiān)控我們在生產(chǎn)環(huán)境中項目的運行狀態(tài),一旦某段代碼運行報錯,或者異常,會第一時間把報錯的路由,異常文件,請求方式 等一些非常詳細(xì)的信息以消息或者郵件給我們,讓我們第一時間知道:程序出錯了,然后我們可以從Sentry給我們的詳細(xì)的錯誤信息中瞬間找到我們需要處理的代碼,從而快速地修復(fù)Bug。
Sentry是一個集中式日志管理系統(tǒng),它具備以下優(yōu)點:
- 多項目,多用戶
- 界面友好
- 可以配置異常觸發(fā)規(guī)則,例如監(jiān)控到程序出現(xiàn)異常后發(fā)送郵件
- 支持多種主流語言和框架,如 React、Angular、Node、Django、PHP、Android、.NET、JAVA等
Sentry目前支持的語言和框架眾多,下面展示一部分:

Sentry部署
sentry分為收費版和免費自建版,本文主要是介紹免費版。官方提供了docker-compose,也是它推薦的部署方式,參考地址https://github.com/getsentry/onpremise。部署要求如下:
- Docker 19.03.6+
- Compose 1.28.0+
- Python 3
- 4 核
- 8 GB 內(nèi)存
- 20 GB 可用磁盤空間
本篇僅介紹在ubuntu18.04下的安裝。
1、安裝docker
sudo apt-get remove docker docker-engine docker-ce docker.io
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
sudo systemctl start docker
2、安裝docker-compose
sudo apt-get install python-pip
sudo pip install docker-compose
3、安裝git
sudo apt-get update -y
sudo apt install git
4、sentry部署
git clone https://github.com/getsentry/onpremise.git
cd onpremise
sudo ./install.sh
安裝期間定義用戶名和密碼
Email:[xxxxxxxx.com](mailto:326968597.com)
Pawword:xxxxxx
5、啟動
`sudo docker-compose up -d`
6、登錄sentry客戶端
打開瀏覽器輸入:http://ip:9000/,即可顯示如下圖:

Sentry使用
本篇僅介紹在django中的應(yīng)用,其它語言自行閱讀官方文檔。
1、安裝依賴
pip install --upgrade sentry-sdk
2、在settings.py中配置
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn="https://xxxxxxxxxxxx.sentry.io/0",
integrations=[DjangoIntegration()],
traces_sample_rate=1.0,
send_default_pii=True,
)
3、驗證您的 Sentry 安裝
from django.urls import path
def trigger_error(request):
division_by_zero = 1 / 0
urlpatterns = [
path('sentry-debug/', trigger_error),
]
添加完成之后我們訪問這個路由,我們可以在Sentry后臺看到告警信息如下圖:
























