惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Troy Hunt's Blog
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
F
Full Disclosure
Recorded Future
Recorded Future
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
博客园_首页
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Hacker News: Front Page
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
博客园 - 司徒正美
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
Cloudbric
Cloudbric
PCI Perspectives
PCI Perspectives
有赞技术团队
有赞技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
TaoSecurity Blog
TaoSecurity Blog
L
Lohrmann on Cybersecurity
量子位
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tailwind CSS Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
N
News and Events Feed by Topic
罗磊的独立博客
T
Threat Research - Cisco Blogs
Schneier on Security
Schneier on Security
T
Tor Project blog
IT之家
IT之家
M
MIT News - Artificial intelligence
S
Security @ Cisco Blogs
O
OpenAI News
AI
AI
S
Securelist
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题

博客园 - 仙守

用audit审计去记录谁用了docker docker容器大小使用限制 docker容器的磁盘使用进行限额 sentry私有化部署: 在8c16g上降低资源使用 私有化部署sentry:卷备份及恢复 docker 保存所有镜像 私有化部署sentry:镜像构建 docker拉取代理脚本 vscode密钥从windows连接远程linux 基于docker构建es集群 在es中进行update+upsert milvus遍历查询全部数据 简单剖析qwen-agent回答是怎么获取tool的 一个中转代码,底层调用openai,上层模拟openai 一个小工具识别哪个docker占用gpu NLP之预训练语言模型BERT NLP之预训练语言模型GPT NLP之引言 [推荐系统]粗排之FSCD
私有化部署sentry: 获取dsn
仙守 · 2026-02-09 · via 博客园 - 仙守

私有化 Sentry 获取 DSN 与 Python Demo

Created: 2/9/2026 10:47
Updated: 2/9/2026 10:47
Exported: 2/9/2026 11:11

Prompt:

我私有化sentry后,该怎么完成一系列步骤拿到dsn,我想创建一个python 普通项目,想写如下代码import sentry_sdk sentry_sdk.init(     dsn="https://10.10.40.211:9000/cbcb5819cdb87e204712cd04aca77e9a",     # Add request headers and IP for users,     # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info     send_default_pii=True, ) def main():   division_by_zero = 1 / 0 if **name** == "**main**":   main()  完成第一个demo的验证

Response:

私有化部署的 Sentry(self-hosted / on-premise)拿到 DSN 的完整流程如下,通常大部分人卡在「system.url-prefix」沒設好,導致 DSN 顯示空白或不正確。

步驟總覽(最常見做法)

  1. 確認 Sentry 服務已正常運行

    • 瀏覽器打開:http://10.10.40.211:9000(或你設定的 IP + 埠)
    • 第一次會要求你建立管理員帳號 → 完成註冊並登入
  2. 最重要:設定 system.url-prefix(幾乎所有人會漏)

    • 進入 Sentry 容器(假設你用官方 onpremise/docker-compose 方式部署)

      # 進到你 clone 下來的 onpremise 目錄
      cd /path/to/onpremise
      
      # 編輯 config.yml(如果還沒產生就先執行 ./install.sh)
      vim sentry/config.yml
      
    • 找到或新增這一行(一定要是外部可訪問的真實網址):

      system.url-prefix: "http://10.10.40.211:9000"
      # 或如果你有域名:  system.url-prefix: "https://sentry.yourcompany.com"
      # 注意:結尾不要加斜線 /
      
    • 修改後重啟全部服務:

      docker compose down
      docker compose up -d
      # 或只重啟 web 相關容器
      docker compose restart web worker cron
      

    這一步沒做,後面建立 project 時 DSN 欄位會是空的!

  3. 建立一個新 Project

    • 登入後,點左側選單 ProjectsCreate Project
    • 選擇平台 → Python(或 Python - Bottle / Django / Flask 都可以,先選 Python 通用即可)
    • 給 project 取名字(例如:my-python-demo)
    • Create Project
  4. 拿到 DSN

    • 建立完成後,畫面會直接顯示「Configure Python」頁面

    • 最上面就會看到 DSN,長得像:

      http://cbcb5819cdb87e204712cd04aca77e9a@10.10.40.211:9000/2
      

      https://cbcb5819cdb87e204712cd04aca77e9a@10.10.40.211:9000/2
      
    • 如果畫面沒顯示 DSN → 去這裡找:

      • 左側選單 → 點進你的 project
      • Settings(右上或側邊)→ Client Keys (DSN)
      • 通常會有一筆 default key,DSN 就寫在那裡
  5. 修正你提供的程式碼(你的 DSN 格式是錯的)

你的範例寫成:

dsn="https://10.10.40.211:9000/cbcb5819cdb87e204712cd04aca77e9a"

這是錯誤格式!自架 Sentry 的 DSN 幾乎都是以下兩種正確寫法之一:

  • 新版推薦(20.x 之後最常見):公钥在前,沒有 secret key

    dsn = "http://cbcb5819cdb87e204712cd04aca77e9a@10.10.40.211:9000/2"
    # 或 https 如果你有憑證
    
  • 舊版格式(有 public:secret):少數情況還看得到

    dsn = "http://public_key:secret_key@10.10.40.211:9000/2"
    

正確的 Python demo 程式碼應該長這樣:

import sentry_sdk

sentry_sdk.init(
    dsn="http://cbcb5819cdb87e204712cd04aca77e9a@10.10.40.211:9000/2",   # ← 改成你真正的 DSN
    send_default_pii=True,          # 送使用者 IP、request headers 等資訊
    traces_sample_rate=1.0,         # 正式環境建議調低,例如 0.2
    # 如果你要追 performance,可開啟下面這行
    # integrations=[sentry_sdk.integrations.tracing.TracingIntegration()],
)

def main():
    division_by_zero = 1 / 0      # 故意製造錯誤

if __name__ == "__main__":
    main()
  1. 驗證是否成功
    • 執行上面程式 → 應該會拋 ZeroDivisionError
    • 去 Sentry 網頁 → 進到你的 project → Issues
    • 幾秒~幾十秒內應該會出現一筆新的 issue,標題類似 ZeroDivisionError: division by zero

快速 checklist(如果還是看不到 DSN 或收不到事件)

  • config.yml 裡有正確的 system.url-prefix 嗎?(http://你的IP:9000
  • 重啟過服務了嗎?
  • 防火牆允許 9000 port 嗎?(尤其是內網 10.10.40.211)
  • DSN 裡面的 host 是 IP 還是域名?要跟 sdk 發送時能連通的一樣
  • 用 curl http://10.10.40.211:9000 看是否能正常回應 Sentry 頁面

照以上步驟做,99% 都能在 5 分鐘內看到第一筆錯誤事件。如果還是卡住,告訴我你看到什麼畫面(特別是建立 project 後的畫面),我再幫你判斷。

添加到聊天

Integrating Sentry with DjangoSentry vs ELK StackAdd HTTPS setup steps


Powered by Grok Exporter