Configurando o Grafana para funcionar sobre HTTPS

Captura de tela de 2016-05-26 17:19:23

Neste tutorial http://zabbixbrasil.org/?p=1674, eu e André Déo mostramos como instalar o Grafana no Debian 8, CentOS 7 e Ubuntu 16.04 (ambos 64 bits). Nesse mesmo tutorial é mostrada a integração do Grafana com o Zabbix.

Agora será mostrado como configurar o Grafana para funcionar sobre HTTPS, usando um certificado auto-assinado.

Criando um certificado auto-assinado

Instale o pacote opensssl.

No Debian 8/Ubuntu 16.04:

sudo apt-get -y install openssl

No CentOS 7:

sudo yum install -y openssl

Agora crie uma chave privada RSA. Execute os comandos abaixo.

sudo mkdir /etc/certs
cd /etc/certs/
sudo openssl genrsa -aes256 -out server.key 2048
sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key
sudo chmod 755 server.key
sudo rm server.key.org

Defina uma senha para a chave.

Agora crie uma requisição de assinatura de certificado com validade para 10 anos (ou 3650 dias). Execute o comando abaixo.

openssl req -new -sha256 -days 3650 -key server.key -out server.csr

Durante a execução do comando acima será solicitado a senha da chave privada e os dados do certificado e que serão exibidos no navegador do usuário. Veja o exemplo abaixo.

Country Name (2 letter code) [GB]:BR
State or Province Name (full name) [Berkshire]:Estado
Locality Name (eg, city) [Newbury]:Cidade
Organization Name (eg, company) [My Company Ltd]Minha empresa LTDA
Organizational Unit Name (eg, section) []:Meu setor de trabalho
Common Name (eg, your name or your server’s hostname) []:nomeservidor.empresa.com.br
Email Address []:email@empresa.com.br
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Agora assine o certificado.

sudo openssl x509 -req -days 3650 -sha256 -in server.csr -signkey server.key -out server.crt

Usando, o comando acima, você estará assinando o certificado com validade de 10 anos (aproximadamente 3650 dias). Se quiser mudar este tempo, altere a quantidade de dias no parâmetro -days.

Configurando o Grafana para funcionar sobre HTTPS

Quando o Grafana é instalado via pacote .deb, o arquivo de configuração fica em: /etc/grafana/grafana.ini.

Edite o arquivo /etc/grafana/grafana.ini e altere os parâmetro abaixo para ficar da seguinte maneira.

Antes:

;protocol = http
;http_port = 3000
;cert_file = 
;cert_key = 

Depois:

protocol = https

http_port = 3000

cert_file = /etc/certs/server.crt

cert_key = /etc/certs/server.key

Agora é só reiniciar o Grafana.

No Debian 8/Ubuntu 16.04:

sudo service grafana-server restart

No CentOS 7:

sudo systemctl restart grafana-server

O Grafana estará acessível na URL: https://ip-servidor:3000

Aceite o certificado no navegador, pois o mesmo vai reclamar que o site está usando um certificado auto-assinado.

Os passos acima pode ser adaptados para a sua realidade, caso possua um certificado válido.

Se quiser configurar o Grafana para disponibilizar dashboards para cada cliente, siga os passos deste tutorial: http://andredeo.blogspot.com.br/2016/12/zabbix-e-grafana-disponibilizando-um.html

Fonte:

http://www.akadia.com/services/ssh_test_certificate.html

http://docs.grafana.org/installation/configuration/

Categories: , ,

10 respostas para “Configurando o Grafana para funcionar sobre HTTPS”

  1. […] Se quiser configurar o Grafana para usar HTTPS, siga os passos deste tutorial: http://blog.aeciopires.com/configurando-o-grafana-para-funcionar-sobre-https/ […]

  2. […] Configurando o Grafana para funcionar sobre HTTPS […]

  3. Avatar de Matheus

    Acredito que esse projeto possa ajudar 😀
    https://letsencrypt.org/

  4. […] Tutorial totalmente autoral por Aécio Pires CEO do site Aécio Pires & Andre Déo CEO do site Blog do Déo. Postado originalmente em 26 de maio de 2016 neste link […]

  5. Avatar de Maurício Venzi
    Maurício Venzi

    Muito bom o tutorial Aécio Pires, acho que faltou apenas permissão no arquivo /etc/certs/server.key

    conforme logs do grafana abaixo:
    t=2021-06-02T19:06:16-0300 lvl=eror msg=”A service failed” logger=server err=”open /etc/certs/server.key: permission denied”
    t=2021-06-02T19:06:16-0300 lvl=eror msg=”Server shutdown” logger=server reason=”open /etc/certs/server.key: permission denied”

    solucionado com o comando

    chmod 755 server.key

  6. Avatar de Aécio Pires
    Aécio Pires

    Oi, Maurício!
    Obrigado pelo aviso. Já adicionei no tutorial.
    Abraço.

  7. Avatar de Felipe Cardoso
    Felipe Cardoso

    Existe a possibilidade de usar o grafana em um dominio direto ? Sem o uso do :3000 ? Tipo graficos.seudominio.com.br

  8. Avatar de Aécio Pires
    Aécio Pires

    Bom dia, Felipe!

    Sim, você pode colocar na frente do Grafana o Nginx ou Apache para atuar como proxy reverso… ele receberia a requisição na porta 80 ou 443 e repassaria para o grafana na porta 3000. Para o usuário fica transparente… Ele tem a impressão que está acessando o Grafana diretamente na porta 80 ou 443, mas não está.

    Para fazer isso, tem vários tutoriais na Internet.

    https://www.google.com/search?q=nginx+proxy+reverse&oq=nginx+proxy+re&aqs=chrome.2.0i512l3j69i57j0i512l3j69i60.7472j0j7&sourceid=chrome&ie=UTF-8

    Abraço.

  9. Avatar de Marcio Knasel
    Marcio Knasel

    Não precisa de um proxy reverso, pois o grafana server faz esse trabalho na sua própria configuração, você especifica o domínio e a url padrão, tendo domínio registrado e ja propagado para o IP do grafana e liberado as portas corretas tudo deve funcionar.

  10. Avatar de Goku
    Goku

    Onde estão essas configurações Marcio?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *