Log formats

JSON, logfmt, syslog, access logs, format packs, SIEM formats, and custom format detection.

Mizpah prefers NDJSON, but non-JSON lines are detected and normalized into structured data plus a formatId.

Browse every vendored pack on the Supported Formats page: search by id or title, then inspect the pack JSON definition. Packs are synced from crates/mizpah/formats/packs/ at site build time.

Built-ins (stable Mizpah IDs)

FormatNotes
jsonOne JSON object per line (when no pack matches)
bunyan / pino / otel / journald / slog / zerolog / logrus / structlogMizpah JSON field packs → normalized level / msg / @timestamp
logfmtlevel=error msg="…" key/value pairs
syslogSyslog / RFC5424-ish lines (hand parser; also backed by syslog_log pack samples)
access_logCombined / common HTTP access logs
genericLevel-token plaintext (ERROR …)
rawFallback { "_raw": "…" }
bro_logBro / Zeek TSV (header-driven #fields)
w3c_logW3C Extended Log File Format (#Fields:)
heroku_router_logHeroku HTTP router (heroku[router]: at=…) — specialized (beats syslog/logfmt)
f5_log / consul_log / nomad_logF5 BIG-IP / Consul / Nomad agent lines — specialized

Format-v1 packs

Mizpah vendors built-in format-v1 packs (see crates/mizpah/formats/packs/PIN.txt for the original pin, plus first-party additions) and loads them at startup via a PCRE2 engine. JSON packs may declare match-keys so detection requires distinctive fields (collision-safe). Binary captures are converted during file ingest, then classified by post-convert packs. The live count and full definitions are in the Supported Formats browser (and under formats/packs/ in the repo).

Examples of pack ids: nestjs_log, postgres_log, aws_eventbridge_log, cloudevents_log, ecs_log, cloudtrail_log, cef_log, suricata_eve_log, sysmon_log, cloudflare_firewall_log, wiz_issue_log, …

When a pack overlaps a stable Mizpah id (syslog_logsyslog, bunyan_logbunyan, …), ingest still emits the stable id. The upstream name is stored additively as _pack_format when the pack engine produced the row.

Cloud

PackNotes
cloudtrail_log, vpc_flow_log, cloudfront_log, nlb_log, waf_log, route53_query_log, lambda_cloudwatch_logAWS
guardduty_logAWS GuardDuty findings
alb_log, elb_log, s3_logAWS (longer-standing)
gcp_cloud_logging_log, gcp_load_balancer_log, gcp_vpc_flow_logGCP
chronicle_udm_logGoogle Chronicle / SecOps UDM
azure_activity_log, azure_nsg_flow_log, azure_app_insights_log, azure_front_door_logAzure

Cloudflare

PackNotes
cloudflare_json_logHTTP request / CDN access (existing)
cloudflare_firewall_log, cloudflare_dns_log, cloudflare_spectrum_log, cloudflare_workers_trace_logEdge / compute Logpush
cloudflare_audit_log, cloudflare_access_log, cloudflare_gateway_http_log, cloudflare_gateway_dns_log, cloudflare_gateway_network_logAccount + Zero Trust
cloudflare_magic_ids_log, cloudflare_page_shield_log, cloudflare_nel_log, cloudflare_email_security_log, cloudflare_casb_log, cloudflare_device_posture_log, cloudflare_zt_session_logSecurity / posture

SIEM / SOC

Recipe for pushing several of these into one hub: SIEM → one hub.

PackNotes
cef_log, leef_log, ocsf_log, gelf_log, splunk_hec_log, sentinel_common_logInterchange
suricata_eve_log, snort_log, falco_log, wazuh_log, crowdstrike_log, okta_system_logIDS / EDR / identity
sysmon_log, windows_security_log, powershell_scriptblock_log, microsoft_defender_log, osquery_log, carbon_black_log, sentinelone_log, sophos_logEndpoint
windows_evtx_logWindows .evtx via file-ingest converter
duo_log, auth0_log, pingfederate_log, keycloak_log, vault_audit_logMFA / IdP / secrets
zscaler_log, netskope_log, modsecurity_log, openvpn_log, wireguard_log, iptables_log, nftables_logNetwork / SWG / VPN
akamai_log, fastly_logCDN / WAF JSON
pcap_log, netflow_logpcap (tshark) / NetFlow·IPFIX (nfdump) via file ingest
fail2ban_log, sshd_log, sudo_log, selinux_log, apparmor_log, guacamole_log, auditd_logHost auth / MAC
dhcp_log, bind_dns_log, unbound_log, radius_logInfra attribution
qualys_log, nessus_logVulnerability scanners
paloalto_log, cisco_asa_log, fortinet_log, checkpoint_logNetwork appliances
ecs_log, bro_log, kubernetes_audit_logExisting SOC-adjacent

Database

PackNotes
postgres_log, vpostgres_logPostgreSQL (incl. duration / statement lines)
pgaudit_logpgAudit AUDIT: session/object lines
mysql_error_log, mysql_gen_log, mysql_slow_log, mysql_audit_logMySQL / MariaDB error, general, slow (per-line stats), audit
mssql_error_logMicrosoft SQL Server ERRORLOG
oracle_alert_logOracle alert / ORA- lines
mongodb_json_log, mongodb_audit_logMongoDB 4.4+ server JSON + audit JSON
redis_log, redis_slowlogRedis process logs + SLOWLOG entries
cassandra_logCassandra / ScyllaDB system.log
cockroachdb_log, cockroachdb_json_logCockroachDB crdb text + JSON sinks
clickhouse_logClickHouse server
elasticsearch_log, elasticsearch_slow_log, opensearch_logES / OpenSearch server + slowlog

Queues / events

PackNotes
aws_sqs_log, aws_sqs_camel_log, aws_sns_log, aws_eventbridge_log, aws_kinesis_log, aws_step_functions_logAWS message / event envelopes
cloudevents_logCloudEvents 1.0 JSON
gcp_pubsub_logGCP Pub/Sub push envelope
azure_event_grid_log, azure_service_bus_log, azure_event_hubs_logAzure messaging schemas
kafka_log, rabbitmq_log, rabbitmq_json_log, nats_log, pulsar_log, activemq_logBroker process / JSON logs
celery_log, sidekiq_log, bullmq_log, bullmq_json_logJob workers
temporal_logTemporal / Cadence history events
prisma_log, zookeeper_logORM query lines / coordination (adjacent)

App frameworks

PackNotes
nestjs_logDefault NestJS ConsoleLogger ([Nest] pid - timestamp LEVEL [Context] …)
winston_log, pino_log, bunyan_log, morgan_logNode loggers / Express morgan dev+tiny
rails_log, laravel_log, monolog_logRuby / PHP
slog_text_log, slog_json_log, zerolog_log, zerolog_json_log, logrus_log, logrus_json_log, zap_console_logGo
python_logging_log, uvicorn_log, gunicorn_log, werkzeug_log, structlog_log, structlog_json_log, loguru_log, django_logPython
java_logJava / Log4j text (includes Spring Boot --- [thread] console)
env_logger_log, rust_tracing_log, simple_rs_logRust
dotnet_console_log, serilog_text_log, serilog_compact_log, nlog_log.NET
celery_log, sidekiq_log, compose_log, airflow_log, temporal_logWorkers / orchestration
jenkins_log, gitlab_ci_log, github_actions_log, terraform_log, ansible_logCI / IaC
etcd_log, datadog_log, otel_collector_logInfra / agents / OTel Collector file exporter (JSON)
nextjs_log, vite_log, prisma_log, elixir_logger_log, deno_log, bun_logFrontend toolchains / niche runtimes

Pretty Nest / util.inspect object dumps are still reassembled separately (not this pack). JSON field packs also recognize stable ids slog, zerolog, logrus, and structlog.

Wiz

PackNotes
wiz_audit_log, wiz_issue_log, wiz_vulnerability_log, wiz_configuration_finding_log, wiz_detection_log, wiz_inventory_logFlattened GraphQL / webhook JSON nodes

Detection order (pipes / stdin)

  1. JSON object → Mizpah JSON packs, then vendored JSON packs (honoring match-keys), else json
  2. Specialized: heroku_router_log, f5_log, consul_log, nomad_log, then logfmt, syslog, access_log, bro_log, w3c_log
  3. Other vendored text packs (specificity-ordered)
  4. generic
  5. raw

File ingest (mzp ingest / mzp files) may lock a format after sampling the first lines and pass a formatHint to the hub. Stdin/pipe stays per-line so mixed streams keep working.

Binary file ingest converts before classify:

InputTool / cratePack id
.evtxRust evtxwindows_evtx_log
.pcap / .pcapngtshark on PATHpcap_log
nfcapd.*nfdump on PATHnetflow_log

--follow is refused for those binary paths (ingest completed files only).

Still deferred

File ingest

mzp ingest ./app.log.gz --service api
mzp ingest ./Security.evtx --service windows
mzp files './logs/*.log' --follow
mzp ingest user@host:/var/log/app.log   # SSH; refused when MIZPAH_SECURE=1

Gzip and bzip2 are decompressed on the fly (including before pcap/EVTX conversion when named *.gz). Remote paths stream into the local hub.

Custom formats

Place TOML field packs under the Mizpah config dir formats/ (see MIZPAH_CONFIG_DIR), e.g.:

id = "myapp"
matchKeys = ["event", "severity"]
levelField = "severity"
msgField = "event"
timeField = "ts"

Built-in Mizpah packs (bunyan/pino/otel/journald) ship in-process; user TOML packs are loaded at parse time. Vendored JSON packs live under the binary’s embedded formats/packs/ tree.