Coletando informações do Azure com Grafana


Prepared by
Ricardo Martins
Cloud Solution Architect

Recentemente foi lançado um plugin do Azure Monitor para o Grafana que eu resolvi testar e escrever este post.

Eu segui as orientações deste link e neste artigo vou entrar em detalhes do procedimento.

 

Criando a VM

Criando o Resource Group

rmartins@jarvis:~$ az group create --name rg-grafana --location eastus

 

Criando a VM

rmartins@jarvis:~$ az vm create --resource-group rg-grafana --name grafana-server --image UbuntuLTS --location eastus --generate-ssh-keys

Abrindo a porta correspondente no NSG

O Grafana utiliza a porta TCP 3000, portanto é necessário liberar esta porta no Network Security Group da VM criada de modo a liberar o acesso à VM nesta porta.

rmartins@jarvis:~$ az network nsg list -g rg-grafana -o table

Location    Name               ProvisioningState    ResourceGroup    ResourceGuid
----------  -----------------  -------------------  ---------------  ------------------------------------
eastus      grafana-serverNSG  Succeeded            rg-grafana       9bfbd4f6-95ad-48c9-a3b7-d68af0d707f5

rmartins@jarvis:~$ az network nsg rule create --resource-group rg-grafana --nsg-name grafana-serverNSG --name allow-grafana --description "Allow access to port 3000 for HTTPS" --access Allow --protocol Tcp --direction Inbound --priority 102 --source-address-prefix "*"  --source-port-range "*" --destination-address-prefix "*" --destination-port-range "3000"

 

Conectando na VM

rmartins@jarvis:~$ az vm show --resource-group rg-grafana --name grafana-server -d --query publicIps -otsv



rmartins@jarvis:~$ ssh rmartins@[PublicIP] -i /home/rmartins/.ssh/id_rsa

 

Instalando o grafana

Procedimento de instalação seguindo este tutorial.

Adicionar repositório

rmartins@grafana-server:~$ sudo sh -c 'echo "deb https://packagecloud.io/grafana/stable/debian/ jessie main" >> /etc/apt/sources.list'

 

Adicionar chave do Package Cloud

rmartins@grafana-server:~$ sudo curl https://packagecloud.io/gpg.key | sudo apt-key add -

 

Atualizar repositórios

rmartins@grafana-server:~$ sudo apt-get update

 

Instalar Grafana

rmartins@grafana-server:~$ sudo apt-get install grafana

 

Inicializar Grafana

rmartins@grafana-server:~$ sudo systemctl daemon-reload

rmartins@grafana-server:~$ sudo systemctl start grafana-server

rmartins@grafana-server:~$ sudo systemctl status grafana-server

 

Habilitar no boot

rmartins@grafana-server:~$ sudo systemctl enable grafana-server.service

 

Conectar no serviço

Usar o endereço IP público da VM criada apontando para o a porta 3000 e utilizar o usuário e senha que vem configurados por padrão. Usuário admin e senha admin.

um screenshot da tela de login do Grafana

Uma vez verificado que o acesso está ok, vamos ao próximo passo que é a instalação do plugin do Azure Monitor

um screenshot do Dashboard do Grafana

Instalando o Azure Monitor Plugin

A instalação do plugin será feita seguindo esta documentação.

Uma vez conectado na VM, rodar o comando abaixo:

rmartins@grafana-server:~$ sudo grafana-cli plugins install grafana-azure-monitor-datasource

 

Em seguida reiniciar o serviço do grafana:

rmartins@grafana-server:~$ sudo systemctl restart grafana-server

 

Após isto será possível verificar que o plugin já foi instalado e já aparece como um datasource:

um screenshot do Dashboard do Grafana

Criando o service principal

O próximo passo é criar um service principal para o plugin de modo que ele possa se conectar ao Azure Active Directory. Para isto basta seguir as instruções deste link.

Ao registrar a aplicação, no meu caso ficou conforme abaixo:

um screenshot de um telefone celular

Após registrar a aplicação, vamos pegar as informações de Application Id e Authentication Key. Para isto, ainda dentro do App Registration do AAD, vamos procurar pela aplicação criada:

um screenshot da tela de App Registration

Após clicar na aplicação, basta copiar o Application ID, neste caso, addd1254-cb9b-4589-a99c-ac382ebd33ba

um screenshot do application ID

Para gerar a Authentication Key, basta ir em Keys dentro de All Settings:

um screenshot da tela de Settings com ênfase em Keys

Screenshot da página de Settings

 

Ao clicar em salvar, a key será gerada e exibida:

Screenshot da Key sendo salva e exibida

Neste caso, 3NZ4F2FBwm6h8sfF48dE2Owg3si7xHSWtEAnBwAKqjk=

Agora precisamos do Directory ID do AAD, que é obtido nas propriedades do AAD:

Screenshot do Azure Active Directory

* Directory ID omitido por questões de segurança

Por fim, vamos associar a role de Reader para a nossa aplicação. Para isso vá na sua subscription, em seguida acesse o IAM, escolha a opção para adicionar apontando a role Reader e escolha a aplicação criada:

 

Finalizando a configuração no Grafana

Agora vamos ajustar as configurações no Grafana, adicionando o datasource:

Screenshot do Dashboard com ênfase no Data Source

Em seguida vamos preencher com as informações necessárias:

– Subscription ID

– TenantID (ID do AAD)

– ClientID (Application ID)

– Client Secret (Key)

* Neste caso não estou usando o Application Insights. Caso esteja, basta adicionar os dados necessários.

Após salvar é feito um teste. Se estiver tudo ok você deve ver algo assim:

um screenshot da tela do Edit data source

 

Criando o primeiro dashboard

Agora vamos ao próximo passo:

um screenshot do Dashboard com ênfase no new dashboard

Tipo: Graph

uma captura de tela do graph

Clique em Panel Tile:

Screenshot do Panel Tile

E ao clicar em Edit esta teremos as opções abaixo:

um screenshot da tela de metrics do graph

Em Metrics, você verá que o Azure Monitor foi adicionado como DataSource default. Agora basta criar o gráfico para o recurso desejado:

uma captura de tela do gráfico relacionado ao recurso

Neste caso peguei dados de uso de CPU de duas VMs e salvei o dashboard como CPU VMs:

um screenshot da tela de salvamento da CPU VMS

Visualizando:

um screenshot da tela final

Espero que tenha sido útil!

 


Autor: Microsoft Tech