Sistema completo de monitoramento de hardware e mineração XMRig em tempo real, com dashboards no terminal, exportação de dados para CSV, geração automática de relatórios e backup para OneDrive.
# Clone o repositório
git clone https://github.com/Agrippa-Tech/XMRig-Miner-Analysis.git
cd monitor-hardware-xmrig
# Execute o orquestrador principal como Administrador
pwsh -ExecutionPolicy Bypass -File MenuPrincipal.ps1O script cuida do resto: inicia o LibreHardwareMonitor, o XMRig e abre os dois monitores lado a lado na tela.
- Visão Geral
- Funcionalidades
- Estrutura do Projeto
- Requisitos
- Instalação e Configuração
- Como Usar
- Scripts em Detalhe
- Relatórios
- Agendamentos
- Solução de Problemas
- Contribuindo
- Licença
Este projeto oferece um pipeline completo de monitoramento para sistemas que rodam mineração de criptomoedas com XMRig. Ele combina dashboards visuais no terminal com coleta contínua de dados, geração de relatórios estatísticos e backup automático na nuvem.
Orquestrador (MenuPrincipal.ps1)
│
┌────────┴────────┐
│ │
MonitorHardware MonitorXMRig
(metade esquerda) (metade direita)
│ │
└────────┬────────┘
│
CSV por dia
│
┌────────┴────────┐
│ │
Hardware.py XMRig.py
(relatórios) (relatórios)
│ │
└────────┬────────┘
│
OneDrive (backup)
- Uso e temperatura de CPU em tempo real
- Uso, temperatura, VRAM e clock de GPU
- Uso e consumo de RAM
- Ocupação de discos
- Taxa de transferência de rede por adaptador
- Consumo de energia (CPU, GPU, RAM, total)
- Top 5 processos por uso de CPU
- Exportação automática para CSV por dia
- Hashrate em tempo real (60s e 15m)
- Histórico de hashrate com variação percentual
- Taxa de aceitação/rejeição de shares
- Uptime do minerador
- Tabela de histórico com altura fixa (sem flickering)
- Exportação automática para CSV por dia
- Inicia LibreHardwareMonitor automaticamente
- Inicia XMRig minimizado
- Posiciona as janelas lado a lado (metade esquerda / direita)
- Verifica APIs antes de abrir os monitores
- Relatório de status ao final
- Relatórios diário, semanal, mensal, semestral e anual
- Estatísticas descritivas completas (média, mediana, desvio padrão, percentis, curtose, assimetria)
- Análise de correlação de Pearson
- Análise temporal por hora e por dia
- Detecção de alertas e anomalias (limites configuráveis)
- Histogramas ASCII e gráficos de barras inline
- Detecção de outliers via método IQR
- Agendamento de relatórios via Windows Task Scheduler
- Backup automático para OneDrive após geração dos relatórios
- Agendamento de suspensão e retomada automática do PC
- Logs de execução com timestamp
monitor-hardware-xmrig/
│
├── MenuPrincipal.ps1 # Orquestrador principal
├── MonitorHardware.ps1 # Dashboard de hardware em tempo real
├── MonitorXMRig.ps1 # Dashboard do minerador em tempo real
├── MenuConfigRelatorio.ps1 # Agendamento e execução dos relatórios
├── MenuConfigHorario.ps1 # Agendamento de suspensão do PC
├── MenuConfigBackup.ps1 # Cópia dos relatórios para OneDrive
│
├── RelatoriosBackup/
│ ├──XMRig
│ │ └── XMRig.py # Gerador de relatórios de mineração
│ └── Hardware
│ └── Hardware.py # Gerador de relatórios de hardware
│
├── README.md
As pastas de dados (
RelatoriosXMRig/,RelatoriosHardware/,RelatoriosBackup/,Logs/) são criadas automaticamente pelos scripts. Não é necessário criá-las manualmente.
- Windows 10/11
- PowerShell 7.0 ou superior
- Python 3.8 ou superior
- LibreHardwareMonitor (com servidor web ativo)
- XMRig com API HTTP habilitada
pip install pandas numpy- Abra o LibreHardwareMonitor
- Vá em Options → Remote Web Server
- Marque Run e defina a porta como
8085 - Clique em OK
No config.json do XMRig, habilite a API HTTP:
"http": {
"enabled": true,
"host": "127.0.0.1",
"port": 8080,
"access-token": null,
"restricted": true
}git clone https://github.com/Agrippa-Tech/XMRig-Miner-Analysis.git
cd XMRig-Miner-AnalysisEdite a seção $script:Config com os caminhos corretos para seu sistema:
$script:Config = @{
LibreHardwareMonitorPath = "C:\caminho\para\LibreHardwareMonitor.exe"
XMRigPath = "C:\caminho\para\xmrig.exe"
MonitorHardwarePath = "$PSScriptRoot\MonitorHardware.ps1"
MonitorXMRigPath = "$PSScriptRoot\MonitorXMRig.ps1"
LhmPort = 8085
XmrigApiPort = 8080
}Em relatorios/XMRig.py e relatorios/Hardware.py, edite as variáveis de configuração:
CSV_FOLDER = r"C:\caminho\para\seus\CSVs"
OUTPUT_BASE = r"C:\caminho\para\saida\relatorios"$PythonExe = "$env:LOCALAPPDATA\Programs\Python\Python311\python.exe"
$ScriptXMRig = "C:\caminho\para\Relatorios\XMRig.py"
$ScriptHW = "C:\caminho\para\Relatorios\Hardware.py"Dica: Use
$env:USERPROFILEpara referenciar seu diretório home sem hardcodar o nome de usuário.
# Execute como Administrador
pwsh -ExecutionPolicy Bypass -File Iniciar.ps1O orquestrador irá:
- Verificar e iniciar o LibreHardwareMonitor
- Verificar e iniciar o XMRig
- Abrir o Monitor de Hardware na metade esquerda da tela
- Abrir o Monitor XMRig na metade direita da tela
# Monitor de Hardware
pwsh -ExecutionPolicy Bypass -File MonitorHardware.ps1
# Monitor XMRig
pwsh -ExecutionPolicy Bypass -File MonitorXMRig.ps1# Abre o menu interativo
pwsh -ExecutionPolicy Bypass -File MenuConfigRelatorio.ps1pwsh -ExecutionPolicy Bypass -File MenuConfigBackup.ps1# Abre o menu interativo
pwsh -ExecutionPolicy Bypass -File MenuConfigHorario.ps1Gerencia o ciclo de vida completo do sistema. Verifica se os processos já estão rodando antes de iniciá-los, e posiciona as janelas automaticamente usando a API do Windows.
Configurações disponíveis:
| Parâmetro | Padrão | Descrição |
|---|---|---|
LhmPort |
8085 |
Porta do LibreHardwareMonitor |
XmrigApiPort |
8080 |
Porta da API do XMRig |
LhmStartupDelay |
3s |
Aguarda inicialização do LHM |
XmrigStartupDelay |
2s |
Aguarda inicialização do XMRig |
WindowHandleTimeoutSec |
20s |
Timeout para posicionar janelas |
Atualiza a cada 2 segundos e exibe:
[ Sistema ] Host, OS, Uptime, processos e threads
[ CPU ] Uso percentual, temperatura, modelo
[ GPU ] Temperatura, uso, VRAM, clocks, potência, fan
[ Energia ] Consumo CPU / GPU / RAM / Total em Watts
[ Memória ] Uso em GB e percentual
[ Discos ] Uso por partição com barra de progresso
[ Rede ] Taxa de download/upload por adaptador
[ Top Processos ] Top 5 por tempo de CPU
[ Sessão ] Início, duração, total de leituras, arquivo CSV
Barras de progresso mudam de cor automaticamente:
- 🟢 Verde: abaixo de 75%
- 🟡 Amarelo: entre 75% e 90%
- 🔴 Vermelho: acima de 90%
Conecta-se à API HTTP do XMRig (http://127.0.0.1:8080/2/summary) e exibe:
[ Informações ] Status, pool, versão, algoritmo, uptime
[ Hardware ] CPU, features (AES/AVX2), threads
[ Hashrate ] Atual (60s) e média (15m) com barra de progresso
[ Histórico ] Tabela com timestamp, hashrate e variação percentual
[ Shares ] Aceitos, rejeitados, taxa de aceitação
[ Pool ] Dificuldade atual
[ Sessão ] Início, duração, leituras, arquivo CSV
Menu interativo com opções:
| Opção | Ação |
|---|---|
| 1 | Criar agendamento diário |
| 2 | Cancelar agendamento |
| 3 | Executar relatórios agora |
| 4 | Alterar horário do agendamento |
| 5 | Sair |
Os relatórios Python são executados, com stdout e stderr capturados em arquivos de log separados por dia.
Agenda suspensão e retomada automática do computador via Windows Task Scheduler. Útil para pausar a mineração em horários de pico de energia.
# Horários padrão
Suspender : 23:00
Acordar : 07:00Para que o despertar funcione, certifique-se de que "Permitir que temporizadores de ativação acordem este PC" está habilitado nas Opções de Energia do Windows.
Copia as pastas de relatórios do dia para o OneDrive, organizando por data:
OneDrive/
└── Relatorios/
├── XMRig/
│ └── 26-04-2026/
│ └── relatorio_xmrig_diario_26-04-2026.txt
└── Hardware/
└── 26-04-2026/
└── relatorio_hardware_diario_26-04-2026.txt
Os scripts Python geram relatórios em .txt para cinco períodos, conforme o histórico de dados disponível:
| Período | Mínimo de dados |
|---|---|
| Diário | 1 dia |
| Semanal | 7 dias |
| Mensal | 30 dias |
| Semestral | 180 dias |
| Anual | 365 dias |
Seção 1 — Visão Geral e Métricas
Seção 2 — Estatísticas Descritivas (por variável)
Seção 3 — Análise de Correlação (Pearson)
Seção 4 — Análise Temporal (por hora e por dia)
Seção 5 — Alertas e Anomalias
Seção 6 — Sumário Executivo
[!] Temperatura CPU 12 leituras acima do limite (1,4%)
Limite: 85 C | Máximo registrado: 91,20 C
O projeto usa o Windows Task Scheduler para automação. Todas as tarefas são gerenciadas pelos próprios scripts — sem necessidade de configuração manual.
| Tarefa | Script | Descrição |
|---|---|---|
RelatoriosBackup_Diario |
MenuConfigRelatorio.ps1 |
Executa relatórios Python |
RelatoriosBackup_OneDrive |
MenuConfigBackup.ps1 |
Copia relatórios para OneDrive |
AgendadorSuspensao_Dormir |
MenuConfigHorario.ps1 |
Suspende o PC |
AgendadorSuspensao_Acordar |
MenuConfigHorario.ps1 |
Retoma o PC |
Os scripts criam automaticamente as seguintes pastas (não incluídas no repositório):
RelatoriosXMRig/ ← CSVs diários do XMRig
RelatoriosHardware/ ← CSVs diários do hardware
RelatoriosBackup/
├── XMRig/ ← Relatórios .txt organizados por data
├── Hardware/ ← Relatórios .txt organizados por data
└── Logs/ ← Logs de execução dos scripts
Certifique-se de que o LHM está rodando como Administrador e que o servidor web está ativo na porta 8085.
Verifique se a API está habilitada no config.json e se o XMRig está rodando. A URL padrão é http://127.0.0.1:8080/2/summary.
O posicionamento requer que a janela tenha um handle válido (pode demorar alguns segundos). Se o timeout for atingido, posicione manualmente com Win + ← e Win + →.
Verifique se o caminho do Python está correto e se as dependências estão instaladas:
pip install pandas numpyConfira também se existem arquivos CSV na pasta configurada e se o padrão de nome (RelatorioXMRig_dd-mm-aaaa.csv) está correto.
Os scripts de agendamento precisam ser executados como Administrador.
Contribuições são bem-vindas! Para contribuir:
- Fork o repositório
- Crie uma branch de feature (
git checkout -b feature/minha-feature) - Faça suas alterações
- Certifique-se de não incluir dados pessoais ou caminhos hardcoded
- Abra um Pull Request descrevendo as mudanças
Versão: 1.0.0 | PowerShell: 7.0+ | Python: 3.8+ | Plataforma: Windows 10/11