Correlação de syslog — TLSStress.Art¶
Leia no seu idioma: English · Português · Español
Status do escopo (pós-congelamento de escopo 2026-05-10) — Ver ARCHITECTURE.md para os 37 MÓDULOs canônicos + 7 Test Kinds + arquitetura de safety DOM/CPOS/PIE-PA. ADRs 0014, 0019-0025 cobrem adições pós-Freeze. Esta é a visão do operador sobre o laboratório a partir da perspectiva do próprio laboratório — o que o Cisco Nexus 9000, o NGFW DUT e os hosts UCS dizem ter ocorrido durante uma execução, correlacionado com as métricas que o Dashboard já exibe.
Sem isto: você vê um pico de p99 às 14:32 e precisa fazer SSH em cada dispositivo para descobrir o motivo. Com isto: você abre um único dashboard no Grafana, vê o pico, e os eventos de log correspondentes dos três dispositivos aparecem lado a lado.
O que isto NÃO é¶
Não é um SIEM no sentido de monitoramento de segurança. É uma camada de forense de execução de teste focada em correlação operacional. A retenção de logs é curta (15 dias por padrão), as queries são específicas da execução, e o ACL é o mesmo ACL do Dashboard — não um workflow endurecido de operações de segurança.
Para monitoramento de segurança real, sua organização deve operar um SIEM separado (Splunk, Elastic, Cisco SecureX, etc.). Esta stack não substitui isso.
Arquitetura¶
┌──────────────┐ UDP/TCP 514 ┌─────────────┐
│ Cisco │────────────────────────→│ │
│ Nexus 9000 │ RFC 5424 syslog │ │
└──────────────┘ │ │
│ │
┌──────────────┐ UDP/TCP 514 │ Promtail │ ┌──────┐
│ NGFW DUT │────────────────────────→│ syslog │──→│ Loki │
│ FTD/ASA/ │ RFC 3164 + 5424 │ receiver │ └──────┘
│ Palo/Forti │ │ Deployment │ │
└──────────────┘ │ in obs ns │ │
│ │ ▼
┌──────────────┐ UDP/TCP 514 │ │ ┌─────────┐
│ UCS host │────────────────────────→│ │ │ Grafana │
│ rsyslog │ │ │ │ Explore │
│ (Ubuntu) │ └─────────────┘ └─────────┘
└──────────────┘ │
▼
┌────────────────────┐
│ TLSStress.Art — │
│ Syslog Correlation │
│ dashboard │
└────────────────────┘
Labels do Loki emitidas em cada evento:
| Label | Origem | Exemplos de valores |
|---|---|---|
app |
external_label do Promtail | tlsstress (sempre) |
cluster |
external_label do Promtail | web-agent-cluster |
device_type |
Regex no hostname | nexus, ngfw, ucs |
device_role |
Derivado de device_type |
switch, firewall, host |
device_hostname |
Campo hostname do RFC 5424 | nexus-1.lab.example.com |
device_app |
Campo APP-NAME do RFC 5424 | mts, eth_port_chan_mgr, kernel, decryptd |
severity |
Severidade do RFC 5424 | info, notice, warning, err, crit, alert, emerg |
facility |
Facility do RFC 5424 | local0, daemon, kern, etc. |
channel |
Listener do Promtail | syslog-udp, syslog-tcp |
Apontando cada dispositivo para o endpoint syslog¶
⚠️ Obrigatório: o syslog deve trafegar somente pela OOBI — nunca pelo data plane. Isto é imposto por dois
NetworkPolicyno nível do cluster (syslog-oobi-onlypermite ingress da CIDR 192.168.90.0/24;syslog-deny-data-planenega ingress das CIDRs de personas/agentes). Enviar syslog por uma VLAN de data plane permitiria que ele fosse medido PELO test bed como se fosse tráfego de teste, contaminando as métricas por ciclo. A justificativa completa e as obrigações do operador estão em SYSLOG_OPERATIONS.pt-BR.md.
O Service do Promtail expõe o NodePort 30514 (mapeado internamente para a porta syslog bem conhecida 514). Os dispositivos enviam para <any-cluster-node-ip>:30514 em UDP ou TCP. Escolha o IP de gerenciamento OOBI de um dos hosts UCS.
A porta syslog padrão é a 514. Usamos NodePort 30514 porque o Kubernetes normalmente não permite portas privilegiadas abaixo de 1024. Se a sua política de operador preferir porta 514 do lado do dispositivo, configure uma regra de NAT no firewall do host UCS:
<ucs-oobi-ip>:514 → <ucs-oobi-ip>:30514.
Cisco Nexus 9000 (NX-OS)¶
configure terminal
! Use RFC 5424 — modern, structured, easier for Promtail to parse
logging timestamp microseconds
logging origin-id hostname
! Forward to the Promtail receiver
logging server <ucs-mgmt-ip> 5 use-vrf management transport udp port 30514
! 5 = severity threshold (notifications and worse). Adjust to taste:
! 0 emergencies | 1 alerts | 2 critical | 3 errors
! 4 warnings | 5 notifications | 6 informational | 7 debugging
! Logging buffer (so the Nexus retains last events even if syslog is down)
logging logfile messages 6 size 1048576
! Important categories for an NGFW test bed:
logging level mts 5
logging level monitor 5
logging level eth_port_channel_mgr 5
logging level pixm 5 ! port channel manager
logging level fcoe_mgr 4
end
write memory
show logging server
Verifique no Nexus que o buffer de mensagens está sendo drenado:
show logging last 20
Cisco FTD / ASA / Firepower¶
Para a sintaxe ASA (FTD via FlexConfig funciona de forma similar):
configure terminal
logging enable
logging timestamp
logging buffer-size 1048576
logging buffered notifications
! Forward
logging trap notifications
logging host <data-iface> <ucs-mgmt-ip> 17/30514
! 17 = UDP. Use 6/30514 for TCP.
! For decryption diagnostics specifically (the events we care about
! most for THIS test bed):
logging class crypto 5
logging class ssl 5
logging class connection 4
end
write memory
show logging
Para FTD via FMC: navegue até Devices → Platform Settings → Syslog, configure:
- Server: <ucs-mgmt-ip> UDP/30514
- Severity: notifications
- Categories: connection, crypto, SSL, intrusion
Palo Alto (PAN-OS)¶
! Enter configure mode
configure
! Define syslog server profile
set shared log-settings syslog tlsstress server tlsstress \
transport UDP port 30514 server <ucs-mgmt-ip> facility LOG_LOCAL3 format BSD
! Forward system log (device events, not traffic)
set shared log-settings system match-list tlsstress-system filter "All Logs" \
send-syslog [ tlsstress ]
! Forward decryption / SSL log specifically
set shared log-settings system match-list tlsstress-decrypt filter "(subtype eq decryption)" \
send-syslog [ tlsstress ]
commit
Fortinet (FortiOS)¶
config log syslogd setting
set status enable
set server "<ucs-mgmt-ip>"
set port 30514
set mode udp
set facility local3
set source-ip "<ngfw-mgmt-ip>"
set format default
end
config log syslogd filter
set severity notification
set ssl enable
end
Host UCS (Ubuntu rsyslog)¶
/etc/rsyslog.d/50-tlsstress.conf:
# Forward auth + kernel + system messages to the TLSStress.Art syslog endpoint
*.notice;auth.info @<ucs-mgmt-ip>:30514
# Use double-@ for TCP delivery (more reliable for high-volume logs):
# *.notice;auth.info @@<ucs-mgmt-ip>:30514
Em seguida:
sudo systemctl restart rsyslog
sudo logger -t tlsstress-test "syslog forwarding test from $(hostname)"
Abra o Grafana Explore, consulte {device_hostname="<your-host>"} — a mensagem de teste deve aparecer em até 5 segundos.
Verificando o pipeline ponta a ponta¶
Após configurar pelo menos um dispositivo:
# 1. Confirm the Promtail pod is up:
kubectl get pods -n observability -l app=promtail-syslog
# expect: 1 Running
# 2. Confirm the Service is reachable from the device side:
kubectl get svc -n observability promtail-syslog
# note the NodePort — should be 30514
# 3. From the device (or a UCS host), send a test message:
logger -n <ucs-mgmt-ip> -P 30514 -d -t tlsstress-test "smoke from $(hostname)"
# 4. Tail Loki via the dashboard or via Grafana Explore:
# Query: {app="tlsstress", device_hostname=~".+"}
# expect: the test message appears within 5 seconds.
O dashboard do Grafana¶
TLSStress.Art — Syslog Correlation (Lab Elements) acompanha o overlay kustomize. Possui:
- Resumo de alto nível — eventos por minuto por tipo de dispositivo; volume de logs por host; distribuição de severidade (warning+ apenas)
- Métricas + logs lado a lado — gráfico de linha de p99 de latência dos agentes à esquerda, stream ao vivo de syslog (warning+) à direita. Picos de latência se alinham com rajadas no stream de logs.
- Mergulhos profundos por dispositivo — painéis separados para eventos do Nexus (warning+), eventos do NGFW (info+ para capturar correspondências de decrypt-rule e logs de connection deny), kernel/systemd do UCS (warning+).
Use os filtros device_type e severity no topo do dashboard para estreitar o foco durante uma execução.
Padrões comuns para observar durante uma execução¶
| Sintoma | O que procurar nos logs |
|---|---|
| Handshakes TLS falhando intermitentemente | Eventos decryption do NGFW com severidade notice+; procure por "no decryption profile matched" |
| Pod de persona em CrashLoopBackOff | UCS device_app=kernel + severity=err+; procure por OOM-killer, NIC reset, segfault |
| Pico de p99 sem erro do agente | Avisos de device_app=eth_port_chan_mgr no Nexus (port flap, MAC move); alertas de queue-depth de QoS no Nexus |
| TLS Decrypt Probe diz "off" | NGFW device_app=decryptd (ou equivalente do fornecedor); procure por "decryption disabled on interface" |
| Execução aborta com alerta de fleet readiness | Cruze com logs de connection-deny do NGFW no mesmo timestamp |
Retenção e armazenamento¶
A retenção padrão do Loki nesta stack é de 15 dias. Evidências específicas de execução além disso precisam ser exportadas para um armazenamento de auditoria separado. O Test Run Report (Fase 4 futura) embutirá trechos de logs selecionados como parte do PDF assinado para registro forense permanente.
Comportamento em air-gap¶
Em uma instalação air-gapped, o encaminhamento de syslog funciona internamente ao laboratório — Promtail, Loki e Grafana rodam dentro do cluster. Sem dependência externa. A única coisa que o operador deve verificar é que UDP/TCP 514 dispositivo-para-Promtail está desbloqueado por qualquer ACL de firewall interno.
Se o laboratório tiver um firewall Cisco entre a rede de gerenciamento e o UCS, garanta que o ACL permite tráfego para <ucs-mgmt-ip>:30514 (ou 514 se usar NAT redirect).
Relacionados¶
MONITORING_TEST_VALIDITY.pt-BR.md— o framework mais amplo de alertas de validade que consome estes logsTIME_SYNC.pt-BR.md— sem relógios precisos, correlação de logs não tem significadoAIRGAP_INSTALL.pt-BR.md— o cenário pai onde syslog é o único canal de diagnósticoUSAGE_POLICY.pt-BR.md— restrições de licença aplicam-se também aos logs coletados aqui