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
Em seguida clique em [Add data source]
Procure por [JSON API] e clique sobre.
No campo URL adicione http://localhost:5000 e Timeout defina em 300
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.
Clique em [Add service account]
Preecha os campos Display name: RR Flow API e Role: Admin
Clique em [Add service account token]
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
Nota
A senha padrão é remontti
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": 5,
"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.
Clique em [Grafana] e [Remover e Reinstalar Todas]
Para acessar suas configurações, clique no canto superior direito onde se encontra o seu nome de usuário e selecione [Profile].
Em seguida, defina Home Dashboard para General/Home e clique em [Salvar].
Agora, na sua página inicial, você terá acesso a todas as Dashboards disponíveis.