> ## Content Index
> Fetch the complete content index at: https://www.azurebrasil.cloud/llms.txt
> Use this file to discover other available public pages before exploring further.

# Por que utilizar o Grafana no monitoramento de recursos do Azure?
- URL: https://www.azurebrasil.cloud/blog/grafana-monitoramento-azure/
- Published: 2024-10-17T13:54:47.000Z
- Updated: 2024-10-17T14:04:04.000Z
- Author: Renato Groffe

Conheça um pouco mais sobre as capacidades de monitoramento de recursos computacionais oferecidas pelo **Grafana**, bem como o suporte a esta tecnologia oferecido pelo **Microsoft Azure**.

---

## **Grafana: uma visão geral e seu uso com o Azure**

O **Grafana** é uma solução open source de grande popularidade em segmentos como **SRE** e **DevOps**, disponibilizando **dashboards** para a visualização e monitoramento dos mais variados tipos de recursos computacionais. A própria **nuvem Microsoft** não ficou alheia a este movimento, com serviços que integram o **Azure** contando com variados **dashboards**.

Mas o que motiva então o uso do **Grafana** com o **Microsoft Azure**, se já temos alternativas como o **Azure Monitor**, **Log Analytics**, queries baseadas em **KQL (Kusto Query Language)** ou, mesmo, serviços mais especializados como **Application Insights** e **Container Insights**?

Vale destacar que todos esses serviços na verdade funcionam como **fontes de dados** (**Data Sources**) para a exibição de informações úteis a partir de dashboards no **Grafana**.

Já o **Grafana**, por sua vez, estende as capacidades das soluções de monitoramento do **Azure** ao possibilitar uma visualização unificada de múltiplas fontes (podemos num mesmo dashboard ter informações até do **Azure**, **ambientes on premise**, **AWS** e **Google Cloud** combinadas!). Tais visualizações tomam por base consultas baseadas na **linguagem Kusto (KQL)**, o que abre caminho para **customizações** e a **criação de novos dashboards** a partir do conhecimento que temos em queries deste tipo e nas soluções que compõem o **Azure Monitor**.

Essa integração com **KQL** foi inclusive o pilar para o surgimento de uma nova opção de serviço no **Azure**: o **Azure Managed Grafana**. Trata-se de uma alternativa gerenciada, voltada ao monitoramento e análise dos status de soluções em nuvem. Maiores informações sobre este serviço podem ser encontradas em:

[Azure Managed Grafana | Microsoft AzureUse Azure Managed Grafana to access a variety of data sources supported by Grafana Enterprise. Combine charts, logs, and alerts, and correlate info across multiple datasets.![](https://azure.microsoft.com/favicon.ico?v2)Microsoft Azure![](https://cdn-dynmedia-1.microsoft.com/is/image/microsoftcorp/managed-grafana_val-prop-1?resMode=sharp2&op_usm=1.5,0.65,15,0&wid=905&qlt=100&fmt=png-alpha&fit=constrain)](https://azure.microsoft.com/en-us/products/managed-grafana?ref=azurebrasil.cloud)

Outro ponto que preocupa times da área de Segurança é quem poderá acessar ou não o **Portal do Azure**, devendo-se até mesmo coibir acessos a determinados recursos. Tudo isso levará à necessidade de configuração de permissões a usuários e grupos no **Microsoft Entra ID**, a fim de conceder os direitos adequados àqueles que acompanharão a operação dos mais variados recursos na nuvem.

Podemos dispensar o acesso direto ao **Portal do Azure**, concentrando as atividades de monitoramento a partir do **Grafana** (seja ou não através do serviço oferecido de maneira gerenciada pela **Microsoft**). Vale destacar que a segurança no acesso a esta experiência centralizada de monitoramento pode acontecer por meio da integração com o **Microsoft Entra ID**.

Nas próximas seções demonstrarei alguns exemplos de monitoramento de serviços do **Azure** a partir do **Grafana**, além de questões envolvendo a configuração desta solução no acesso a recursos que estão na **nuvem Microsoft**.

---

## **Dashboards gratuitos para monitoramento de recursos do Azure**

O **Grafana** conta com um **Marketplace** de dashboards que podem ser utilizados gratuitamente no monitoramento de recursos, o que envolve serviços do **Azure**, de outras nuvens (**AWS**, **Google Cloud**...) e tecnologias cloud native (**Kubernetes**, **Prometheus**...). Para pesquisar por um dashboard acesse este [**link**](https://grafana.com/grafana/dashboards/?ref=azurebrasil.cloud):

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/grafana-dash-01.png)

Clique nesta imagem para visualizar com uma melhor resolução

Vários dashboards já foram disponibilizados pelo time do **Azure** e também por profissionais independentes. Uma rápida consulta que informe o **Azure Monitor** como **Data Source** trará diversas alternativas (clique neste [**link**](https://grafana.com/grafana/dashboards/?dataSource=grafana-azure-monitor-datasource&ref=azurebrasil.cloud) para visualizar os resultados apresentados a seguir):

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/grafana-dash-11.png)

Clique nesta imagem para visualizar com uma melhor resolução

---

## **Criando um novo recurso do Grafana no Azure**

Para criar um novo recurso gerenciado do **Grafana** em uma **subscription** do **Azure** podemos selecionar a opção **Azure Managed Grafana** no **Marketplace**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-01.png)

Em **Pricing Plan** selecionar para testes a opção **Essential (Preview)**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-21.png)

Maiores detalhes sobre a precificação do **Azure Managed Grafana** podem ser encontrados em:

[Pricing – Azure Managed Grafana | Microsoft AzureView pricing for Azure Managed Grafana.![](https://azurecomcdn.azureedge.net/cvt-330c263a0875e8bc2660555d924ca0f179c7e77ad2b3a3a9d810ab5cb468c6dc/images/icon/apple-touch/180x180.png)Microsoft Azure![](https://azure.microsoft.com/svghandler/managed-grafana/?width=600&height=315)](https://azure.microsoft.com/en-us/pricing/details/managed-grafana/?ref=azurebrasil.cloud)

Avançando pelo **wizard** de criação do recurso chegaremos à seção **Permissions**. Será importante manter aqui as opções default marcadas:

- Em **System assigned managed identity** o campo **Status** deverá estar marcado como **On**. E também o campo **Add Role Assignment to this identity with 'Monitoring Reader' role on target subscription** ficará marcado. Esses ajustes permitirão que a instância do **Grafana** tenha acesso de leitura a logs e métricas de serviços como **Azure Monitor**, **Log Analytics** e **Application Insights**;
- Em **Grafana administrator role** o campo **Include myself** também estará selecionado, a fim de possibilitar que o usuário que está criando o recurso tenha acesso ao **Grafana**. Com o botão **Add** podemos também incluir outros usuários, previamente registrados no **Microsoft Entra ID**.

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-31.png)

E, por fim, procederemos com a criação deste recurso:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-41.png)

Com o recurso já criado, podemos acessar o **endpoint** que foi habilitado para o **Azure Managed Grafana**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-51.png)

Clique nesta imagem para visualizar com uma melhor resolução

A tentativa de acesso irá requerer o login com uma conta válida. Utilizei meu próprio usuário neste caso:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-55.png)

Concluído o processo de autenticação, chegaremos então ao painel inicial do **Azure Managed Grafana**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-60.png)

Clique nesta imagem para visualizar com uma melhor resolução

Acessando a opção **Dashboards** no painel esquerdo:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-65.png)

Notaremos que alguns dashboards já foram previamente adicionados (durante a criação do recurso):

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-71.png)

Clique nesta imagem para visualizar com uma melhor resolução

Expandindo os agrupamentos **Azure Monitor** e **Microsoft Defender for Cloud** aparecerão cada um desses dashboards:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-76.png)

Clique nesta imagem para visualizar com uma melhor resolução

Temos ainda a possibilidade de adicionar outros dashboards do **Marketplace** ou mesmo proceder com a criação de novos dashboards acionando o botão **New**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/create-81.png)

---

## **Um exemplo de dashboard: Azure / Insights / Storage Accounts**

Continuando a navegação pelo **Azure Managed Grafana** podemos selecionar o dashboard **Azure / Insights / Storage Accounts**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/storage-11.png)

Este dashboard trará estatísticas e diversos insights de uma **Storage Account** dentro de nossa **subscription** do **Azure**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/storage-21.png)

Clique nesta imagem para visualizar com uma melhor resolução

---

## **Posso me conectar a recursos do Azure em uma instância do Grafana fora da nuvem Microsoft?**

A resposta a esta pergunta é **SIM**! Precisaremos de uma **App Registration** criada a partir do **Microsoft Entra ID** (do **tenant** vinculado à subscription do **Azure**, no caso) como meio de viabilizar tal conexão, com a consequente configuração de um **Data Source** na instância do **Grafana** utilizando este elemento (**App Registration**).

Detalhes sobre a integração do **Azure** com o **Grafana** (incluindo a criação do **Data Source**) podem ser encontrados neste link da documentação oficial:

[https://grafana.com/docs/grafana/latest/datasources/azure-monitor/](https://grafana.com/docs/grafana/latest/datasources/azure-monitor/?ref=azurebrasil.cloud)

Alguns cuidados com as configurações no **Microsoft Azure** (procurei demonstrar no exemplo desta seção como conectar o **Grafana** a uma instância do **Azure API Management – APIM**):

1\. Configurar na seção **Authentication** da **App Registration** para que sejam emitidos **Access Tokens** e **ID Tokens**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/20-app-registrations-access-id-tokens.png)

Clique nesta imagem para visualizar com uma melhor resolução

2\. Permissões a serem definidas em **API Permissions** da **App Registration** (sempre como **Delegated**):

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/30-app-registrations-permissions.png)

Clique nesta imagem para visualizar com uma melhor resolução

3\. No **Resource Group** em que se encontram o **APIM**, o **Application Insights** e o **Log Analytics** conceder as permissões **Reader** e **Monitoring Reader** para a **App Registration**:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/40-permissions-resource-group.png)

Clique nesta imagem para visualizar com uma melhor resolução

Esses ajustes tornaram possível que o **Grafana** executando em um container na minha máquina (fora da nuvem, portanto) acessassem uma instância do **Azure API Management**. O diagrama a seguir traz uma visão geral do que fiz nesta prova de conceito, com o **Grafana** acessando métricas e logs do **APIM** a partir dos recursos do **Application Insights** e do **Log Analytics** vinculados ao mesmo:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/overview.png)

O dashboard utilizado foi disponibilizado pelo próprio time do **Azure** e está disponível no seguinte link:

[Azure / API Management | Grafana Labs![](https://grafana.com/static/assets/img/fav32.png)Grafana LabsAuthors![](https://grafana.com/media/images/meta/grafana-labs-meta-default_1200x630.png)](https://grafana.com/grafana/dashboards/16604-azure-api-management/?ref=azurebrasil.cloud)

Alguns resultados ao acessar este dashboard:

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/10/50-grafana-exemplo.png)

Clique nesta imagem para visualizar com uma melhor resolução

Este mesmo dashboard foi apresentado em uma live recente do canal **AzureBrasil Cloud** no **YouTube** (clique neste [**link**](https://www.youtube.com/watch?v=5yLDcEME0Go&t=6386s&ref=azurebrasil.cloud) para acessar o vídeo):

Para a criação da instância (container) do **Grafana** executei o comando:

```bash
docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise

```

Todo o conteúdo apresentado nesta seção foi disponibilizado anteriormente como um **guia gratuito**, em um repositório que criei no **GitHub**:

[GitHub - renatogroffe/AzureAzureAPIM-Grafana-Integration: Instruções sobre configurações para tornar possível o monitoramento de um recurso do Azure API Managament a partir de uma instância do Grafana fora da nuvem Microsoft.Instruções sobre configurações para tornar possível o monitoramento de um recurso do Azure API Managament a partir de uma instância do Grafana fora da nuvem Microsoft. - renatogroffe/AzureAzureAPIM…![](https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg)GitHubrenatogroffe![](https://opengraph.githubassets.com/eab06679feb7d8460a940e57a4c666eecb505f84e04c0740e1e22793b5eecb54/renatogroffe/AzureAzureAPIM-Grafana-Integration)](https://github.com/renatogroffe/AzureAzureAPIM-Grafana-Integration?ref=azurebrasil.cloud)

---

## **Conclusão**

A capacidade de conexão a múltiplas fontes de dados, aliada à possibilidade de criação e customização de **dashboards** gerando sofisticadas análises, são excelentes motivos para a adoção do **Grafana** em variados cenários de monitoramento. Procurei mostrar neste primeiro artigo que o próprio **Azure** não ficou alheio a tais fatos, contando com inúmeros dashboards, um serviço gerenciado que simplifica o uso do **Grafana** e até mesmo a possibilidade de que instâncias desta solução que não se encontrem na **nuvem Microsoft** se conectem à mesma (trazendo assim uma grande flexibilidade).

Finalizo este primeiro artigo agradecendo ao amigo **Rafael dos Santos** pelo convite para eu participasse com artigos aqui no blog da **AzureBrasil.cloud**. Devo retomar esse assunto (uso do **Grafana** no **Azure**) muito em breve, através de novas postagens neste espaço. Deixo também um muitíssimo obrigado ao amigo **Daniel Dias Assumpção** por todo aprendizado proporcionado sobre **Grafana** ao longo dos últimos meses.