因此,我之前在反向代理后面安装了 Splunk 3.x,并下载了最新版本(本文撰写时为 4.0.6),希望它能像以前一样易于使用。但不幸的是,事实并非如此。似乎有些元素无法通过反向代理正确转换,导致 Splunk 失败。
我在 Apache2 中使用了以下配置,但无济于事:
<VirtualHost *>
ServerName monitoringbox.com
DocumentRoot /path/to/nowhere
ProxyRequests off
ProxyPass /splunk http://127.0.0.1:8000/splunk
ProxyPassReverse /splunk http://127.0.0.1:8000/splunk
<Proxy /splunk/*>
Order allow,deny
Allow from all
</Proxy>
有没有其他人在反向代理后面设置 Splunk 4.x 方面比我更幸运?
答案1
Splunk web.conf 中需要更改的关键元素是:
tools.proxy.on = True
现在一切都好了。
答案2
我看到您正在将 /splunk 映射到后端实例的 /splunk,端口为 8000。我不知道您的版本的行为是什么,但我们的(4.2)直接在 / 上回答。
您可以尝试删除后端 URL 中的 /splunk 部分吗?像这样:
ProxyPass /splunk http://127.0.0.1:8000/
ProxyPassReverse /splunk http://127.0.0.1:8000/
答案3
我的一个 Splunk 安装位于反向代理后面。说明位于 splunkninja.com:http://splunkninja.com/profiles/blogs/configuring-apache-as-a
答案4
我还不能发表评论……回复@sgerrand
我通过创建两个不同的重写规则解决了这个问题。一个用于静态,另一个用于其余内容。请记住,我的配置是针对具有不同上下文的两个 Splunk 搜索头。
< VirtualHost blablabla:443>
.... .... 所有与服务器名称、目录、文档根目录和 SSL 配置相关的东西.... ....
AllowEncodedSlashes On
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
禁用 SSLProxy 上的证书检查,因为 Splunk 搜索头上使用自签名证书
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
重写规则以转发每个搜索头的请求
ProxyPassReverse /one https://10.0.1.1:8000/one
ProxyPassReverse /two https://10.0.1.2:8000/two
RewriteEngine on
上下文非静态的重写规则
RewriteRule /one(.*) balancer://splunkbalancer_one$1 [P]
RewriteRule /two(.*) balancer://splunkbalancer_two$1 [P]
重写静态请求
RewriteRule ^/(.+) balancer://splunkbalancer/$1 [P]
平衡器上的粘性会话设置
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
静态请求的 Balacer
<Proxy balancer://splunkbalancer>
BalancerMember https://10.0.1.1:8000/one route=1
BalancerMember https://10.0.3.2:8000/two route=2
ProxySet stickysession=ROUTEID
</Proxy>
对于每个 Splunk 上下文,Balacer 都是非静态的,这是为了未来做准备,并且在每个上下文中都有多个搜索头
<Proxy balancer://splunkbalancer_one>
BalancerMember https://10.0.1.1:8000/one route=1
ProxySet stickysession=ROUTEID
</Proxy>
<Proxy balancer://splunkbalancer_two>
BalancerMember https://10.0.1.2:8000/two route=2
ProxySet stickysession=ROUTEID
</Proxy>
</VirtualHost>