O SyslogCollector é uma plataforma de observabilidade leve desenvolvida para recolha, processamento, classificação e visualização de eventos Syslog em pequenas e médias infraestruturas.
- Receção Syslog UDP e TCP
- Suporte RFC3164 e RFC5424
- Dashboard Web em tempo real
- Classificação automática de eventos
- Facilities humanizadas
- Motor de políticas dinâmico
- Redis Pub/Sub
- Gestão de alertas
- Estatísticas operacionais
- Exportação CSV
- Autenticação integrada
- Docker Compose Ready
Clientes Syslog
(Firewalls, Linux, Windows, Switches, APs)
│
▼
Syslog Collector
UDP/TCP :514
│
▼
RFC3164 Parser
RFC5424 Parser
│
▼
Event Classifier
Facility Mapper
│
▼
Policy Engine
│
▼
Redis Queue
│
▼
Worker Pool
│
▼
PostgreSQL
│
▼
Dashboard Web
- Go
- PostgreSQL
- Redis
- HTMX
- Tailwind CSS
- Chart.js
- Lucide Icons
- Docker
- Docker Compose
- Nginx
Suporta:
- Syslog UDP
- Syslog TCP
- RFC3164
- RFC5424
Campos processados:
- Timestamp
- Source IP
- Hostname
- Application
- Facility
- Facility Name
- Severity
- Payload
- Source Type
O sistema classifica automaticamente os eventos recebidos.
Categorias atualmente suportadas:
- Firewall
- Windows
- Linux
- DNS
- DHCP
- Network
- Web
- Security
- Database
- Unknown
A classificação considera:
- Application Name
- Hostname
- Facility
- Conteúdo da mensagem
Conversão automática das facilities Syslog.
| Código | Nome |
|---|---|
| 0 | Kernel |
| 1 | User |
| 2 | |
| 3 | Daemon |
| 4 | Auth |
| 16 | Local0 |
| 17 | Local1 |
| 18 | Local2 |
| 19 | Local3 |
| 20 | Local4 |
| 21 | Local5 |
| 22 | Local6 |
| 23 | Local7 |
Permite filtragem dinâmica sem reiniciar o collector.
Exemplo:
Erro
Ignora:
Aviso
Info
Debug
printer01
switch-lab
test-server
nginx
systemd
dnsmasq
heartbeat
healthcheck
favicon.ico
As alterações são sincronizadas via Redis Pub/Sub.
Dashboard
│
▼
PostgreSQL
│
▼
Redis
SET + Publish
│
▼
Collector
Reload Automático
Sem necessidade de reiniciar containers.
Já implementado:
- CRUD de alertas
- Persistência PostgreSQL
- Interface administrativa
- Configuração dinâmica
Preparado para:
- Telegram
- Discord
- Webhooks
Exemplos:
- Mais de 20 erros em 5 minutos
- Mais de 50 eventos Firewall em 10 minutos
- Eventos contendo palavras-chave específicas
Funcionalidades:
- Atualização automática
- Pesquisa textual
- Filtro por severidade
- Drawer de detalhes
- Exportação CSV
- Navegação HTMX
- Interface responsiva
Disponíveis:
- Logs recebidos
- Logs armazenados
- Logs filtrados
- Hosts mais ativos
- Aplicações mais ativas
- Distribuição por severidade
- Distribuição por origem
Autenticação baseada em sessão.
Configuração via painel administrativo.
Suporte a retenção configurável.
Exemplo:
30 dias
Os registos antigos são removidos automaticamente.
git clone https://github.com/ghvalentim/SyslogCollector.git
cd SyslogCollectorcp .env.example .envEditar:
DB_HOST=postgres
DB_NAME=syslog
DB_USER=syslog
DB_PASS=syslog
REDIS_URL=redis:6379docker compose up -d --buildhttp://localhost
SyslogCollector
│
├── collector
│ ├── main.go
│ └── app
│ ├── classifier.go
│ ├── facility.go
│ ├── listener.go
│ ├── models.go
│ ├── parser.go
│ ├── policy.go
│ ├── redis.go
│ └── workers.go
│
├── web
│ ├── main.go
│ ├── app
│ │ ├── alerts.go
│ │ ├── auth.go
│ │ ├── database.go
│ │ ├── handlers.go
│ │ ├── models.go
│ │ ├── policies.go
│ │ ├── routes.go
│ │ ├── services.go
│ │ ├── settings.go
│ │ └── stats.go
│ │
│ ├── assets
│ │ ├── output.css
│ │ └── script.js
│ │
│ └── templates
│ ├── alerts.html
│ ├── login.html
│ ├── logs.html
│ ├── policies.html
│ ├── settings.html
│ ├── stats.html
│ └── tools.html
│
├── nginx
├── compose.yml
├── setup.sh
└── README.md
- Receção UDP/TCP
- PostgreSQL
- Redis Queue
- Dashboard HTMX
- Pesquisa
- Exportação CSV
- Autenticação
- Configurações
- Estatísticas
- Gráficos
- Drawer de detalhes
- Melhorias UI
- Tailwind local
- Refatoração visual
- Motor de Políticas
- Redis Pub/Sub
- Filtragem dinâmica
- ✅ Classificação automática
- ✅ Facilities humanizadas
- ✅ Worker Pool
- ✅ CRUD de alertas
- ✅ Estatísticas por origem
- 🚧 Alert Engine
- 🚧 Notificações
- Correlação de eventos
- Telegram
- Discord
- Webhooks
- Multiutilizador
- Auditoria
- Perfis de acesso
- Kubernetes
- Alta disponibilidade
- Clustering
MIT License.
Gabriel Valentim
Projeto de estudo focado em:
- Observabilidade
- Redes
- Syslog
- Golang
- HTMX
- Arquitetura de Sistemas
SyslogCollector v0.8.0-alpha Observabilidade simples, rápida e sem complicações.