Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cpra — CPRA é um sistema de monitoramento de infraestrutura de alto desempenho projetado para equipes de plataforma que gerenciam arquiteturas de microsserviços em grande escala. Construído sobre arquitetura Entity-Component-System (ECS) e princípios de teoria de filas, o CPRA lida com mais de 1.000.000 de verificações de saúde concorrentes com escalonamento automático do pool de workers para atingir metas de SLO. | Kitploit
Ferramentas/GitHubGitHub/ziad-hsn/cpra
Segurança de Infraestrutura em NuvemUtilitários de Propósito GeralSegurança de ContêineresAuditoria de ConfiguraçãoSegurança de RedeDevSecOpsResposta a IncidentesDetecção de AnomaliasAnálise de Logs
GitHubziad-hsn/cpra

cpra

Ver Repositório
14há 6 mesesAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

CPRA é um sistema de monitoramento de infraestrutura de alto desempenho projetado para equipes de plataforma que gerenciam arquiteturas de microsserviços em grande escala. Construído sobre arquitetura Entity-Component-System (ECS) e princípios de teoria de filas, o CPRA lida com mais de 1.000.000 de verificações de saúde concorrentes com escalonamento automático do pool de workers para atingir metas de SLO.

Compartilhar

CPRA - Sistema Concorrente de Pulsação, Remediação e Alertas

Go Version License Documentation

Monitore milhões de serviços simultaneamente com remediação automatizada e escalonamento dinâmico de workers.

CPRA é um sistema de monitoramento de infraestrutura de alto desempenho projetado para equipes de plataforma que gerenciam arquiteturas de microsserviços em grande escala. Construído com base na arquitetura Entidade-Componente-Sistema (ECS) e princípios de teoria de filas, o CPRA lida com mais de 1.000.000 de verificações de integridade simultâneas com escalonamento automático do pool de workers para cumprir metas de SLO.


Sumário

  • Por que CPRA?
  • Principais Recursos
  • Características de Desempenho
  • Arquitetura
  • Início Rápido
  • Instalação
  • Configuração
  • Opções de Linha de Comando
  • Documentação
  • Solução de Problemas
  • Contribuindo
  • Licença

  • Por que CPRA?

    Use o CPRA quando precisar de:

    • Monitorar mais de 100.000 serviços, contêineres ou endpoints simultâneos
    • Remediar falhas automaticamente sem intervenção humana
    • Escalar dinamicamente a infraestrutura de monitoramento com base na carga
    • Alcançar latência P95 abaixo de 100ms desde a detecção até o alerta
    • Minimizar a pegada de memória (~100 bytes por monitor)

    Principais Recursos

    🚀 Escalabilidade Massiva

    • Lida com mais de 1.000.000 de monitores simultâneos em hardware comum
    • Escalonamento linear com baixo overhead por monitor
    • Design eficiente em memória: ~100 bytes por monitor

    ⚡ Alto Desempenho

    • Mais de 10.000 verificações de integridade por segundo por pipeline
    • Latência P95 < 100ms desde o agendamento até o processamento do resultado
    • Processamento em lote e filas lock-free minimizam overhead

    🔄 Remediação Automatizada

    • Três pipelines independentes:
      1. Pulse: Verificação de integridade (HTTP, TCP, ICMP, scripts personalizados)
      2. Intervention: Recuperação automatizada (reiniciar serviços, escalar recursos, executar scripts)
      3. Code: Alertas e notificações (e-mail, SMS, webhooks, PagerDuty)

    🧠 Escalonamento Inteligente

    • Teoria de filas M/M/c: Calcula automaticamente o número ideal de workers
    • Aproximação de Allen-Cunneen: Lida com variabilidade de carga do mundo real
    • Dimensionamento orientado por SLO: Escala dinamicamente para cumprir metas de latência

    🏗️ Arquitetura Orientada a Dados

    • Entidade-Componente-Sistema (ECS) usando mlange-42/ark
    • Layout de memória amigável ao cache para máximo desempenho
    • Alocações mínimas e baixa pressão no GC

    🔧 Pronto para Produção

    • Perfilamento integrado com pprof para depuração
    • Desligamento gracioso com cancelamento de contexto
    • Log abrangente com modo de depuração
    • Gerenciamento de memória com acionamento automático de GC

    Características de Desempenho

    MétricaValor
    Máx. Monitores Simultâneos1.000.000+
    Taxa de Transferência10.000+ verificações/s/pipeline
    Latência (P95)< 100ms (configurável via SLO)
    Memória por Monitor~100 bytes
    Memória Total (1M monitores)~100 MB + overhead do pool de workers
    Escalonamento de WorkersDinâmico (baseado em M/M/c)

    Consulte a Visão Geral da Arquitetura para benchmarks e análises detalhadas.


    Arquitetura

    O CPRA usa uma arquitetura de três pipelines construída sobre princípios de Entidade-Componente-Sistema:

    Arquitetura ECS

    Três Pipelines de Processamento Independentes

    Fluxo dos Pipelines

    1. Pipeline Pulse: Executa verificações de integridade (requisições HTTP, conexões TCP, scripts personalizados)
    2. Pipeline Intervention: Realiza remediação automatizada quando monitores falham
    3. Pipeline Code: Envia notificações de alerta para sistemas de gerenciamento de incidentes

    Cada pipeline opera de forma independente com sua própria fila e pool de workers escalado dinamicamente, permitindo:

    • Ajuste específico por pipeline: Configure cada pipeline separadamente
    • Isolamento de falhas: A falha de um pipeline não afeta os outros
    • Escalonamento independente: Escale workers com base na carga de cada pipeline

    Arquitetura da Fila e Pool de Workers

    Fila e Pool de Workers

    Implementações de Fila:

    • HybridQueue: Buffer circular + slice de transbordo para processamento FIFO confiável
    • AdaptiveQueue: Buffer circular com autoescalonamento para carga variável
    • WorkivaQueue: Buffer circular lock-free para latência ultrabaixa

    Pools de Workers Dinâmicos:

    • Alimentados pelo pool de goroutines panjf2000/ants
    • Escalonamento automático usando teoria de filas M/M/c
    • Workers mínimo/máximo e metas SLO configuráveis

    Para uma explicação abrangente da arquitetura, consulte a Visão Geral da Arquitetura.


    Início Rápido

    Opção 1: Compilar e Executar Localmente

    root@kitploit:~
    # Pré-requisitos: Go 1.25 ou superior
    go version  # Deve mostrar go1.25 ou superior
    
    # Compilar a partir do código-fonte
    git clone https://github.com/ziad/cpra.git
    cd cpra
    go build .
    
    # Executar com configuração de exemplo
    ./cpra --yaml mock-servers/test_10k.yaml
    

    Saída Esperada:

    root@kitploit:~
    Starting CPRA Optimized Controller for 1M Monitors
    Profiling server listening at http://localhost:6060/debug/pprof/
    Loading monitors from mock-servers/test_10k.yaml...
    Monitor loading completed in 1.2s
    [INFO] Controller started successfully
    [INFO] Pulse pipeline processing 10,000 monitors
    [INFO] Worker pool scaled to 143 workers (target SLO: 100ms)
    

    Instalação

    Pré-requisitos

    • Go 1.25 ou superior (download)
    • Docker (opcional, para implantação em contêiner)

    Compilando a partir do Código-Fonte

    1. Clone o repositório:

      root@kitploit:~
      git clone https://github.com/ziad/cpra.git
      cd cpra
      
    2. Baixe as dependências:

      root@kitploit:~
      go mod download
      
    3. Compile a aplicação:

      root@kitploit:~
      go build .
      
    4. Verifique a instalação:

      root@kitploit:~
      ./cpra --help
      

    Implantação com Docker

    1. Construa a imagem Docker:

      root@kitploit:~
      docker build -f docker/Dockerfile -t cpra:latest .
      
    2. Execute o contêiner:

      root@kitploit:~
      docker run -it --rm \
        -v $(pwd)/my-monitors.yaml:/app/monitors.yaml \
        cpra:latest \
        ./cpra --yaml monitors.yaml
      

    Configuração

    Configuração do Monitor (YAML)

    Crie um arquivo monitors.yaml para definir verificações de integridade:

    root@kitploit:~
    monitors:
      - name: "my-service-health-check"
        pulse_check:
          type: http
          interval: 30s
          timeout: 5s
          max_failures: 3
          config:
            method: GET
            url: http://my-service.example.com/health
            retries: 2
        intervention:
          action: docker
          config:
            container: my-service-container
            action: restart
        codes:
          red:
            dispatch: true
            notify: pagerduty
            config:
              url: https://events.pagerduty.com/v2/enqueue
          yellow:
            dispatch: true
            notify: log
            config:
              file: /var/log/cpra-alerts.log
    

    Gerando Configurações de Teste:

    Use mock-servers/generate_monitors.py para gerar configurações de teste com qualquer número de monitores.

    Configuração da Aplicação

    Configure o comportamento do CPRA programaticamente:

    root@kitploit:~
    package main
    
    import (
        "cpra/internal/controller"
    )
    
    func main() {
        config := controller.DefaultConfig()
    
        // Modo de depuração
        config.Debug = true
    
        // Configurações do pool de workers (aplica-se a todos os três pipelines)
        config.WorkerConfig.MinWorkers = 10
        config.WorkerConfig.MaxWorkers = 500
    
        // Configurações da fila
        config.QueueCapacity = 131072  // Deve ser potência de 2
    
        // Ajuste de desempenho
        config.BatchSize = 2000
        config.SizingServiceTime = 20 * time.Millisecond  // Duração média do job
        config.SizingSLO = 100 * time.Millisecond         // Latência alvo
        config.SizingHeadroomPct = 0.15                   // 15% de buffer de segurança
    
        ctrl := controller.NewController(config)
        // ... resto da inicialização
    }
    

    Consulte a Referência da API para opções completas de configuração.


    Opções de Linha de Comando

    root@kitploit:~
    ./cpra [OPÇÕES]
    
    OpçãoTipoPadrãoDescrição
    --yamlstringinternal/loader/replicated_test.yamlCaminho para o arquivo YAML de monitores
    --configstring-Caminho do arquivo de configuração (opcional)
    --debugboolfalseAtiva logs em nível de depuração
    --pprofbooltrueAtiva o servidor de perfilamento pprof
    --pprof.addrstringlocalhost:6060Endereço de escuta do servidor pprof

    Exemplos:

    root@kitploit:~
    # Executar com log de depuração
    ./cpra --yaml monitors.yaml --debug
    
    # Executar com porta pprof personalizada
    ./cpra --yaml monitors.yaml --pprof.addr localhost:8080
    
    # Desabilitar perfilamento
    ./cpra --yaml monitors.yaml --pprof=false
    

    Documentação

    Guias Abrangentes

    • Visão Geral da Arquitetura - Design do sistema, diagramas e análise de desempenho
    • Referência da API - Documentação completa da API com assinaturas de funções
    • Referência de Tipos - Estruturas de dados e definições de componentes
    • Tutorial de Início Rápido - Comece em 5 a 10 minutos
    • Tarefas Comuns - Guias práticos para operações típicas

    Recursos Adicionais

    • Primeiros Passos - Guia detalhado de configuração e implantação

    Solução de Problemas

    Problemas Comuns

    Problema: Arquivo YAML não encontrado

    root@kitploit:~
    Warning: YAML file monitors.yaml not found, starting without loading monitors
    

    Solução: Verifique se o caminho do arquivo está correto. Use caminhos absolutos ou relativos ao diretório onde o binário é executado:

    root@kitploit:~
    ./cpra --yaml $(pwd)/monitors.yaml
    

    Problema: Falha na compilação com erro de versão do Go

    root@kitploit:~
    go.mod requires go >= 1.25
    

    Solução: Atualize o Go para a versão 1.25 ou superior:

    root@kitploit:~
    go version  # Verifique a versão atual
    # Baixe o Go 1.25+ de https://go.dev/dl/
    

    Problema: Alto uso de memória Solução: Verifique o uso de memória com pprof:

    root@kitploit:~
    # Enquanto o CPRA estiver em execução, acesse pprof
    go tool pprof http://localhost:6060/debug/pprof/heap
    
    # Veja os maiores consumidores de memória
    (pprof) top
    

    Ajuste os limites de memória na configuração:

    root@kitploit:~
    config.WorkerConfig.MaxWorkers = 200  // Reduza o máximo de workers
    config.QueueCapacity = 65536          // Reduza o tamanho da fila
    

    Problema: Pool de workers não está escalando Solução: Ative o log de depuração para ver as decisões de escalonamento:

    root@kitploit:~
    ./cpra --yaml monitors.yaml --debug
    

    Verifique os parâmetros da teoria de filas:

    root@kitploit:~
    config.SizingServiceTime = 50 * time.Millisecond  // Aumente se os jobs demorarem mais
    config.SizingSLO = 200 * time.Millisecond         // Relaxe o SLO se necessário
    

    Problema: Monitores não estão sendo executados Solução: Verifique o formato da configuração do monitor e confira os logs:

    root@kitploit:~
    ./cpra --yaml monitors.yaml --debug 2>&1 | grep ERROR
    

    Valide a sintaxe YAML:

    root@kitploit:~
    # Use um validador YAML
    python -m yaml monitors.yaml
    

    Obtendo Ajuda

    • Documentação: Consulte a pasta docs/ para guias detalhados
    • Issues: Abra uma issue para bugs ou solicitações de funcionalidades
    • Discussões: Faça perguntas e compartilhe ideias nas Discussões do GitHub
    • Logs: Sempre forneça logs ao relatar problemas (use a flag --debug)

    Contribuindo

    Aceitamos contribuições da comunidade! O CPRA é um projeto de código aberto e apreciamos:

    • 🐛 Relatórios de bugs e correções
    • ✨ Solicitações e implementações de funcionalidades
    • 📖 Melhorias na documentação
    • 🧪 Aprimoramentos na cobertura de testes
    • 💡 Otimizações de desempenho

    Primeiros Passos:

    1. Procure por issues marcadas com good first issue
    2. Faça um fork do repositório e envie um pull request

    Recursos de Desenvolvimento:

    • Visão Geral da Arquitetura - Entenda o design do sistema
    • Referência da API - Assinaturas de funções e uso

    Licença

    Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.


    Agradecimentos

    O CPRA é construído sobre excelentes bibliotecas de código aberto:

    • mlange-42/ark - Sistema Entidade-Componente de alto desempenho
    • panjf2000/ants - Pool de goroutines com escalonamento dinâmico
    • Workiva/go-datastructures - Estruturas de dados lock-free
    • uber-go/zap - Log estruturado

    Documentação • Arquitetura • Issues

    Construído com ❤️ para equipes de plataforma que gerenciam infraestrutura em grande escala

    Baixar ferramenta