如何将来自 2 个不同 Lans 的错误记录到一个哨兵服务器
How to log errors from 2 different Lans to one sentry server
Sentry 需要一个安装位置的值:SENTRY_URL_PREFIX
。问题是我想通过两个不同的局域网将错误记录到安装中。
比方说,运行ning sentry 的服务器有一个 ip 192.168.1.1
和 10.0.0.1
,我想记录来自 192.168.1.2
和 [=14] 的错误=].
哨兵服务器(机器)和需要进行日志记录的机器之间的连接很好,但我需要 'switch' 在哨兵中设置 url-prefix 才能工作与一个或另一个:如果我将 SENTRY_URL_PREFIX
设置为 http://10.0.0.1
它可以工作并且能够从该 lan 接收日志,但是来自另一个 lan 的所有请求都会出错(前端的直接 http 请求得到例如一个 http 400 结果),当然反过来也是如此。
详情:
我是 运行8.1.2
在 docker (https://hub.docker.com/_/sentry/)
的哨兵
有趣的是,我在 changelog
中读到了这篇文章
SENTRY_URL_PREFIX has been deprecated, and moved to system.url-prefix inside of config.yml or it can be configured at runtime.
第一次启动哨兵其实好像还是要问前缀;更改前缀似乎对连接有效,所以对我来说这就是罪魁祸首。这可能是在幕后传达给上面提到的system.url-prefix
,所以这个设置是问题所在,但我不确定。
有谁知道如何 运行 一个服务器在两个地址上?
主要问题当然是发送错误,让 web 界面只能从一个 ip 可见并不是什么大问题。
虽然我不太确定它应该如何工作,但我无法将任何日志发送到具有不同 system.url-prefix
然后我在调用中使用的服务器。
我从 Twitter 和哨兵组收集到它确实需要正确的接口主机,否则它不应该真正破坏东西。不过不确定如何破解它。
我的解决方案只是从一个点解决哨兵安装问题。因为我们需要单独的 NIC,所以我们通过在设置前使用一个简单的 nginx 反向代理来做到这一点,并让它设置主机头。我使用默认的 https://hub.docker.com/_/nginx/ 图片,这个配置:
events {
worker_connections 1024; ## Default: 1024
}
http{
server {
listen 80;
location / {
proxy_pass http://$internalip-sentry-knows;
proxy_redirect http://$internalip-sentry-knows $externalip-we-use;
proxy_set_header Host $internalip-sentry-knows;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
端口对两个 nic 都公开,因此它会监听我们要使用的两个地址,并很好地代理它并易于哨兵。
免责声明:界面上提到 SENTRY_URL_PREFIX
但它已被弃用,所以我使用 system.url-prefix
,但在我的回答中,出于所有实际目的,它们是可以互换的。对于那些确实知道什么确切去向的人来说,这可能会造成混淆:)
参考文献:
* twitter conversation with Matt from sentry
* Groups response from David from sentry
Sentry 需要一个安装位置的值:SENTRY_URL_PREFIX
。问题是我想通过两个不同的局域网将错误记录到安装中。
比方说,运行ning sentry 的服务器有一个 ip 192.168.1.1
和 10.0.0.1
,我想记录来自 192.168.1.2
和 [=14] 的错误=].
哨兵服务器(机器)和需要进行日志记录的机器之间的连接很好,但我需要 'switch' 在哨兵中设置 url-prefix 才能工作与一个或另一个:如果我将 SENTRY_URL_PREFIX
设置为 http://10.0.0.1
它可以工作并且能够从该 lan 接收日志,但是来自另一个 lan 的所有请求都会出错(前端的直接 http 请求得到例如一个 http 400 结果),当然反过来也是如此。
详情:
我是 运行8.1.2
在 docker (https://hub.docker.com/_/sentry/)
有趣的是,我在 changelog
中读到了这篇文章SENTRY_URL_PREFIX has been deprecated, and moved to system.url-prefix inside of config.yml or it can be configured at runtime.
第一次启动哨兵其实好像还是要问前缀;更改前缀似乎对连接有效,所以对我来说这就是罪魁祸首。这可能是在幕后传达给上面提到的system.url-prefix
,所以这个设置是问题所在,但我不确定。
有谁知道如何 运行 一个服务器在两个地址上? 主要问题当然是发送错误,让 web 界面只能从一个 ip 可见并不是什么大问题。
虽然我不太确定它应该如何工作,但我无法将任何日志发送到具有不同 system.url-prefix
然后我在调用中使用的服务器。
我从 Twitter 和哨兵组收集到它确实需要正确的接口主机,否则它不应该真正破坏东西。不过不确定如何破解它。
我的解决方案只是从一个点解决哨兵安装问题。因为我们需要单独的 NIC,所以我们通过在设置前使用一个简单的 nginx 反向代理来做到这一点,并让它设置主机头。我使用默认的 https://hub.docker.com/_/nginx/ 图片,这个配置:
events {
worker_connections 1024; ## Default: 1024
}
http{
server {
listen 80;
location / {
proxy_pass http://$internalip-sentry-knows;
proxy_redirect http://$internalip-sentry-knows $externalip-we-use;
proxy_set_header Host $internalip-sentry-knows;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
端口对两个 nic 都公开,因此它会监听我们要使用的两个地址,并很好地代理它并易于哨兵。
免责声明:界面上提到 SENTRY_URL_PREFIX
但它已被弃用,所以我使用 system.url-prefix
,但在我的回答中,出于所有实际目的,它们是可以互换的。对于那些确实知道什么确切去向的人来说,这可能会造成混淆:)
参考文献:
* twitter conversation with Matt from sentry
* Groups response from David from sentry