Tutorial

Como instalar e proteger o Grafana no Ubuntu 18.04

Published on December 10, 2019
Português
Como instalar e proteger o Grafana no Ubuntu 18.04

O autor escolheu o Dev Color para receber uma doação como parte do programa Write for DOnations.

Introdução

O Grafana é uma ferramenta open-source de monitoramento e visualização de dados que se integra a dados complexos de fontes como o Prometheus, InfluxDB, Graphite e ElasticSearch. O Grafana permite a você criar alertas, notificações e filtros ad-hoc para seus dados, além de facilitar a colaboração com seus colegas de equipe por meio de recursos de compartilhamento embutidos.

Neste tutorial, você instalará o Grafana e o protegerá com um certificado SSL e um proxy reverso Nginx. Depois de configurar o Grafana, você terá a opção de configurar a autenticação do usuário através do GitHub, permitindo organizar melhor as permissões da sua equipe.

Pré-requisitos

Para seguir este tutorial, você precisará de:

Passo 1 — Instalando o Grafana

Neste primeiro passo, você instalará o Grafana no seu servidor Ubuntu 18.04. Você pode instalar o Grafana fazendo o download diretamente do site oficial ou através de um repositório APT. Como um repositório APT facilita a instalação e o gerenciamento das atualizações do Grafana, você utilizará esse método neste tutorial.

Embora o Grafana esteja disponível no repositório oficial de pacotes do Ubuntu 18.04, a versão do Grafana pode não ser a mais recente, portanto, use o repositório oficial do Grafana.

Faça o download da chave GPG do Grafana com o wget, em seguida faça um pipe da saída para o apt-key. Isso adicionará a chave à lista de chaves confiáveis da instalação do APT, o que permitirá que você baixe e verifique o pacote Grafana assinado pelo GPG.

  1. wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

Neste comando, a opção -q desativa a mensagem de atualização de status para o wget e -O gera o arquivo que você baixou para o terminal. Essas duas opções garantem que apenas o conteúdo do arquivo baixado seja canalizado para o apt-key.

Em seguida, adicione o repositório do Grafana às suas origens de pacotes do APT:

  1. sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Atualize seu cache do APT para atualizar suas listas de pacotes:

  1. sudo apt update

Em seguida, verifique se o Grafana será instalado através do repositório real do Grafana:

  1. apt-cache policy grafana

A saída do comando anterior informa a versão do Grafana que você está prestes a instalar e de onde você irá trazer o pacote. Verifique se o candidato à instalação no topo da lista virá do repositório oficial da Grafana em https://packages.grafana.com/oss/deb.

Output of apt-cache policy grafana
grafana: Installed: (none) Candidate: 6.3.3 Version table: 6.3.3 500 500 https://packages.grafana.com/oss/deb stable/main amd64 Packages ...

Agora você pode prosseguir com a instalação:

  1. sudo apt install grafana

Depois que o Grafana estiver instalado, use systemctl para iniciar o servidor Grafana:

  1. sudo systemctl start grafana-server

Em seguida, verifique se o Grafana está em execução, verificando o status do serviço:

  1. sudo systemctl status grafana-server

Você receberá uma saída semelhante a esta:

Output of grafana-server status
● grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2019-08-13 08:22:30 UTC; 11s ago Docs: http://docs.grafana.org Main PID: 13630 (grafana-server) Tasks: 7 (limit: 1152) ...

Esta saída contém informações sobre o processo do Grafana, incluindo seu status, Identificador do Processo Principal (PID) e muito mais. active (running) mostra que o processo está sendo executado corretamente.

Por fim, ative o serviço para iniciar automaticamente o Grafana na inicialização:

  1. sudo systemctl enable grafana-server

Você receberá a seguinte saída:

Output of systemctl enable grafana-server
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

Isso confirma que o systemd criou os links simbólicos necessários para iniciar automaticamente o Grafana.

O Grafana agora está instalado e pronto para uso. A seguir, você protegerá sua conexão com o Grafana com um proxy reverso e um certificado SSL.

Passo 2 — Configurando o Proxy Reverso

O uso de um certificado SSL garantirá a segurança dos seus dados, criptografando a conexão de e para o Grafana. Mas, para usar essa conexão, primeiro você precisará reconfigurar o Nginx como um proxy reverso para o Grafana.

Abra o arquivo de configuração do Nginx que você criou ao configurar o bloco de servidor Nginx com o Let’s Encrypt nos Pré-requisitos. Você pode usar qualquer editor de texto, mas para este tutorial, usaremos o nano:

  1. sudo nano /etc/nginx/sites-available/seu_domínio

Localize o seguinte bloco:

/etc/nginx/sites-available/seu_domínio
...
	location / {
        try_files $uri $uri/ =404;
	}
...

Como você já configurou o Nginx para se comunicar através de SSL e como todo o tráfego web em seu servidor já passa pelo Nginx, basta dizer ao Nginx para encaminhar todas as solicitações ao Grafana, que é executado na porta 3000 por padrão.

Exclua a linha try_files existente neste bloco de location e substitua-a pela seguinte opção proxy_pass.

/etc/nginx/sites-available/your_domain
...
	location / {
	  	proxy_pass http://localhost:3000;
	}
...

Isso mapeará o proxy para a porta apropriada. Quando terminar, salve e feche o arquivo pressionando CTRL+X, seguido por Y e, em seguida, ENTER se estiver usando o nano.

Agora, teste as novas configurações para garantir que tudo esteja configurado corretamente:

  1. sudo nginx -t

Você receberá a seguinte saída:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Por fim, ative as alterações recarregando o Nginx:

  1. sudo systemctl reload nginx

Agora você pode acessar a tela de login padrão do Grafana apontando o navegador para https://seu_domínio. Se você não conseguir acessar a Grafana, verifique se o seu firewall está configurado para permitir o tráfego na porta 443 e, em seguida, siga novamente as instruções anteriores.

Com a conexão com o Grafana criptografada, agora você pode implementar medidas de segurança adicionais, começando com a alteração das credenciais administrativas padrão do Grafana.

Passo 3 — Atualizando Credenciais

Como todas as instalações do Grafana usam as mesmas credenciais administrativas por padrão, é uma boa prática alterar suas informações de login o mais rápido possível. Neste passo, você atualizará as credenciais para melhorar a segurança.

Comece navegando até https://seu_domínio no seu navegador. Isso exibirá a tela de login padrão, na qual você verá o logotipo do Grafana, um formulário solicitando que você insira email or username e password, um botão Log in e um link Forgot your password?

Grafana Login

Digite admin nos campos User e Password e clique no botão Log in.

Na próxima tela, você será solicitado a tornar sua conta mais segura alterando a senha padrão:

Change Password

Digite a senha que você deseja começar a usar nos campos New password e Confirm new password.

A partir daqui, você pode clicar em Save para salvar as novas informações ou pressionar Skip para pular esta etapa. Se você pular, você será solicitado a alterar a senha na próxima vez que fizer login.

Para aumentar a segurança da sua configuração do Grafana, clique em Save. Você retornará à página Home Dashboard:

Home Dashboard

Agora você protegeu sua conta alterando as credenciais padrão. Em seguida, você fará alterações na configuração do Grafana para que ninguém possa criar uma nova conta do Grafana sem a sua permissão.

Passo 4 — Desativando Registros no Grafana e o Acesso Anônimo

O Grafana fornece opções que permitem aos visitantes criar contas de usuário e visualizar dashboards sem se registrar. Quando o Grafana não estiver acessível via Internet ou quando estiver trabalhando com dados publicamente disponíveis, como status de serviço, convém permitir esses recursos. No entanto, ao usar o Grafana online para trabalhar com dados confidenciais, o acesso anônimo pode ser um problema de segurança. Para corrigir esse problema, faça algumas alterações na configuração do Grafana.

Comece abrindo o arquivo de configuração principal do Grafana para edição:

  1. sudo nano /etc/grafana/grafana.ini

Localize a seguinte diretiva allow_sign_up sob o cabeçalho [users]:

/etc/grafana/grafana.ini
...
[users]
# disable user signup / registration
;allow_sign_up = true
...

A ativação dessa diretiva com true adiciona um botão Sign Up na tela de login, permitindo que os usuários se registrem e acessem o Grafana.

A desativação desta diretiva com false remove o botão Sign Up e fortalece a segurança e a privacidade do Grafana.

Remova o comentário desta diretiva removendo o ; no início da linha e defina a opção como false:

/etc/grafana/grafana.ini
...
[users]
# disable user signup / registration
allow_sign_up = false
...

Em seguida, localize a seguinte diretiva enabled sob o cabeçalho [auth.anonymous]:

/etc/grafana/grafana.ini
...
[auth.anonymous]
# enable anonymous access
;enabled = false
...

Definir enabled como true fornece aos usuários não registrados acesso aos seus dashboards; definir esta opção como false limita o acesso do dashboard apenas aos usuários registrados.

Remova o comentário desta diretiva removendo o ; no início da linha e defina a opção como false:

/etc/grafana/grafana.ini
...
[auth.anonymous]
enabled = false
...

Salve o arquivo e saia do seu editor de texto.

Para ativar as alterações, reinicie o Grafana:

  1. sudo systemctl restart grafana-server

Verifique se tudo está funcionando, checando o status do serviço do Grafana:

  1. sudo systemctl status grafana-server

Como antes, a saída vai informar que o Grafana está active (running).

Agora, aponte seu navegador para https://seu_domínio. Para retornar à tela Sign Up, leve o cursor para o seu avatar no canto inferior esquerdo da tela e clique na opção Sign out que aparece.

Depois de sair, verifique se não há um botão Sign Up e se não é possível fazer login sem inserir as credenciais de login.

Nesse ponto, o Grafana está totalmente configurado e pronto para uso. Em seguida, você pode simplificar o processo de login para sua organização, usando a autenticação através do GitHub.

(Opcional) Passo 5 — Configurando um App GitHub OAuth

Para uma abordagem alternativa ao fazer login, você pode configurar o Grafana para autenticação através do GitHub, que fornece acesso de login a todos os membros de organizações autorizadas do GitHub. Isso pode ser particularmente útil quando você deseja permitir que vários desenvolvedores colaborem e acessem métricas sem precisar criar credenciais específicas para o Grafana.

Comece fazendo login em uma conta do GitHub associada à sua organização e navegue até a página de perfil do GitHub em https://github.com/settings/profile.

Clique no nome da sua organização em Organization settings no menu de navegação no lado esquerdo da tela.

GitHub Organization settings

Na próxima tela, você verá seu Organization profile, onde poderá alterar configurações como seu Organization display name, Email e URL da organização .

Como o Grafana usa OAuth, um padrão aberto para conceder acesso remoto de terceiros a recursos locais, para autenticar usuários através do GitHub, você precisará criar uma nova aplicação OAuth no GitHub.

Clique no link OAuth Apps em Developer settings no lado inferior esquerdo da tela.

Se você ainda não possui aplicações OAuth associadas à sua organização no GitHub, será mostrado a você No Organization Owned Applications. Caso contrário, você verá uma lista dos aplicações OAuth já conectadas à sua conta.

Clique no botão Register an application para continuar.

Na próxima tela, preencha os seguintes detalhes sobre a sua instalação do Grafana:

  • Application name - Isso ajuda a distinguir suas diferentes aplicações OAuth.
  • Homepage URL - Isso informa ao GitHub onde encontrar o Grafana. Digite https://seu_domínio nesse campo, substituindo seu_domínio pelo seu domínio.
  • Application Description - Isso fornece uma descrição do objetivo da sua aplicação OAuth.
  • Application callback URL - Este é o endereço para o qual os usuários serão enviados uma vez autenticados com êxito. Para o Grafana, esse campo deve ser definido como https://seu_domínio/login/github.

Lembre-se de que os usuários do Grafana que efetuam login através do GitHub verão os valores inseridos nos três primeiros campos anteriores, portanto, insira algo significativo e apropriado.

Quando preenchido, o formulário será semelhante a:

GitHub Register OAuth Application

Clique no botão verde Register application.

Agora você será redirecionado para uma página que contém o Client ID e e o Client Secret associados à sua nova aplicação OAuth. Anote os dois valores, pois será necessário adicioná-los ao arquivo de configuração principal do Grafana para concluir a instalação.

Atenção: Certifique-se de manter seu Client ID e seu Client Secret em um local seguro e não público, pois eles podem ser usados como base para um ataque.

Com sua aplicação GitHub OAuth criada, agora você está pronto para reconfigurar o Grafana para usar o GitHub para autenticação.

(Opcional) Passo 6 — Configurando o Grafana como um App OAuth no GitHub

Para concluir a autenticação do GitHub para sua configuração do Grafana, você fará algumas alterações nos arquivos de configuração do Grafana.

Para começar, abra o arquivo de configuração principal do Grafana.

  1. sudo nano /etc/grafana/grafana.ini

Localize o cabeçalho [auth.github] e descomente esta seção removendo o ; no início de cada linha exceto ;team_ids=, que não será alterado neste tutorial.

Em seguida, configure o Grafana para usar o GitHub com os valores de client_id e client_secret da sua aplicação OAuth.

  • Defina enabled e allow_sign_up para true. Isso permitirá a autenticação via GitHub e permitirá que os membros da organização permitida criem contas. Observe que essa configuração é diferente da propriedade allow_sign_up em [users] que você alterou no Passo 4.
  • Defina client_id e client_secret com os valores que você obteve ao criar sua aplicação GitHub OAuth.
  • Defina allowed_organizations como o nome da sua organização para garantir que apenas membros da sua organização possam se inscrever e fazer login no Grafana.

A configuração completa será semelhante a:

/etc/grafana/grafana.ini
...
[auth.github]
enabled = true
allow_sign_up = true
client_id = seu_client_id_do_github
client_secret = seu_client_secret_do_github
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
;team_ids =
allowed_organizations = nome_da_sua_organização
...

Agora você contou ao Grafana tudo o que ele precisava saber sobre o GitHub. Para concluir a instalação, você precisará habilitar os redirecionamentos por trás de um proxy reverso. Isso é feito configurando um valor root_url no cabeçalho [server].

/etc/grafana/grafana.ini
...
[server]
root_url = https://seu_domínio
...

Salve sua configuração e feche o arquivo.

Em seguida, reinicie o Grafana para ativar as alterações:

  1. sudo systemctl restart grafana-server

Por fim, verifique se o serviço está funcionando.

  1. sudo systemctl status grafana-server

A saída indicará que o serviço está active (running).

Agora, teste seu novo sistema de autenticação navegando até https://seu_domínio. Se você já está logado no Grafana, passe o mouse sobre o log do avatar no canto inferior esquerdo da tela e clique em Sign out no menu secundário que aparece ao lado do seu nome.

Na página de login, você verá uma nova seção sob o botão original Log in , que inclui um botão Sign in with GitHub com o logotipo do GitHub.

Grafana Login page with GitHub

Clique no botão Sign in with GitHub para ser redirecionado para o GitHub, onde você entrará na sua conta GitHub e confirmará sua intenção de Authorize Grafana ou autorizar o Grafana.

Clique no botão verde, Authorize nome_da_sua_organização.

Nota: Verifique se a sua conta do GitHub é membro da sua organização aprovada e se o seu endereço de e-mail do Grafana corresponde ao seu endereço de e-mail do GitHub. Se você tentar se autenticar com uma conta do GitHub que não seja membro de sua organização aprovada, receberá uma mensagem Login Failed informando: User not a member of one of the required organizations, ou seja, o usuário não é membro de uma das organizações necessárias.

Agora você estará logado com sua conta Grafana existente. Se uma conta Grafana ainda não existir para o usuário no qual você efetuou login, o Grafana criará uma nova conta de usuário com permissões de visualização, ou Viewer, garantindo que os novos usuários possam usar apenas os dashboards existentes.

Para alterar as permissões padrão para novos usuários, abra o arquivo de configuração principal do Grafana para edição.

  1. sudo nano /etc/grafana/grafana.ini

Localize a diretiva auto_assign_org_role no cabeçalho [users], e descomente a configuração removendo o ; no início da linha.

Defina a diretiva para um dos seguintes valores:

  • Viewer — só pode usar dashboards existentes
  • Editor — pode alterar o uso, modificar e adicionar dashboards
  • Admin — tem permissão para fazer tudo

Este tutorial definirá a atribuição automática como Viewer:

/etc/grafana/grafana.ini
...
[users]
...
auto_assign_org_role = Viewer
...

Depois de salvar as alterações, feche o arquivo e reinicie o Grafana:

  1. sudo systemctl restart grafana-server

Verifique o status do serviço:

  1. sudo systemctl status grafana-server

Como antes, o status apresentará active (running).

Neste ponto, você configurou totalmente o Grafana para permitir que membros da sua organização GitHub registrem e usem sua instalação do Grafana.

Conclusão

Neste tutorial, você instalou, configurou e protegeu o Grafana e também aprendeu como permitir que membros da sua organização se autentiquem através do GitHub.

Para estender sua instalação atual do Grafana, consulte a lista de dashboards oficiais e criados pela comunidade. Para saber mais sobre o uso do Grafana em geral, consulte a documentação oficial do Grafana, ou confira nossos tutoriais de monitoramento adicionais.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Default avatar

Senior Technical Editor

Editor at DigitalOcean, fiction writer and podcaster elsewhere, always searching for the next good nautical pun!



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel