👣 Primeiros Passos

Acessando Gafana

Enquanto o Grafana estará disponível na porta 3000, para acessar utilize o link: http://seu_ip:3000

Nota

O nome de usuário e a senha padrão são ambos admin.

Na primeira vez que acessar, será solicitado que você crie uma nova senha para garantir a segurança do acesso.

Integrando API ao Grafana

JSON API

Com acesso ao grafana acesse o menu: Home » Connections » Data sources Data sources

Em seguida clique em [Add data source] Add data source

Procure por [JSON API] e clique sobre. Json Search

No campo URL adicione http://localhost:5000 e Timeout defina em 600 Json API

Clicque em [Save & test] mas antes de sair observe que na URL após “/edit/” temos o uid do datasource do JSON API.
Ex: http://192.168.87.28:3000/connections/datasources/edit/d686f6a48c4a

Anote em seu bloco de notas

Ex.: d686f6a48c4a

Service accounts (Token)

Agora, no menu Home » Administration » Service accounts, procederemos com a criação de um Token (API do Grafana). Essa etapa é crucial para automatizar as importações das Dashboards por meio do RR Flow. Service accounts

Clique em [Add service account] Service accounts

Preecha os campos Display name: RR Flow API e Role: Admin Service accounts

Clique em [Add service account token] Service accounts

Clique em [Generate token] Service accounts

Clique em [Copy clipboard] Service accounts

Anote em seu bloco de notas

Ex.: glsa_pUL0p6xJMpaY2ZaIVCClX4secEadvNNK_e835939c

Configurando RR Flow API

A API será executada na porta 5000, para acessar utilize o seguinte link: http://seu_ip:5000/login
RR Flow Login

Nota

A senha padrão é remontti

RR Flow admin

Ao acessar o painel, encontraremos os arquivos de configuração da API. Todos esses arquivos seguem o formato JSON e são altamente personalizáveis, oferecendo uma ampla flexibilidade para atender a várias necessidades de customização.

config.json

Começaremos a exploração pelo arquivo config.json.

{
    "api_allow_subnet": [
        "127.0.0.1/32",
        "::1",
        "0.0.0.0/0",
        "::/0"
    ],
    "api_bind": "::",
    "api_port": 5000,
    "cache_lifetime": 1,
    "collection_interval": 1,
    "core_workers": 4,
    "data_path": "/var/rr-flows/",
    "debug": false,
    "maximum_disk_gb": 70,
    "password_admin_panel": "remontti",
    "grafana": [
        {
            "datasources": "xxxxxxxxxxx",
            "service_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "url": "http://localhost:3000"
        }
    ],    
    "source_path": [
        {
            "buffer": 67108864,
            "compress": "lz4",
            "name": "Borda",
            "port": 3055,
            "sampling": 1024,
            "snmp": [
                {
                    "community": "public",
                    "ip": "10.10.10.2",
                    "port": 161,
                    "version": 2
                }
            ],
            "type": "netflow",
            "vendor": "huawei"
        }
    ]
}

Aqui está uma descrição dos itens presentes no arquivo config.json:

  • api_allow_subnet: Lista de prefixos de IP que têm permissão para consumir a API. (Mantenha os IPs de localhost para que o grafana possa se alimentar dos dados)

api_allow_subnet

Altamente recomendado que você restrinja apenas para seus ips de gerencia, pois as saidas JSONs não passam por autenticação. Não me responsabilizo por vazamento de dados.

  • api_bind: Endereço IP ao qual a API será vinculada. Padrão 0.0.0.0 para todos IPv4 :: IPv4 e IPv6.
  • api_port: Porta na qual a API estará disponível.
  • cache_lifetime: Tempo de vida do cache em dias.
  • collection_interval: Intervalo de coleta do flow em minutos (Padrão 5). Não recomendo valores como 2,3 e 4, de preferencia para intervalos de 1,5,10… pois a complexidade de calculos pode acabar entregando ou não entregando alguns dados.
  • data_path: Caminho onde os dados de flows coletados serão armazenados.
  • debug: Habilita ou desabilita o modo de depuração.
    • false
    • true
  • grafana: Configurações para integração com o Grafana.
  • datasources: UID da fonte de dados do Grafana.
  • service_token: Token de serviço para autenticação no Grafana.
  • url: URL do Grafana. (Padrão http://localhost:3000)
  • maximum_disk_gb: Espaço máximo em que será armazenado no diretório data_path em gigabytes.
  • password_admin_panel: Senha para acessar o painel de administração. (Padrão remontti)
  • source_path: Lista de fontes de dados de fluxos (routers que enviarão os fluxos). É possível adicionar várias fontes de dados para diferentes routers, dependendo do nível de sua licença. Isso permite monitorar e coletar fluxos de múltiplas origens.
  • buffer: Define o buffer de entrada do soquete de rede para bufflen bytes.
  • compress: Algoritmo de compressão. (Padrão lz4)
    • lzo: Comprime os arquivos de fluxo com compressão LZO1X-1. Compressão mais rápida.
    • lz4: Comprime os arquivos de fluxo com compressão LZ4. Rápido e eficiente.
    • bz2: Comprime os arquivos de fluxo com compressão bz2. Lento, mas mais eficiente.
  • name: Nome da fonte de dados.
  • port: Porta que receberá os dados.
  • sampling: Aplica a taxa de amostragem, a menos que a taxa de amostragem seja anunciada pelo dispositivo exportador, neste caso defina o valor como auto.
  • snmp: Configurações SNMP.
    • community: Comunidade SNMP. (Padrão public)
    • ip: Endereço IP SNMP.
    • port: Porta SNMP. (Padrão 161)
    • version: Versão SNMP, padão 2. (Se m suporte para v3 ainda)
  • type: Tipo de fonte de dados (neste caso, “”).
    • netflow
    • sflow
  • vendor: Fornecedor da fonte de dados.
    • huawei
    • cisco
    • juniper
    • routeros
    • vyos
    • linux

Leia mais sobre o config.json clicando aqui!

Anterior mente anotamos Service accounts exemplo d686f6a48c4a e o uid da JSON API exemplo glsa_pUL0p6xJMpaY2ZaIVCClX4secEadvNNK_e835939c

Ajuste service_token e datasources com suas anotações obtidas acima:

    "grafana": [
        {
            "datasources": "d686f6a48c4a",
            "service_token": "glsa_pUL0p6xJMpaY2ZaIVCClX4secEadvNNK_e835939c",
            "url": "http://localhost:3000"
        }
    ],

Aviso

Sempre que o arquivo config.json for modificado, é necessário reiniciar o serviço para que as alterações tenham efeito. Você pode reiniciar pelo terminarl systemctl restart rr-flow-api.service

Clique em [Salvar], [Voltar], [Serviços] e [Reiniciar API]

Importando as Dashboards

Você tem a opção de instalar ou atualizar todas as dashboards de uma única vez clicando no botão [Remover e Reinstalar Todas]. Além disso, é possível instalar as dashboards individualmente ou excluí-las conforme necessário.

Cuidado

Se o Grafana estiver em um servidor externo, NÃO me responsabilizo por qualquer remoção acidental de outras dashboards. Recomendo instalar cada dashboard individualmente para evitar perdas indesejadas, ou utilizar o grafana da instalação do RR Flow API. A partir da versão 1.4.0, apenas as Dashboards com as seguintes TAGs serão removidas:
RR-FLOW-M RR-FLOW RR-INFO RR-FLOW-HOME RR FLOW

Clique em [Grafana] e [Remover e Reinstalar Todas] RR Flow grafana

Para acessar suas configurações, clique no canto superior direito onde se encontra o seu nome de usuário e selecione [Profile].

RR Flow grafana

Em seguida, defina Home Dashboard para General/Home e clique em [Salvar]. RR Flow grafana

Agora, na sua página inicial, você terá acesso a todas as Dashboards disponíveis.

RR Flow grafana