安全的石墨安装

我想我在这里误解了一些东西。 我已经用Docker(sitespeedio / graphite)安装了Graphite,并为Web-Panel设置了一个Basic Auth。 我打开端口2003的防火墙来从其他服务器的数据点,它工作正常。

但是没有authentication/授权。 即使我用来发送一些testing的python lib也不允许设置密码,令牌或其他authentication机制。

如何保护我的Graphite安装?

我想可能会有一个误解(很有可能是我),你似乎在谈论两个不同的组成部分。

首先是Graphite( https://graphite.readthedocs.io/en/latest/install.html ):

Graphite使用Cairographics库呈现graphics

换句话说,虽然我们通常把整个设置的石墨称为石墨,但石墨实际上是数据库碳储存数据的前端(Whisper或Ceres)。

如您所说,基本authentication是针对石墨提供的Web界面,特别是渲染API(更一般地说,石墨进程/守护进程通过HTTP提供的服务)。

要做到这一点(通常 – 我不知道你的具体情况的细节),你可以检查这个问题: Graphiti / Graphite使用Apache与代理和BasicAuth请求每个URL /请求身份validation – 他们有相反的问题他们必须不断地进行authentication(以及为什么会这样做的答案)。

他们提供完整的configuration,但一般来说,以下块是重要的:

<Location "/"> require valid-user order allow,deny Allow from all AuthType Basic AuthName "Stats" AuthBasicProvider file AuthUserFile /etc/passwd_lp </Location> 

但是,您还提到了与任何Web API或页面无关的端口2003。

端口2003被碳caching(或碳中继)用来接收度量数据。

根据https://graphite.readthedocs.io/en/latest/carbon-daemons.html

carbon-cache.py接受各种协议的指标,并尽可能高效地写入磁盘

它不使用HTTP,这就是为什么Basic-Auth不起作用。

我不确定最佳做法或惯例是为了保证碳排放,但是我始终认为这首先是限制进入服务(即港口)的问题。

您可以在度量标准源和碳caching之间添加一个发送HTTP的图层,以便为其设置基本身份validation。

您也可以添加像HAProxy做SSL终止和客户端validation的东西,但我不确定使度量标准源首先使用SSL / TLS是多么容易。