O autor selecionou a COVID-19 Relief Fund para receber uma doação como parte do programa Write for DOnations.
O Grafana é uma ferramenta de visualização e monitoramento de dados de código aberto que integra-se com dados complexos de fontes como o Prometheus, InfluxDB, Graphite e o ElasticSearch. O Grafana permite criar alertas, notificações e filtros ad-hoc para seus dados, além de também tornar a colaboração com seus colegas de equipe mais fácil através de recursos de compartilhamento integrados.
Neste tutorial, você irá instalar o Grafana e protegê-lo 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 uma melhor organização das permissões da sua equipe.
Para seguir este tutorial, será necessário:
sudo
e um firewall configurado com o ufw
.your_domain
do começo ao fim. Você pode comprar um nome de domínio em Namecheap, obter um gratuitamente em Freenom ou usar o registrado de domínios de sua escolha.your_domain
apontando para o endereço IP público do seu servidor.www.your_domain
apontando para o endereço de IP público do seu servidor.Neste primeiro passo, você irá instalar o Grafana em seu servidor Ubuntu 20.04. Você pode instalar o Grafana baixando diretamente de seu site oficial ou visitando um repositório APT. Como um repositório APT torna mais fácil instalar e gerenciar as atualizações do Grafana, esse método será usado neste tutorial.
Baixe a chave GPG do Grafana com o wget
e , em seguida, canalize o resultado para o apt-key
. Isso irá adicionar a chave à lista de chaves confiáveis da sua instalação APT, que lhe permitirá baixar e verificar o pacote Grafana assinado pelo GPG:
- wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Neste comando, a opção -q
desliga a mensagem de atualização de status para o wget
, e o -O
apresenta o arquivo que você baixou no terminal. Essas duas opções garantem que apenas o conteúdo do arquivo baixado seja enviado por um pipeline para o apt-key
.
Em seguida, adicione o repositório do Grafana às suas fontes APT:
- sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
Recarregue seu cache APT para atualizar suas listas de pacotes:
- sudo apt update
Agora, prossiga com a instalação:
- sudo apt install grafana
Assim que o Grafana for instalado, use o systemctl
para iniciar o servidor Grafana:
- sudo systemctl start grafana-server
Em seguida, confirme se o Grafana está sendo executado verificando o status do serviço:
- sudo systemctl status grafana-server
Você receberá um resultado semelhante a este:
Output● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago
Docs: http://docs.grafana.org
Main PID: 15982 (grafana-server)
Tasks: 7 (limit: 1137)
...
Este resultado contém informações sobre o processo do Grafana, incluindo seu status, o identificador de processo (PID) principal e muito mais. O active (running)
mostra que o processo está funcionando corretamente.
Por fim, habilite o serviço para iniciar automaticamente o Grafana na inicialização do sistema:
- sudo systemctl enable grafana-server
Você receberá o seguinte resultado:
OutputSynchronizing 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 o início automático do Grafana.
O Grafana agora está instalado e pronto para ser usado. Em seguida, você protegerá sua conexão com o Grafana com um proxy reverso e um certificado SSL.
Usar um certificado SSL garantirá que seus dados estarão seguros criptografando a conexão em ambas a direções com o Grafana. Mas, para fazer uso desta conexão, primeiro será necessário 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 do Nginx com o Let’s Encrypt nos pré-requisitos. Você pode usar qualquer editor de texto, mas para este tutorial usaremos o nano
:
- sudo nano /etc/nginx/sites-available/your_domain
Localize o seguinte bloco:
...
location / {
try_files $uri $uri/ =404;
}
...
Como você já configurou o Nginx para se comunicar através do SSL e porque o tráfego Web para seu servidor já passa pelo Nginx, basta dizer ao Nginx para encaminhar todos os pedidos para o Grafana, que funciona na porta 3000
por padrão.
Excluia a linha try_files
existente neste location block
(bloco de localização) e substitua-a pela seguinte opção proxy_pass
:
...
location / {
proxy_pass http://localhost:3000;
}
...
Isso irá mapear o proxy para a porta apropriada. Depois de terminar, salve e feche o arquivo pressionando o CTRL+X
, Y
e então ENTER
se estiver usando o nano
.
Agora, teste as novas configurações para garantir que tudo esteja configurado corretamente:
- sudo nginx -t
Você receberá o seguinte resultado:
Outputnginx: 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:
- sudo systemctl reload nginx
Agora você pode acessar a tela de login padrão do Grafana direcionando seu navegador Web para https://your_domain
. Se não conseguir chegar ao Grafana, verifique se o firewall está definido para permitir o tráfego na porta 443
e refaça as instruções anteriores.
Com a conexão com o Grafana criptografada, implemente agora as medidas de segurança adicionais, começando com a alteração das credenciais administrativas padrão do Grafana.
Como cada instalação do Grafana usa as mesmas credenciais administrativas por padrão, é uma prática recomendada alterar suas informações de login o mais rápido possível. Neste passo, você irá atualizar as credenciais para melhorar a segurança.
Comece navegando para https://your_domain
no seu navegador Web. Isso irá abrir a tela de login padrão onde você verá o logotipo do Grafana, um formulário que lhe pede para digitar um Email or ursername (E-mail ou nome de usuário) e Password (Senha), um botão de Login e um link Forgot your password? (Esqueceu sua senha?).
Digite admin
em ambos os campos Email ou nome de usuário e Senha e clique no botão de Login.
Na próxima tela, você será solicitado a tornar sua conta mais segura alterando a senha padrão:
Digite a senha que você gostaria de começar a usar nos campos New password (nova senha) e Confirm new password (confirmar nova senha).
A partir daqui, você pode clicar em Submit (Enviar) para salvar as novas informações ou pressionar Skip (Pular) para ir ao próximo passo. Caso pule essa etapa, será solicitado a alterar a senha da próxima vez que fizer login.
Para aumentar a segurança da sua configuração do Grafana, clique em Enviar. Você será direcionado ao painel de Welcome to Grafana (Bem-vindo ao Grafana):
Agora você protegeu sua conta alterando as credenciais padrão. Em seguida, você fará alterações na sua configuração do Grafana para que ninguém possa criar uma nova conta do Grafana sem sua permissão.
O Grafana oferece opções que permitem aos visitantes criar contas de usuário para si mesmos e visualizar painéis de visualização sem se registrar. Quando o Grafana não estiver acessível através da internet ou quando estiver funcionando com dados disponíveis publicamente como o status de serviço, pode ser interessante permitir essas características. 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 este problema, faça algumas alterações na sua configuração do Grafana.
Comece abrindo o arquivo de configuração principal do Grafana para edição:
- sudo nano /etc/grafana/grafana.ini
Localize a seguinte diretiva allow_sign_up
no cabeçalho [users]
:
...
[users]
# disable user signup / registration
;allow_sign_up = true
...
Ativar esta diretiva com true
adiciona um botão de Sign Up (Registrar-se) na tela de login, permitindo que os usuários se registrem e acessem o Grafana.
Desativar esta diretiva com o false
remove o botão de Registrar-se e fortalece a segurança e privacidade do Grafana.
Descomente essa diretiva removendo o ;
no início da linha e definindo a opção como false
:
...
[users]
# disable user signup / registration
allow_sign_up = false
...
Em seguida, localize a diretiva enabled
a seguir no cabeçalho [auth.anonymous]
:
...
[auth.anonymous]
# enable anonymous access
;enabled = false
...
Definir enabled
como true
dá acesso a usuários não registrados aos seus dashboards; definindo essa opção como false
limita o acesso ao painel apenas a usuários registrados.
Descomente essa diretiva removendo o ;
no início da linha e definindo a opção como false
.
...
[auth.anonymous]
# enable anonymous access
enabled = false
...
Salve o arquivo e saia do seu editor de texto.
Para ativar as mudanças, reinicie o Grafana:
- sudo systemctl restart grafana-server
Confirme se tudo está funcionando verificando o status de serviço do Grafana:
- sudo systemctl status grafana-server
Assim como antes, o resultado irá informar que o Grafana está active (running)
.
Agora, direcione seu navegador Web para https://your_domain
. Para retornar à tela de Registrar-se, leve seu cursor para seu avatar na parte inferior esquerda da tela e clique na opção de Sign out (Sair) que aparece.
Depois de sair, verifique se não há nenhum botão de Registrar-se e se você não consegue entrar sem inserir as credenciais de login.
Neste momento, o Grafana está totalmente configurado e pronto para ser usado. Em seguida, você pode simplificar o processo de login para sua organização autenticando-se através do GitHub.
Para uma abordagem alternativa para se registrar, configure o Grafana para se autenticar através do GitHub, que fornece acesso de login a todos os membros das organizações autorizadas do GitHub. Isso pode ser particularmente útil quando você quiser permitir que vários desenvolvedores colaborem e acessem métricas sem ter que criar credenciais específicas do Grafana.
Comece entrando em uma conta do GitHub associada à sua organização e navegue até sua página de perfil do GitHub em https://github.com/settings/profile
.
Mude o contexto das configurações clicando em seu nome no lado esquerdo da tela e selecione sua organização no menu suspenso. Isso irá mudar o contexto de Personal settings (Configurações pessoais) para as Organization settings (Configurações organizacionais).
Na próxima tela, você verá seu Organization profile (Perfil da organização) onde você pode alterar as configurações como seu Organization display name (Nome de exibição da organização), Email e URL da organização.
Como o Grafana usa o OAuth - um padrão aberto para conceder a terceiros acesso remoto a recursos locais e resources - para autenticar usuários através do GitHub, você precisará criar um novo aplicativo do OAuth dentro do GitHub.
Clique no link OAuth Apps em Developer settings (Configurações de desenvolvedor) no lado esquerdo inferior da tela.
Se você ainda não tiver nenhum aplicativo OAuth associado à sua organização no GitHub, você será informado que No Organization Owned Applications (Nenhum aplicativo de propriedade da organização). Caso contrário, você verá uma lista dos aplicativos OAuth já conectados à sua conta.
Clique no botão New OAuth App para continuar.
Na próxima tela, preencha os seguintes detalhes sobre sua instalação do Grafana:
https://your_domain
neste campo, substituindo your_domain
pelo seu domínio.https://your_domain/login/github
.Tenha em mente que os usuários do Grafana logando através do GitHub verão os valores que você digitou nos primeiros três campos anteriores, então não se esqueça de inserir algo significativo e adequado.
Quando concluído, o formulário vai ficar parecido com este:
Clique no botão verde Register application (Registrar aplicativo).
Agora você será redirecionado para uma página que contém Client ID e o Client Secret associados com seu novo aplicativo do OAuth. Observe ambos os valores, pois você precisará adicioná-los ao arquivo de configuração principal do Grafana para completar a configuração.
Aviso: certifique-se de manter seu Client ID e seu Client Secret em uma localização segura e não pública, pois eles podem ser usados como base para um ataque.
Com seu aplicativo OAuth do GitHub criado, você está pronto para reconfigurar o Grafana para usar o GitHub para autenticação.
Para completar a autenticação do GitHub para sua configuração do Grafana, você fará agora algumas alterações em seus arquivos de configuração do Grafana.
Para começar, abra o arquivo de configuração principal do Grafana.
- 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 o ;allowed_domains =
e ;team_ids =
, que não serão alterados neste tutorial.
Em seguida, faça as seguintes alterações:
enabled
e allow_sign_up
como true
. Isso habilita a Autenticação via GitHub e permite que membros da organização autorizada criem suas próprias contas. Observe que essa configuração é diferente da propriedade allow_sign_up
em [users]
que você mudou Passo 4.client_id
e client_secret
para os valores que você recebeu enquanto criava seu aplicativo OAuth do GitHub.allowed_organizations
para 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 vai ficar assim:
...
[auth.github]
enabled = true
allow_sign_up = true
client_id = your_client_id_from_github
client_secret = your_client_secret_from_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
;allowed_domains =
;team_ids =
allowed_organizations = your_organization_name
...
Agora, você informou ao Grafana tudo o que ele precisa saber sobre o GitHub. Para completar a configuração, será necessário ativar os redirecionamentos por trás de um proxy reverso. Isso é feito definindo um valor root_url
no cabeçalho [server]
.
...
[server]
root_url = https://your_domain
...
Salve suas alterações e feche o arquivo.
Então, reinicie o Grafana para ativar as mudanças:
- sudo systemctl restart grafana-server
Por fim, verifique se o serviço está funcionando.
- sudo systemctl status grafana-server
O resultado indicará que o serviço está active(running)
.
Agora, teste seu novo sistema de autenticação navegando para https://your_domain
. Se você já estiver conectado ao Grafana, passe seu mouse sobre o log do avatar no canto inferior esquerdo da tela. Em seguida, clique em Sair no menu secundário que aparece próximo ao seu nome.
Na página de login, você verá uma nova seção no botão de Login original que inclui um botão Sign in with GitHub (Registrar-se com o GitHub) com a logotipo do GitHub.
Clique no botão Registrar-se com o GitHub para ser redirecionado ao GitHub, onde você irá iniciar sessão em sua conta do GitHub e confirmar sua intenção de Authorize Grafana (Autorizar o Grafana).
Clique no botão verde Authorize your_github_organization.
Nota: certifique-se de que sua conta do GitHub é um membro de sua organização aprovada e que seu endereço de e-mail do Grafana corresponde ao seu endereço de e-mail do GitHub. Se tentar autenticar-se com uma conta do GitHub que não seja membro de sua organização aprovada, você receberá uma mensagem Login Failed (Falha no login) informando User not a member of one of the required organizations (Usuário não membro de uma das organizações necessárias).
Agora, você será conectado com sua conta do Grafana existente. Se uma conta do Grafana ainda não existir para o usuário que você fez login, o Grafana criará uma nova conta de usuário com permissões de Viewer, garantindo que novos usuários só podem usar os painéis existentes.
Para alterar as permissões padrão para novos usuários, abra o arquivo de configuração principal do Grafana para edição.
- 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 como um dos seguintes valores:
Viewer
— só pode usar os painéis existentesEditor
— pode usar, modificar e adicionar painéisAdmin
— tem permissão para fazer tudoEste tutorial irá definir a atribuição automática como Viewer
:
...
[users]
...
auto_assign_org_role = Viewer
...
Depois de salvar suas alterações, feche o arquivo e reinicie o Grafana:
- sudo systemctl restart grafana-server
Verifique o status do serviço:
- sudo systemctl status grafana-server
Assim como antes, o status será active (running)
.
Neste momento, você configurou totalmente o Grafana para permitir que membros da sua organização do GitHub se registrem e usem sua instalação do Grafana.
Neste tutorial você instalou, configurou e protegeu o Grafana. Além disso, você também aprendeu como permitir que membros da sua organização se autentiquem através do GitHub.
Para ampliar sua atual instalação do Grafana, consulte a lista de painéis e plugins oficiais e da comunidade. Para aprender mais sobre como usar o Grafana em geral, consulte a documentação oficial do Grafana ou confira nossos outros tutoriais de monitoramento.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
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!