在与 Apache 相同的 Docker 容器中运行节点 apache-exporter

在与 Apache 相同的 Docker 容器中运行节点 apache-exporter

我正在运行节点apache-exporterhttps://github.com/Lusitaniae/apache_exporter) 与 Apache 本身位于同一个 Docker 容器中(从 httpd 映像构建)。 (因此,我能够通过一个 Dockerfile 和一个 docker-compose 将服务直接分发到容器中,就像使用两个 Dockerfile 一样,并将两个容器组合在一个 docker-compose 文件中。)

(apache-exporter和 Apache 服务器) 运行,我可以apache-up在 Prometheus/Grafana 中看到数据。

我已经将Location块插入我的httpd.conf

<VirtualHost *:80>
  ServerName XXX.XXX.XXX.XX
  ServerAlias www.XXX.XXX.XXX.XX
  <Location /server-status>
    SetHandler server-status
    #Require local
    Require host example.com
    #Require ip YYY.YYY.YYY.YYY 
  </Location>
  Redirect permanent / https://XXX.XXX.XXX.XXX
</VirtualHost>

XXX.XXX.XXX.XXX= 外部 IP,YYY.YYY.YYY.YYY= docker 网络内部 IP 并加载模块

LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so

但是我收到了错误:

level=error msg="Error scraping apache: error scraping apache: Get \"https:///XXX.XXX.XXX.XXXserver-status/?auto\": dial tcp: lookup XXX.XXX.XXX.XXXserver-status on YYY.YYY.YYY.YYY: no such host" source="apache_exporter.go:571"

哪里错了? 是/不是哪里少了 ? 我是否必须 使用 在另一个块Location内写入块? 我必须设置 吗? 我猜这只是我的一个愚蠢的错误,因为IP 和 之间缺少。 我似乎没有考虑 ,因此 URL 由 处理。将重定向放在最后时,可以在 内使用多个。VirtualHostServerName--scrape_uri/server-statusLocationRedirect permanentProxyPassVirtualHost/

我想限制server-status对 Apache 容器本身的访问。

答案1

它使用以下配置来工作:

<VirtualHost *:80>
  ServerName XXX.XXX.XXX.XX
  ServerAlias www.XXX.XXX.XXX.XX
  <Location /server-status>
    SetHandler server-status
    Require all granted
    Require host example.com
  </Location>  
</VirtualHost>

相关内容