Estrutura de dados JSON

Endpoint: /trafstat

http://[ip]:[porta]/trafstat

Este endpoint retorna informações agregadas de tráfego de rede baseadas em ASN e endereços IP, permitindo filtrar dados por número de fluxos, ASN e outras informações.

Descrição dos Parâmetros:

  • timestart: Define o início do intervalo de tempo (em timestamp). Se não for informado, utiliza o valor da variável collection_interval subtraído da hora atual.
  • timestop: Define o final do intervalo de tempo (em timestamp). Se não for informado, utiliza a hora atual.
  • fil: Filtro a ser aplicado nos dados. Neste exemplo, ele pode ser um ASN específico ou um IP (ex.: fil=ip 1.1.1.1).
  • lines: Número de linhas a serem retornadas.
  • aggregation: Método de agregação dos dados, como srcas (agregação pelo ASN de origem).
  • order: Define a ordenação dos dados, com base em um campo selecionado (Exemplo, bytes).
  • direction: Direção do tráfego (src ou dst).
  • ignoreasn: Indica se o ASN deve ser ignorado (y/n Arquivo ignore-asn.json).).
  • source: Define a origem dos dados

URL Exemplo 1

http://[ip]:[porta]/trafstat?timestart=1726788385914&timestop=1726788625914&fil=any&lines=1&aggregation=srcas&order=bytes&direction=src&ignoreasn=y&source=Borda

URL Exemplo 2

http://[ip]:[porta]/trafstat?fil=ip%201.1.1.1&lines=1&aggregation=srcas&order=bytes&direction=src&ignoreasn=y&source=Borda

Saída

[
  {
    "ASN": {
      "def": {
        "number": "0",
        "organization": "Private"
      },
      "dst": {
        "number": 0,
        "organization": "Private"
      },
      "src": {
        "number": 13335,
        "organization": "CLOUDFLARENET, US"
      }
    },
    "City": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Continent Name": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Country Name": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "ISO Code": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Latitude": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Longitude": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "UF": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "aggr_flows": 2,
    "asn_def": 13335,
    "asn_def_name": "CLOUDFLARENET, US",
    "asn_dst": 0,
    "asn_src": 13335,
    "bgp_next_hop": "0.0.0.0",
    "bpp": 214,
    "bps": 58436,
    "bytes": 438272,
    "def_addr": "0.0.0.0",
    "dst_addr": "0.0.0.0",
    "dst_addr_nat": "",
    "dst_net_mask": "/0",
    "dst_port": 0,
    "dst_port_nat": "",
    "first": 1726792800,
    "input_snmp": 0,
    "input_snmp_desc": null,
    "input_snmp_name": null,
    "ip_next_hop": "0.0.0.0",
    "label": "<none>",
    "last": 1726792860,
    "mac_dst_in": "",
    "mac_dst_out": "",
    "mac_src_in": "",
    "mac_src_out": "",
    "output_snmp": 0,
    "output_snmp_desc": null,
    "output_snmp_name": null,
    "packets": 2048,
    "proto": "Any",
    "src_addr": "0.0.0.0",
    "src_addr_nat": "",
    "src_net_mask": "/0",
    "src_port": 0,
    "src_port_nat": "",
    "tcp_flags": "........",
    "tos": 0
  }
]

Descrição dos Campos

  • ASN: Informações sobre os ASN envolvidos.
  • def: ASN padrão.
  • dst: ASN de destino.
  • src: ASN de origem, neste exemplo, o Google (15169) ou Cloudflare (13335).
  • aggr_flows: Número total de fluxos agregados.
  • bpp: Bytes por pacote.
  • bps: Bits por segundo.
  • bytes: Total de bytes trafegados.
  • packets: Número total de pacotes.
  • proto: Protocolo (ex.: TCP, UDP, etc.).
  • src_addr: Endereço de origem (anonimamente como 0.0.0.0).
  • dst_addr: Endereço de destino (anonimamente como 0.0.0.0).

Endpoint: /favpie

http://[ip]:[porta]/favpie

Este endpoint retorna informações sobre tráfego de rede agregadas contida no arquivo fav-asn-prefix-graphs.json,

Descrição dos Parâmetros:

  • timestart: Define o início do intervalo de tempo (em timestamp). Se não for informado, utiliza o valor da variável collection_interval subtraído da hora atual.
  • timestop: Define o final do intervalo de tempo (em timestamp). Se não for informado, utiliza a hora atual.
  • fil: Filtro a ser aplicado nos dados.
  • lines: Define o número de linhas a serem retornadas.
  • aggregation: Método de agregação dos dados.
  • order: Define a ordenação dos dados, com base em um campo selecionado.
  • direction: Direção do tráfego (src ou dst).
  • ignoreasn: Define se os dados de ASN devem ser ignorados ou não. (Arquivo ignore-asn.json).
  • source: Define a origem dos dados.

A resposta JSON contém informações sobre o tráfego de rede, agrupadas por empresas ou serviços, com o número de bytes e a taxa de bits por segundo (bps). Abaixo estão três exemplos de saídas.

URL Exemplo 1

http://[ip]:[porta]/favpie?timestart=1726788385914&timestop=1726788625914&fil=any&lines=1&aggregation=nextas&order=bytes&direction=src&ignoreasn=n&source=Borda

Saída Geral

[
  {
    "bps": 2356627,
    "bytes": 26217472,
    "name_info": "Garena"
  },
  {
    "bps": 2991787,
    "bytes": 26926080,
    "name_info": "Microsoft"
  },
  {
    "bps": 5970243,
    "bytes": 28358656,
    "name_info": "Netflix"
  },
  {
    "bps": 8984600,
    "bytes": 95461376,
    "name_info": "Apple"
  }
]

URL Exemplo 2

http://[ip]:[porta]/favpie?fil=any&lines=1&aggregation=nextas&order=bytes&direction=src&ignoreasn=n&source=Borda

Saída

[
  {
    "bps": 122115,
    "bytes": 3434496,
    "name_info": "Level3"
  },
  {
    "bps": 1734763,
    "bytes": 62234624,
    "name_info": "Valve Corp."
  },
  {
    "bps": 1960401,
    "bytes": 83072000,
    "name_info": "Garena"
  },
  {
    "bps": 3781231,
    "bytes": 118163456,
    "name_info": "Netflix"
  },
]

URL Exemplo 3

http://[ip]:[porta]/favpie?fil=as 15169&lines=1&aggregation=nextas&order=bytes&direction=src&ignoreasn=n&source=Borda

Saída

[
  {
    "bps": 255097900,
    "bytes": 3730806784,
    "name_info": "Google"
  }
]

Descrição dos Campos

  • bps: Taxa de bits por segundo (bps).
  • bytes: Quantidade total de bytes trafegados.
  • name_info: Nome da empresa ou serviço associado ao tráfego (ex.: “Google”, “Netflix”, “Akamai”).

Endpoint: /traffile

http://[ip]:[porta]/traffile

Este endpoint retorna informações de tráfego de rede com base em arquivos de fluxo, permitindo a filtragem por ASN, endereço IP, país, entre outros. Abaixo estão exemplos de chamadas de API, suas saídas JSON e a explicação dos parâmetros.

Descrição dos Parâmetros:

  • timestart: Define o início do intervalo de tempo (em timestamp). Se não for informado, utiliza o valor da variável collection_interval subtraído da hora atual.
  • timestop: Define o final do intervalo de tempo (em timestamp). Se não for informado, utiliza a hora atual.
  • fil: Filtro a ser aplicado nos dados.
  • aggregation: Método de agregação dos dados.
  • order: Define a ordenação dos dados, com base no campo selecionado.
  • source: Define a origem dos dados.

URL Exemplo 1

http://[ip]:[porta]/traffile?timestart=1726788385914&timestop=1726788625914&fil=dst ip 8.8.8.8&aggregation=router&order=bytes&source=Borda

URL Exemplo 2

http://[ip]:[porta]/traffile?fil=any&aggregation=router&order=bytes&source=Borda

A resposta JSON contém informações detalhadas sobre o tráfego de rede. Abaixo estão dois exemplos de saídas, um com dados gerais e outro com filtragem por endereço IP.

[
  {
    "ASN": {
      "def": {
        "number": "0",
        "organization": "Private"
      },
      "dst": {
        "number": 0,
        "organization": "Private"
      },
      "src": {
        "number": 0,
        "organization": "Private"
      }
    },
    "City": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Continent Name": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Country Name": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "ISO Code": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Latitude": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "Longitude": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "UF": {
      "def": "",
      "dst": "",
      "src": ""
    },
    "aggr_flows": 24,
    "asn_def": 0,
    "asn_def_name": null,
    "asn_dst": 0,
    "asn_src": 0,
    "bgp_next_hop": "0.0.0.0",
    "bpp": 100,
    "bps": 330820,
    "bytes": 2481152,
    "def_addr": "0.0.0.0",
    "dst_addr": "0.0.0.0",
    "dst_addr_nat": "",
    "dst_net_mask": "/0",
    "dst_port": 0,
    "dst_port_nat": "",
    "first": 1726788300,
    "input_snmp": 0,
    "input_snmp_desc": null,
    "input_snmp_name": null,
    "ip_next_hop": "0.0.0.0",
    "label": "<none>",
    "last": 1726788360,
    "mac_dst_in": "",
    "mac_dst_out": "",
    "mac_src_in": "",
    "mac_src_out": "",
    "output_snmp": 0,
    "output_snmp_desc": null,
    "output_snmp_name": null,
    "packets": 24576,
    "proto": "Any",
    "src_addr": "0.0.0.0",
    "src_addr_nat": "",
    "src_net_mask": "/0",
    "src_port": 0,
    "src_port_nat": "",
    "tcp_flags": "........",
    "tos": 0
  }
]

Descrição dos Campos

  • ASN: Informações sobre os ASN envolvidos.
  • def: ASN padrão.
  • dst: ASN de destino.
  • src: ASN de origem.
  • City: Informações sobre a cidade (vazio se não disponível).
  • Continent Name: Nome do continente (vazio se não disponível).
  • Country Name: Nome do país (vazio se não disponível).
  • ISO Code: Código ISO do país (vazio se não disponível).
  • Latitude: Latitude da localização (vazio se não disponível).
  • Longitude: Longitude da localização (vazio se não disponível).
  • UF: Unidade Federativa (estado) (vazio se não disponível).
  • aggr_flows: Número total de fluxos agregados.
  • bpp: Bytes por pacote.
  • bps: Bits por segundo.
  • bytes: Total de bytes.
  • packets: Número total de pacotes.
  • proto: Protocolo (ex.: TCP, UDP, etc.).
  • src_addr: Endereço de origem (pode estar anonimamente como 0.0.0.0).
  • dst_addr: Endereço de destino (pode estar anonimamente como 0.0.0.0).

Endpoint: /trafinterface

http://[ip]:[porta]/trafinterface

Este endpoint retorna informações de tráfego de rede baseadas em interfaces de rede. Ele oferece parâmetros para filtrar dados por interface, número de linhas e direção do tráfego.

Descrição dos Parâmetros:

  • timestart: Define o início do intervalo de tempo (em timestamp). Se não for informado, utiliza o valor da variável collection_interval subtraído da hora atual.
  • timestop: Define o final do intervalo de tempo (em timestamp). Se não for informado, utiliza a hora atual.
  • fil: Filtro a ser aplicado nos dados.
  • lines: Número de linhas a serem retornadas.
  • min: Valor mínimo para inclusão no resultado.
  • direction: Direção do tráfego, podendo ser src (origem) ou dst (destino).
  • source: Define a origem dos dados.

Exemplos

URL Exemplo 1

http://[ip]:[porta]/trafinterface?fil=any&lines=5&min=0&direction=src&source=Borda

URL Exemplo 2

http://[ip]:[porta]/trafinterface?timestart=1726788385914&timestop=1726788625914&fil=any&lines=5&min=0&direction=src&source=Borda

A resposta JSON contém informações sobre o tráfego de rede em diferentes interfaces. Abaixo estão dois exemplos de saídas, uma com um único timestamp e outra com múltiplos intervalos de tempo.

Único Intervalo de Tempo

[
  {
    "interface": "40GE0/1/49.2114 (OPERADORA_IPV4)",
    "datatime": [
      1726789440
    ],
    "bps": [
      9614664226
    ]
  },
  {
    "interface": "40GE0/1/49.2115 (OPERADORA_IPV6)",
    "datatime": [
      1726789440
    ],
    "bps": [
      668149760
    ]
  }
]

Múltiplos Intervalos de Tempo

[
  {
    "interface": "40GE0/1/49.2114 (OPERADORA_IPV4)",
    "datatime": [
      1726788300,
      1726788360,
      1726788420,
      1726788480,
      1726788540
    ],
    "bps": [
      9421421636,
      8984884156,
      8960525244,
      9507422345,
      9446268245
    ]
  },
  {
    "interface": "40GE0/1/49.2115 (OPERADORA_IPV6)",
    "datatime": [
      1726788300,
      1726788360,
      1726788420,
      1726788480,
      1726788540
    ],
    "bps": [
      645386923,
      516382993,
      588439142,
      575840393,
      609231804
    ]
  }
]

Descrição dos Campos

  • interface: Nome da interface de rede e seu identificador.
  • datatime: Lista de timestamps que representam o tempo de cada medição em segundos.
  • bps: Lista de valores de bits por segundo (bps) medidos durante os diferentes intervalos de tempo.

Cada objeto no array contém os dados agregados de uma interface de rede, com seus respectivos valores de tráfego em bits por segundo (bps) e os tempos (datatime) correspondentes.

Endpoint: /trafasn

http://[ip]:[porta]/trafasn

Este endpoint retorna informações de tráfego de rede baseadas em sistemas autônomos (ASN). Ele oferece parâmetros para filtrar dados por número de linhas/resultados, agregação, e outras opções relevantes ao tráfego de rede.

Descrição dos Parâmetros:

  • timestart: Define o início do intervalo de tempo (em timestamp). Se não for informado, utiliza o valor da variável collection_interval subtraído da hora atual.
  • timestop: Define o final do intervalo de tempo (em timestamp). Se não for informado, utiliza a hora atual.
  • fil: Filtro a ser aplicado nos dados.
  • lines: Número de linhas/resultados a serem retornadas.
  • min: Valor mínimo para inclusão no resultado.
  • ignoreasn: Indica se o ASN deve ser ignorado ou não (Arquivo ignore-asn.json).
  • source: Define a origem dos dados.

Exemplos

URL Exemplo 1

http://[ip]:[porta]/trafasn?timestart=1726788385914&timestop=1726788625914&fil=any&lines=5&min=0&ignoreasn=n&source=Borda

URL Exemplo 2

http://[ip]:[porta]/trafasn?fil=any&lines=5&min=0&ignoreasn=n&source=Borda

A resposta JSON contém informações sobre o tráfego de rede para diferentes ASN (Sistemas Autônomos). Abaixo estão dois exemplos de saídas, uma com múltiplos intervalos de tempo e outra com um único intervalo.

Múltiplos Intervalos de Tempo

[
  {
    "asn": "15169 - GOOGLE",
    "bps": [
      612436787,
      554084625,
      587778185,
      602698001
    ],
    "datatime": [
      1726788300,
      1726788360,
      1726788420,
      1726788480
    ]
  },
  {
    "asn": "396986 - BYTEDANCE",
    "bps": [
      440557978,
      401984034,
      439798579,
      406524587
    ],
    "datatime": [
      1726788300,
      1726788360,
      1726788420,
      1726788480
    ]
  }
]

Único Intervalo de Tempo

[
  {
    "asn": "15169 - GOOGLE",
    "bps": [
      568579140
    ],
    "datatime": [
      1726788540
    ]
  },
  {
    "asn": "396986 - BYTEDANCE",
    "bps": [
      434271983
    ],
    "datatime": [
      1726788540
    ]
  }
]

Descrição dos Campos

  • asn: Número de Sistema Autônomo (ASN) e seu nome associado.
  • bps: Lista de valores de bits por segundo (bps) medidos durante os diferentes intervalos de tempo.
  • datatime: Lista de timestamps que representam o tempo de cada medição em segundos.

Cada objeto no array contém os dados agregados de um ASN, com seus respectivos valores de tráfego em bits por segundo (bps) e os tempos (datatime) correspondentes.

Endpoint: /trafsubnet

http://[ip]:[porta]/trafsubnet

Este endpoint retorna informações de tráfego de rede baseadas em prefixos de sub-rede. Ele oferece parâmetros para filtrar dados por prefixo, máscara de sub-rede e opções de agregação. Abaixo estão exemplos de chamadas de API, suas saídas JSON e a explicação dos parâmetros.

Descrição dos Parâmetros:

  • timestart: Define o início do intervalo de tempo (em timestamp). Se não for informado, utiliza o valor da variável collection_interval subtraído da hora atual.
  • timestop: Define o final do intervalo de tempo (em timestamp). Se não for informado, utiliza a hora atual.
  • fil: Filtro a ser aplicado nos dados.
  • prefix: Prefixo de rede no formato CIDR.
  • mask: Máscara de sub-rede para divisão.
  • aggregation: Método de agregação dos dados.
  • order: Define a ordem de organização dos dados, com base no campo selecionado.
  • direction: Direção do tráfego, podendo ser in (entrada) ou out (saída).
  • source: Define a origem dos dados.

Exemplos

URL Exemplo 1

http://[ip]:[porta]/trafsubnet?timestart=1726785443664&timestop=1726787243664&fil=any&prefix=10.0.68.0/22&mask=24&aggregation=router&order=bytes&direction=in&source=Borda

A resposta JSON deste endpoint contém informações sobre o CIDR dividido por mask. Abaixo estão exemplos de saídas JSON para IPv4 e IPv6.

URL Exemplo 2

http://[ip]:[porta]/trafsubnet?fil=any&prefix=10.0.68.0/22&mask=24&aggregation=router&order=bytes&direction=in&source=Borda

Saída para IPv4

{
  "prefixos": [
    {
      "sequencial": 1,
      "prefixo": "10.0.68.0/24",
      "in_packets": 24623104,
      "in_bytes": 23884635136,
      "aggr_flows": 10040
    },
    {
      "sequencial": 2,
      "prefixo": "10.0.69.0/24",
      "in_packets": 1844224,
      "in_bytes": 1973950464,
      "aggr_flows": 609
    },
    {
      "sequencial": 3,
      "prefixo": "10.0.70.0/24",
      "in_packets": 2002944,
      "in_bytes": 1551982592,
      "aggr_flows": 1058
    },
    {
      "sequencial": 4,
      "prefixo": "10.0.71.0/24",
      "in_packets": 1803264,
      "in_bytes": 1824263168,
      "aggr_flows": 672
    }
  ]
}

URL Exemplo 3

http://[ip]:[porta]/trafsubnet?fil=any&prefix=2001:db8::/32&mask=34&aggregation=router&order=bytes&direction=in&source=Borda

Saída para IPv6

{
  "prefixos": [
    {
      "sequencial": 1,
      "prefixo": "2001:db8::/34",
      "in_packets": 11264,
      "in_bytes": 843776,
      "aggr_flows": 11
    },
    {
      "sequencial": 2,
      "prefixo": "2001:db8:4000::/34",
      "in_packets": 0,
      "in_bytes": 0,
      "aggr_flows": 0
    },
    {
      "sequencial": 3,
      "prefixo": "2001:db8:8000::/34",
      "in_packets": 4832256,
      "in_bytes": 5288214528,
      "aggr_flows": 1254
    },
    {
      "sequencial": 4,
      "prefixo": "2001:db8:c000::/34",
      "in_packets": 0,
      "in_bytes": 0,
      "aggr_flows": 0
    }
  ]
}

Endpoint: /trafnet8

http://[ip]:[porta]/trafnet8

Este endpoint retorna informações de tráfego de toda a rede IPv4 (0.0.0.0/0) segmentado em prefixos /8.

Descrição dos Parâmetros:

  • timestart: Define o início do intervalo de tempo (em timestamp). Se não for informado, utiliza o valor da variável collection_interval subtraído da hora atual.
  • timestop: Define o final do intervalo de tempo (em timestamp). Se não for informado, utiliza a hora atual.
  • fil: Filtro a ser aplicado nos dados. Neste exemplo.
  • net8start: Início do intervalo de prefixos /8.
  • net8stop: Fim do intervalo de prefixos /8.
  • aggregation: Método de agregação dos dados.
  • order: Define a ordem de organização dos dados, com base no campo selecionado.
  • direction: Direção do tráfego, podendo ser in (entrada) ou out (saída).
  • source: Define a origem dos dados.

Exemplos

URL Exemplo 1

http://[ip]:[porta]/trafnet8?timestart=1726785443664&timestop=1726787243664&fil=any&net8start=186&net8stop=187&aggregation=router&order=bytes&direction=in&source=Borda

URL Exemplo 2

http://[ip]:[porta]/trafnet8?fil=any&net8start=180&net8stop=188&aggregation=router&order=bytes&direction=in&source=Borda

A resposta JSON de ambos os endpoints será semelhante, contendo informações agregadas sobre o tráfego de rede para os prefixos especificados. Abaixo está um exemplo de resposta:

{
  "prefixos": [
    {
      "sequencial": 186,
      "prefixo": "186.0.0.0/8",
      "in_packets": 1222082560,
      "in_bytes": 1186731710464,
      "aggr_flows": 469254
    },
    {
      "sequencial": 187,
      "prefixo": "187.0.0.0/8",
      "in_packets": 69889024,
      "in_bytes": 71390141440,
      "aggr_flows": 19808
    }
  ]
}

Endpoint: /hardware

http://[ip]:[porta]/hardware

Este endpoint retorna informações detalhadas sobre o hardware do sistema, incluindo dados da CPU, disco, memória e sistema operacional. Abaixo está uma explicação de cada campo da saída JSON:

Descrição dos Campos

cpu

  • cpu_count: Número total de núcleos da CPU (neste exemplo, 12 núcleos).
  • cpu_freq: Frequência atual da CPU em MHz (neste caso, 2298 MHz).
  • cpu_percent_per_core: Lista do uso percentual de cada núcleo da CPU. Cada índice da lista corresponde a um núcleo (todos com 0.0% de uso neste exemplo).
  • cpu_percent_total: Uso total da CPU em porcentagem (0.0% no momento da requisição).

disk

  • disk_partitions: Lista de partições de disco.
  • device: Dispositivo do disco (neste caso, /dev/sda1).
  • fstype: Tipo de sistema de arquivos utilizado (aqui, ext4).
  • mountpoint: Ponto de montagem da partição (neste exemplo, /).
  • disk_usage: Informações sobre o uso do disco.
  • free: Espaço livre no disco em bytes.
  • percent: Percentual de espaço utilizado.
  • total: Tamanho total do disco em bytes.
  • used: Espaço utilizado em bytes.

memory

  • available: Memória disponível em bytes.
  • percent: Percentual de uso da memória.
  • total: Memória total do sistema em bytes.
  • used: Memória utilizada em bytes.

system

  • kernel_version: Versão do kernel do sistema operacional.
  • motherboard: Informação da placa-mãe (neste exemplo, não disponível).
  • os_release: Informações sobre a distribuição do sistema operacional.
  • BUG_REPORT_URL: URL para reportar bugs.
  • HOME_URL: URL principal do sistema operacional.
  • ID: Identificador da distribuição.
  • NAME: Nome da distribuição.
  • PRETTY_NAME: Nome mais descritivo da versão do sistema.
  • SUPPORT_URL: URL para suporte.
  • VERSION: Versão do sistema.
  • VERSION_CODENAME: Nome de código da versão.
  • VERSION_ID: Identificador de versão.
  • tools_versions: Versões dos principais utilitários de rede:
  • nfcapd, nfdump, sfcapd: Todos com a versão “1.7.4-release”.
  • uptime: Tempo de atividade contínua do sistema (neste exemplo, 2 dias e 4 horas).
http://[ip]:[porta]/hardware
{
  "cpu": {
    "cpu_count": 12,
    "cpu_freq": 2298,
    "cpu_percent_per_core": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "cpu_percent_total": 0.0
  },
  "disk": {
    "disk_partitions": [
      {
        "device": "/dev/sda1",
        "fstype": "ext4",
        "mountpoint": "/"
      }
    ],
    "disk_usage": {
      "free": 28065935360,
      "percent": 9.3,
      "total": 32626225152,
      "used": 2876801024
    }
  },
  "memory": {
    "available": 7792734208,
    "percent": 6.4,
    "total": 8324440064,
    "used": 294854656
  },
  "system": {
    "kernel_version": "6.1.0-25-amd64",
    "motherboard": "N/A",
    "os_release": {
      "BUG_REPORT_URL": "https://bugs.debian.org/",
      "HOME_URL": "https://www.debian.org/",
      "ID": "debian",
      "NAME": "Debian GNU/Linux",
      "PRETTY_NAME": "Debian GNU/Linux 12 (bookworm)",
      "SUPPORT_URL": "https://www.debian.org/support",
      "VERSION": "12 (bookworm)",
      "VERSION_CODENAME": "bookworm",
      "VERSION_ID": "12"
    },
    "tools_versions": {
      "nfcapd": "1.7.4-release",
      "nfdump": "1.7.4-release",
      "sfcapd": "1.7.4-release"
    },
    "uptime": "2 dias, 04:42"
  }
}

Endpoint: /filter/ports

http://[ip]:[porta]/filter/ports

Este endpoint retorna uma lista de filtros baseados em portas de rede e protocolos (TCP, UDP, ICMP, GRE) usados para diversos serviços de rede. presente no arquivo fav-services-graphs.json

Saída JSON

[
  {
    "description": "DNS (UDP/TCP)",
    "filter": "DIRECTION port 53 AND (proto udp OR proto tcp)"
  },
  {
    "description": "MySQL (TCP)",
    "filter": "DIRECTION port 3306 AND (proto tcp)"
  },
  {
    "description": "POP E-Mail (TCP)",
    "filter": "DIRECTION port 110 OR DIRECTION port 143 OR DIRECTION port 995 AND (proto tcp)"
  },
  {
    "description": "Ping (ICMP)",
    "filter": "proto icmp"
  },
  {
    "description": "SNMP (UDP)",
    "filter": "DIRECTION port 161 OR DIRECTION port 162 AND (proto udp)"
  },
  {
    "description": "Tunel GRE (GRE)",
    "filter": "proto gre"
  }
]

Endpoint: /filter/custom

http://[ip]:[porta]filter/custom

Este endpoint retorna uma lista de filtro do arquivo custom-filters.json.

Saída JSON

[
  {
    "filter": "dst port 21 and (flags F or flags R)",
    "name": "Força bruta FTP"
  },
  {
    "filter": "dst port 8291 and (flags F or flags R)",
    "name": "Força bruta Winbox"
  },
  {
    "filter": "dst port 2000 and (flags F or flags R)",
    "name": "Força bruta Mikrotik Btest"
  },
  {
    "filter": "dst port 53 and (flags F or flags R)",
    "name": "Força bruta DNS"
  }
]

Descrição dos Campos

  • filter: Filtro.
  • name: Nome do filtro.

http://186.250.168.49:5000/listpeer/${source} http://186.250.168.49:5000/listpeer/Borda

Descrição dos Campos

  • description: Descrição do serviço de rede ou protocolo correspondente ao filtro (ex.: “DNS”, “FTP”, “Web HTTP/HTTPS”).
  • filter: Expressão lógica que define o filtro de tráfego, contendo a porta de rede, a direção (entrada/saída) e os protocolos associados (TCP, UDP, ICMP, etc.).

Endpoint: /conf

http://[ip]:[porta]/conf

Este endpoint retorna o arquivo config.json.

Endpoint: /conf/fav/as_prefix_only

http://[ip]:[porta]/conf/fav/as_prefix_only

Este endpoint retorna uma lista de filtros do arquivo fav-asn-prefix-graphs.json.

Saída JSON

[
  {
    "description": "Youtube",
    "filter": {
      "as": [
        "36040"
      ],
      "prefix": [
        "34.104.32.0/21",
        "34.126.224.0/20",
        "34.187.0.0/24",
        "64.15.112.0/20",
        "70.32.133.0/24",
        "104.237.160.0/19",
        "136.22.128.0/19",
        "136.117.0.0/24",
        "142.250.34.0/24",
        "185.192.248.0/26",
        "185.192.249.0/24",
        "185.192.251.192/26",
        "190.210.140.128/27",
        "194.122.80.0/22",
        "207.126.144.0/20",
        "208.65.152.0/22",
        "208.76.215.0/24",
        "208.117.224.0/19",
        "209.85.137.0/24"
      ]
    }
  },
  {
    "description": "Google Cloud",
    "filter": " as 396982"
  },
  {
    "description": "Google",
    "filter": " as 15169"
  }
]

Descrição dos Campos

  • description: Descrição do serviço ou empresa relacionado ao ASN e/ou prefixo (ex.: “Youtube”, “Google Cloud”, “Google”).
  • filter: Filtro aplicado, que pode conter apenas o número do ASN ou uma combinação de ASN e prefixos.
  • as: Lista de sistemas autônomos (ASN) associados ao serviço.
  • prefix: Lista de prefixos de rede no formato CIDR que estão associados ao serviço.

Endpoint: /conf/my_prefix

http://[ip]:[porta]/conf/my_prefix

Este endpoint retorna uma lista de prefixos de rede, tanto IPv4 quanto IPv6 do arquivo my-prefix.json.

Saída JSON

[
  {
    "description": "IPv4 10.0.68.0/24",
    "filter": "DIRECTION net 10.0.68.0/24"
  },
  {
    "description": "IPv4 10.0.69.0/24",
    "filter": "DIRECTION net 10.0.69.0/24"
  },
  {
    "description": "IPv6 2001db8::/33",
    "filter": "DIRECTION net 2001db8::/33"
  },
  {
    "description": "IPv6 2001db8:8000::/33",
    "filter": "DIRECTION net 2001db8:8000::/33"
  }
]

Descrição dos Campos

  • description: Descrição.
  • filter: Filtro utilizado para definir o tráfego de rede baseado no prefixo de rede. O filtro utiliza o termo DIRECTION net para especificar a direção do tráfego na rede.

Endpoint: /conf/fav/as_prefix_int

http://[ip]:[porta]/conf/fav/as_prefix_int

Este endpoint retorna uma lista de filtro do arquivo my-prefix-int.json.

Saída JSON

[
  {
    "description": "Servidores",
    "filter": "DIRECTION net 192.168.168.0/26 OR DIRECTION net 2001:db8:bebe:cafe::/64"
  }
]

Descrição dos Campos

  • description: Descrição.
  • filter: Filtro.

Endpoint: /listpeer/$source

http://[ip]:[porta]/listpeer/{source}

Este endpoint retorna uma lista de peers BGP, arquivo peers.json.

Exemplo

http://[ip]:[porta]/listpeer/Borda

Saída

[
  {
    "filter": "bgpnext ip 10.50.50.6",
    "name": "PROVEDOR X AS123456789  (10.50.50.6)"
  },
  {
    "filter": "bgpnext ip FD00:BACB:50:252::2",
    "name": "PROVEDOR X AS123456789 (FD00:BACB:50:252::2)"
  }
]

Descrição dos Campos

  • filter: O filtro para identificar o tráfego BGP associado ao peer, baseado no próximo salto (bgpnext ip).
  • name: O nome descritivo do peer, incluindo o sistema autônomo (ASN) e o endereço IP.

Endpoint: /all_asn_data/{asn}

http://[ip]:[porta]/all_asn_data/{asn}

Este endpoint retorna dados detalhados sobre um sistema autônomo (ASN), incluindo informações sobre prefixos IP, upstreams, downstreams, e mais. Abaixo está um exemplo de saída JSON e a explicação dos campos.

Exemplo de Chamada

http://[ip]:[porta]/all_asn_data/123456789

Saída JSON

{
  "asn_info": {
    "asn": 123456789,
    "country_code": "BR",
    "date_allocated": "2018-06-11 00:00:00",
    "date_updated": "2024-09-17 07:23:26",
    "name": "Remontti Telecomunicacoes Ltda",
    "rir_name": "Lacnic",
    "website": null
  },
  "downstreams": {
    "ip_downstreams": [
      {
        "asn": 987654321,
        "country_code": "BR",
        "ipv4": "Sim",
        "ipv6": "Não",
        "name": "CHAVES EIRELI"
      }
    ],
    "total_ipv4_downstreams": 1,
    "total_ipv6_downstreams": 0
  },
  "ixs": {
    "total_ixs": 0
  },
  "prefixes": {
    "ip_prefixes": [
      {
        "ip_version": "IPv4",
        "prefix": "10.0.196.0/22",
        "roa_status": "Valid"
      },
      {
        "ip_version": "IPv6",
        "prefix": "2001:db8::/32",
        "roa_status": "Valid"
      }
    ],
    "total_ipv4_prefixes": 7,
    "total_ipv6_prefixes": 7
  },
  "upstreams": {
    "ip_upstreams": [
      {
        "asn": 9999999,
        "country_code": "BR",
        "ipv4": "Sim",
        "ipv6": "Sim",
        "name": "Madruga Telecomunicacoes Ltda"
      }
    ],
    "total_ipv4_upstreams": 1,
    "total_ipv6_upstreams": 1
  }
}

Descrição dos Campos

asn_info

  • asn: Número do Sistema Autônomo.
  • country_code: Código do país associado ao ASN.
  • date_allocated: Data de alocação do ASN.
  • date_updated: Data da última atualização do ASN.
  • name: Nome da organização associada ao ASN.
  • rir_name: Nome do Registro Regional da Internet (RIR) que alocou o ASN.
  • website: Website da organização (se disponível).

downstreams

  • ip_downstreams: Lista de sistemas autônomos que são downstreams deste ASN.
  • asn: Número do ASN downstream.
  • ipv4: Indica se há suporte para IPv4.
  • ipv6: Indica se há suporte para IPv6.
  • name: Nome da organização downstream.
  • total_ipv4_downstreams: Total de downstreams com suporte a IPv4.
  • total_ipv6_downstreams: Total de downstreams com suporte a IPv6.

ixs

  • total_ixs: Número total de Internet Exchange Points (IXs) associados ao ASN.

prefixes

  • ip_prefixes: Lista de prefixos de rede (IPv4 e IPv6) associados ao ASN.
  • ip_version: Versão do IP (IPv4 ou IPv6).
  • prefix: Bloco de IP no formato CIDR.
  • roa_status: Status do ROA (Route Origin Authorization) associado ao prefixo.
  • total_ipv4_prefixes: Número total de prefixos IPv4 associados ao ASN.
  • total_ipv6_prefixes: Número total de prefixos IPv6 associados ao ASN.

upstreams

  • ip_upstreams: Lista de sistemas autônomos que são upstreams deste ASN.
  • asn: Número do ASN upstream.
  • ipv4: Indica se há suporte para IPv4.
  • ipv6: Indica se há suporte para IPv6.
  • name: Nome da organização upstream.
  • total_ipv4_upstreams: Número total de upstreams com suporte a IPv4.
  • total_ipv6_upstreams: Número total de upstreams com suporte a IPv6.

Este endpoint fornece uma visão completa das informações relacionadas a um ASN específico, incluindo upstreams, downstreams, prefixos e status de ROA.

Endpoint: /api/db/traf

Imprime a saída de data_traffic_analysis.json /api/db/traf/{description}

Imprime a saída dos dados coletatados por data_traffic_analysis.json /api/db/traf/{start}/{stop}/{description}
/api/db/traf/{start}/{stop}/{description}

start e stop podem serem informados como timestamp ou padrão AAAA-MM-DD HH:MM:SS

Exemplo:
/api/db/traf/1729195187432/1729198787432/Tráfego%20suspeito
/api/db/traf/2024-10-17 11:00:00/2024-10-17 12:00:00/Tráfego suspeito

[
  {
    "aggr_flows": 1,
    "bpp": 619,
    "bps": 84514,
    "bytes": 633856,
    "packets": 1024,
    "timestamp": 1729195200
  },
  {
    "aggr_flows": 2,
    "bpp": 579,
    "bps": 158242,
    "bytes": 1186816,
    "packets": 2048,
    "timestamp": 1729195560
  },
  ...
]

Endpoint: /api/test

Teste Conectividade do servidor de e-mail
/api/test/email/connection

Teste de envio de email
/api/test/email/<mensagem>/<e-mail destino>
/api/test/email/Mensagem/empresa1@empresa1.com

Teste de envio de mensagem para o telegram
/api/test/telegram/<mensagem>
/api/test/telegram/<mensagem>/<chat id>
/api/test/telegram/<mensagem>
/api/test/telegram/<mensagem>/<chat id>