Eu acho que pode haver um mal-entendido (possivelmente da minha parte): você parece estar falando sobre dois componentes diferentes.
O primeiro é o grafite ( link ):
Graphite renders graphs using the Cairo graphics library
Em outras palavras, enquanto normalmente chamamos toda a configuração de grafite, grafite é, na verdade, o front-end do banco de dados de carbono armazena dados em (Whisper ou Ceres).
Basic-Auth, como você diz, é para as ofertas de grafite de interfaces web, notavelmente a API de renderização (e mais geralmente, serviços que o processo / daemon de grafite oferece sobre HTTP).
Para colocar isso em prática (geralmente - não sei os detalhes para sua situação específica), você pode verificar essa pergunta: Graphiti / Graphite usando o Apache com proxy e pedidos de BasicAuth auth para cada URL / pedido - eles têm o problema oposto onde eles tem para autenticar constantemente (e uma resposta sobre por que isso pode ser).
Eles fornecem sua configuração completa, mas, em geral, o seguinte bloco é o que importa:
<Location "/">
require valid-user
order allow,deny
Allow from all
AuthType Basic
AuthName "Stats"
AuthBasicProvider file
AuthUserFile /etc/passwd_lp
</Location>
No entanto, você também menciona a porta 2003, que não está relacionada a nenhuma das APIs ou páginas da Web.
O Port 2003 é usado pelo cache de carbono (ou retransmissão de carbono) para receber dados métricos.
Por link :
carbon-cache.py accepts metrics over various protocols and writes them to disk as efficiently as possible
Ele não usa HTTP, e é por isso que o Basic-Auth não está funcionando.
Não sei qual é a melhor prática ou convenção para garantir o carbono, mas sempre pensei que era uma questão de restringir o acesso ao serviço (ou seja, porta) em primeiro lugar.
Você pode adicionar uma camada que fale HTTP entre suas origens de métrica e seu cache de carbono para ter a Autenticação básica em vigor.
Você também pode adicionar algo como o HAProxy para fazer a terminação SSL e a validação do cliente, mas não tenho certeza de como seria fácil fazer com que as fontes de métricas usem SSL / TLS.