Sentry日志監(jiān)控系統(tǒng)基本介紹及部署使用
Sentry簡(jiǎn)介
在程序的開(kāi)發(fā)過(guò)程中,代碼運(yùn)行時(shí)難免會(huì)拋出異常,而且項(xiàng)目在部署到測(cè)試、生產(chǎn)環(huán)境后,我們便不可能像在開(kāi)發(fā)時(shí)那樣容易的及時(shí)發(fā)現(xiàn)處理錯(cuò)誤了。
一般我們都是在錯(cuò)誤發(fā)生一段時(shí)間后,錯(cuò)誤信息才會(huì)傳遞到開(kāi)發(fā)?員那里,然后一頓操作查看程序運(yùn)行的日志,但是往往我們會(huì)因?yàn)槿罩局腥鄙偕舷挛年P(guān)系,導(dǎo)致很難分析真正的錯(cuò)誤是什么。
Sentry由此應(yīng)運(yùn)而生成為了解決這個(gè)問(wèn)題的一個(gè)很好的工具,設(shè)計(jì)了諸多特性幫助開(kāi)發(fā)者更快、更方便、更直觀的監(jiān)控錯(cuò)誤信息。
Sentry是什么?Sentry是程序的哨兵,它可以監(jiān)控我們?cè)谏a(chǎn)環(huán)境中項(xiàng)目的運(yùn)行狀態(tài),一旦某段代碼運(yùn)行報(bào)錯(cuò),或者異常,會(huì)第一時(shí)間把報(bào)錯(cuò)的路由,異常文件,請(qǐng)求方式 等一些非常詳細(xì)的信息以消息或者郵件給我們,讓我們第一時(shí)間知道:程序出錯(cuò)了,然后我們可以從Sentry給我們的詳細(xì)的錯(cuò)誤信息中瞬間找到我們需要處理的代碼,從而快速地修復(fù)Bug。
Sentry是一個(gè)集中式日志管理系統(tǒng),它具備以下優(yōu)點(diǎn):
- 多項(xiàng)目,多用戶
- 界面友好
- 可以配置異常觸發(fā)規(guī)則,例如監(jiān)控到程序出現(xiàn)異常后發(fā)送郵件
- 支持多種主流語(yǔ)言和框架,如 React、Angular、Node、Django、PHP、Android、.NET、JAVA等
Sentry目前支持的語(yǔ)言和框架眾多,下面展示一部分:
Sentry部署
sentry分為收費(fèi)版和免費(fèi)自建版,本文主要是介紹免費(fèi)版。官方提供了docker-compose,也是它推薦的部署方式,參考地址https://github.com/getsentry/onpremise。部署要求如下:
- Docker 19.03.6+
- Compose 1.28.0+
- Python 3
- 4 核
- 8 GB 內(nèi)存
- 20 GB 可用磁盤(pán)空間
本篇僅介紹在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、啟動(dòng)
`sudo docker-compose up -d`
6、登錄sentry客戶端
打開(kāi)瀏覽器輸入:http://ip:9000/,即可顯示如下圖:
Sentry使用
本篇僅介紹在django中的應(yīng)用,其它語(yǔ)言自行閱讀官方文檔。
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、驗(yàn)證您的 Sentry 安裝
from django.urls import path
def trigger_error(request):
division_by_zero = 1 / 0
urlpatterns = [
path('sentry-debug/', trigger_error),
]
添加完成之后我們?cè)L問(wèn)這個(gè)路由,我們可以在Sentry后臺(tái)看到告警信息如下圖: