← Integrations
SyslogJSON export

Elastic

The Filebeat syslog input receives the stream and the CEF processor decodes it. For backfill, export JSON from the API and bulk-index it.

Integration steps for Elastic

Turn on syslog forwarding

In the console, under Settings, Log Forwarding, set the collector host and port. Events are forwarded in real time. This is the method for continuous ingestion; the API export is for backfill and ad hoc retrieval.

Settings > Log Forwarding
Syslog host: collector.example.internal
Syslog port: 514

Filebeat

filebeat.yml
filebeat.inputs:
  - type: syslog
    protocol.udp:
      host: "0.0.0.0:514"
    processors:
      - decode_cef:
          field: message
          target_field: cef
output.elasticsearch:
  hosts: ["https://es.example.internal:9200"]
  index: "securd-dns-%{+yyyy.MM.dd}"

Backfill with JSON export

backfill.sh
curl -s "https://control.securd.com/api/v1/gateway/dashboard/logs/export?format=json&start=now-7d/d" \
  -H "Authorization: Bearer $TOKEN" -H "X-Tenant-UUID: $TENANT" \
  | jq -c '.[] | {index:{_index:"securd-dns"}}, .' \
  | curl -s -H "Content-Type: application/x-ndjson" -XPOST https://es.example.internal:9200/_bulk --data-binary @-
Verification

Two queries: one confirms ingestion, one lists first-seen destinations by policy.

Last 10 events arrived

json
GET securd-dns-*/_search
{ "size": 10, "sort": [{ "@timestamp": "desc" }] }

First-seen destinations per source, last 24h

json
GET securd-dns-*/_search
{
  "size": 0,
  "query": { "bool": { "filter": [
    { "term": { "cef.name": "greywall" } },
    { "range": { "@timestamp": { "gte": "now-24h" } } }
  ]}},
  "aggs": { "by_src": { "terms": { "field": "cef.extensions.sourceAddress", "size": 50 },
    "aggs": { "hosts": { "terms": { "field": "cef.extensions.destinationHostName", "size": 20 } } } } }
}

Evaluate Agent DNS with your own agent traffic

Forward events from a single policy and review them with your security team.