Sentry 日志记录错误,我的配置有什么问题,如何从 sentry 获得更详细的错误? (可能 Docker 相关?)
Sentry Logging Error, what's wrong with my config and how can I get more detailed errors from sentry? (Possibly Docker related?)
我最近一直在使用 Sentry,但遇到了一些问题。
经过几个小时的挫折让它开始工作后,我启用了调试模式以查看输出。每次都是这样:
我已经按照文档一步一步地集成了它。我有一个文件来初始化日志记录,然后是我的索引文件。这是我的日志记录初始化文件:
const Sentry = require("@sentry/node");
const Tracing = require("@sentry/tracing");
Sentry.init({
dsn: [REDACTED],
tracesSampleRate: 1.0,
attachStacktrace: true,
debug: true,
environment: process.env.VERSION
});
module.exports = Sentry
从那里,我将此文件导入到我的索引中,并在此文件中包含一个故意错误以对其进行测试:
const Sentry = require('./logging/sentry.js')
try {
doSomeFunction();
} catch(error) {
Sentry.captureException(error);
}
这是怎么回事?我使用哨兵错了吗?我一直无法找到有关此的任何信息。我能够让它在我的机器上工作(当然哈哈)但是当我将它部署到我的 Docker 容器时,它没有工作,这让我相信这可能是问题的一部分。
谢谢!
更新:
尝试重写它,但没有成功,我真的不确定这里出了什么问题,即使我按照文档进行操作,我也无法让它工作。如果能提供一些帮助,我们将不胜感激。
更新 2:
我现在确信这个问题是由于 Docker,可能阻塞了端口 443。我已经 sudo ufw allow 443
成功了,但问题仍然完好无损。
更新 3:
根据一些资料,我认为 IPTables 存在这个问题(甚至可能是 cloudflare?)
这是我的 IPTables:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
DNAT tcp -- anywhere anywhere tcp dpt:https to:172.17.0.3:8443
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere !localhost/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 anywhere
MASQUERADE all -- 172.18.0.0/16 anywhere
MASQUERADE tcp -- 172.18.0.6 172.18.0.6 tcp dpt:3000
MASQUERADE tcp -- 172.18.0.7 172.18.0.7 tcp dpt:https
MASQUERADE tcp -- 172.18.0.7 172.18.0.7 tcp dpt:http
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
DNAT tcp -- anywhere anywhere tcp dpt:3000 to:172.18.0.6:3000
DNAT tcp -- anywhere anywhere tcp dpt:https to:172.18.0.7:443
DNAT tcp -- anywhere anywhere tcp dpt:http to:172.18.0.7:80
我想知道这是否相关!
DSN是数组还是字符串?根据哨兵文档,它应该是一个字符串。
提及 0.0.0.0 的错误通常与 DNS 相关。您检查过 docker 的 DNS 配置了吗?有hosts文件吗?一个可能的原因可能是拦截 DNS 请求并返回 0.0.0.0.
我最近一直在使用 Sentry,但遇到了一些问题。
经过几个小时的挫折让它开始工作后,我启用了调试模式以查看输出。每次都是这样:
我已经按照文档一步一步地集成了它。我有一个文件来初始化日志记录,然后是我的索引文件。这是我的日志记录初始化文件:
const Sentry = require("@sentry/node");
const Tracing = require("@sentry/tracing");
Sentry.init({
dsn: [REDACTED],
tracesSampleRate: 1.0,
attachStacktrace: true,
debug: true,
environment: process.env.VERSION
});
module.exports = Sentry
从那里,我将此文件导入到我的索引中,并在此文件中包含一个故意错误以对其进行测试:
const Sentry = require('./logging/sentry.js')
try {
doSomeFunction();
} catch(error) {
Sentry.captureException(error);
}
这是怎么回事?我使用哨兵错了吗?我一直无法找到有关此的任何信息。我能够让它在我的机器上工作(当然哈哈)但是当我将它部署到我的 Docker 容器时,它没有工作,这让我相信这可能是问题的一部分。
谢谢!
更新:
尝试重写它,但没有成功,我真的不确定这里出了什么问题,即使我按照文档进行操作,我也无法让它工作。如果能提供一些帮助,我们将不胜感激。
更新 2:
我现在确信这个问题是由于 Docker,可能阻塞了端口 443。我已经 sudo ufw allow 443
成功了,但问题仍然完好无损。
更新 3:
根据一些资料,我认为 IPTables 存在这个问题(甚至可能是 cloudflare?)
这是我的 IPTables:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
DNAT tcp -- anywhere anywhere tcp dpt:https to:172.17.0.3:8443
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere !localhost/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 anywhere
MASQUERADE all -- 172.18.0.0/16 anywhere
MASQUERADE tcp -- 172.18.0.6 172.18.0.6 tcp dpt:3000
MASQUERADE tcp -- 172.18.0.7 172.18.0.7 tcp dpt:https
MASQUERADE tcp -- 172.18.0.7 172.18.0.7 tcp dpt:http
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
DNAT tcp -- anywhere anywhere tcp dpt:3000 to:172.18.0.6:3000
DNAT tcp -- anywhere anywhere tcp dpt:https to:172.18.0.7:443
DNAT tcp -- anywhere anywhere tcp dpt:http to:172.18.0.7:80
我想知道这是否相关!
DSN是数组还是字符串?根据哨兵文档,它应该是一个字符串。
提及 0.0.0.0 的错误通常与 DNS 相关。您检查过 docker 的 DNS 配置了吗?有hosts文件吗?一个可能的原因可能是拦截 DNS 请求并返回 0.0.0.0.