Document toolboxDocument toolbox

Log File Format

Infoblox Platform logs are delivered in parquet format. You can use the Apache parquet tools that Infoblox provides (click here to access the tools) to convert the parquet files to JSON format if necessary. For more information, see Converting Parquet to JSON.

Infoblox Platform supports three log file types: DNS queries and responses, RPZ hits, and IPAM metadata.

When synchronizing data with your S3 bucket the first time, Infoblox Platform automatically creates a directory structure in the following format for each day.

For DNS Response data, the following directory structure is required:

Amazon S3 > <bucketname> / dns_enriched / year=xxxx / month=xx / day=xx

Example:

Amazon S3 > testbucket / dns_enriched/ year=2022 / month=10 / day=31


Do not delete or modify the directory structure that Infoblox Platform creates. Otherwise, you might lose log data when Infoblox Platform synchronizes subsequent data with your S3 bucket.

Each folder in the directory structure contains all the log files that you have selected for export. For example, if you have selected DNS Response Logs and RPZ logs, you will see all the dns_ and rpz_ files in the same folder for a specific date.

The following sections describe the file format and data schema for each log type.

Response Logs

File format: part-00000-0228fa58-6334-464c-8502-37f04dd40528.c000.snappy.parquet

Schema:

Resource Record

Field NameTypeDescription
nameSTRINGFQDN
ttlINT64Time-to-live
typeINT32RR type
clasINT32RR class
dataSTRINGRR data

DNS

Field NameTypeDescription
opcodeINT32opcode for NOTIFY, STATUS, QUERY, UPDATE

This is the DNS opcode as defined in RFC 5395. Possible values are
QUERY (0), IQUERY (1), STATUS (2), NOTIFY(4), UPDATE (5) and so on.
Infoblox log collector assigns a default value of -1 to this field
when opcode data is not available from the source log.

timestampINT64timestamp in second part
qnameSTRINGDNS query name in FQDN
qtypeINT32DNS query type
qclassINT32DNS query class
sourceSTRINGdata source or DNS server ID
qipSTRINGRequester IP
qportINT32Requester Port
ripSTRINGResponder IP
rportINT32Responder Port
protocolINT32DNS protocol for TCP or UDP
delayFLOAT64Delay in response
rcodeINT32Return code
typeINT32Message type by ISC:

0: UDP_INVALID

1: UDP_QUERY_RESPONSE

2: UDP_UNANSWERED_QUERY

3: UDP_UNSOLICITED_RESPONSE

4: TCP

5: ICMP

6: UDP_QUERY_ONLY

7: UDP_RESPONSE_ONLY

qqrBOOLQuery flag QR
qaaBOOLQuery flag AA
qtcBOOLQuery flag TC
qrdBOOLQuery flag RD
qraBOOLQuery flag RA
qadBOOLQuery flag AD
qcdBOOLQuery flag CD
qdoBOOLQuery flag DO
rqrBOOLResponse flag QR
raaBOOLResponse flag AA
rtcBOOLResponse flag TC
rrdBOOLResponse flag RD
rraBOOLResponse flag RA
radBOOLResponse flag AD
rcdBOOLResponse flag CD
rdoBOOLResponse flag DO
qqr1ARRAY[ResourceRecord]query resource record list 1
qqr2ARRAY[ResourceRecord]query resource record list 2
qqr3ARRAY[ResourceRecord]query resource record list 3
rrr1ARRAY[ResourceRecord]response resource record list 1
rrr2ARRAY[ResourceRecord]response resource record list 2
rrr3ARRAY[ResourceRecord]response resource record list 3
viewSTRINGDNS view
anonymizedBOOLAnonymized flag
nanosecINT32Timestamp in nano second part
pidSTRINGPolicy identifier
cidSTRINGClient identifier
tidSTRINGTransaction identifier
extra[('sld', 'some-sample-domain.com'), ('pname', 'sample'), ('domain_applications', 'sample domain application'), ('client_region', 'Region'), ('client_country', 'Country'), ('qname_norm', 'Gname '), ('client_continent', 'Continent'), ('event_date', '2023-07-04 00:26:50.858'), ('response_region', 'Region'), ('application', '[{"category":"Endpoint Protection","id":"54c42618-9790-45cf-b67g-2d97135a1442","name":"Name","vendor":"Name"}]'), ('egress_ip', '66.27.233.242'), ('device_name', '63.15.332.324'), ('record_type', '1'), ('all_tags', 'APP_Name_Technology - Other'), ('domain_categories', 'Technology - Other'), ('storage_id', '2401908'), ('response_country', 'Response country'), ('pdisplay_name', 'Display name'), ('network', 'Network name'), ('response', '17.164.123.313'), ('response_continent', 'sample'), ('device_ip', '66.27.233.242'), ('query_type', 'A')]This existing map field contains all the enriched fields from the pipeline.
ancountINT
Answers count
nscountINTNameservers count
arcountINTAdditional records count
usernameSTRINGUsername for authenticated users
regionSTRINGATC's region
cmacSTRINGClient MAC address
versionSTRINGSchema version

Sample DNS response log:

java -jar parquet-tools-1.8.2-SNAPSHOT.jar cat -j dns_00000001525858200000_017.parquet

{“opcode”:0,”timestamp”:1525857674,”qname”:”eicar.co.”,”qtype”:1,”qclass”:1,”source”:
“3b9eea03015cee5cca1bcb22b02c837c”,”qip”:”54.152.30.60″,”qport”:47″3b9eea03015cee5cca1bcb22b02c837c”,”qip”:”54.152.30.60″,”qport”:47697,”rip”:”
“,”rport”:-1,”protocol”:17,”delay”:1.0,”rcode”:3,”type”:1,”qqr”:false,”qaa”:false,”qtc”:false,”qrd”:false,”qra”:false,
“qad”:false,”qcd”:false,”qdo”:false,”rqr”:true,”raa”:false,”rtc”:false,”rrd”:true,”rra”:false,”rad”:true,”rcd”:false,
“rdo”:false,”rrr1″:{},”rrr2″:{},”rrr3″:{},”view”:””,”anonymized”:false,”nanosec”:220087857,”pid”:”120873″,
“cid”:”:c4f0717dbd1150904aab042e1843a91f”,”tid”:””}

RPZ Logs


For RPZ  data, the following directory structure is required:

Amazon S3 > <bucketname> /archivers/ rpz_enriched / year=xxxx / month=xx / day=xx /hour=xx

Example:

Amazon S3 > testbucket/rpz_enriched /year=2024/month=3/day=3/hour=15/ 

File format: part-00000-0228fa58-6334-464c-8502-37f04dd40528.c000.snappy.parquet

RPZ

Field NameTypeDescription
opcodeINT32opcode for NOTIFY, STATUS, QUERY, UPDATE

This is the opcode for the corresponding DNS traffic, such as
QUERY (0), IQUERY (1), STATUS (2), NOTIFY(4), and UPDATE (5).
Infoblox log collector assigns a default value of -1 to this field when
opcode data is not available from the source log.

timestampINT64timestamp in second part
nanosecondINT32Timestamp in nano second part
tcodeINT32RPZ Trigger code (adapted from ZyTrax)

0: QNAME Trigger on query name

1: CLIENT-IP Trigger on DNS client IP

2: IP Trigger on query response IP

3: NSDNAME Trigger on NS name during delegation

4: NS-IP Trigger on NS IP during delegation

tnameSTRINGFQDN for RPZ trigger (feedname.rpz_entry or rpz_entry.feedname)
acodeINT32RPZ Action code (adapted from ZyTrax)

0: Local-Data Response data defined by RR and target name

1: NODATA Return name exists but with no answer data

2: PASSTHRU Do nothing – normally defines an exception in a range

3: NXDOMAIN Return name does not exist

4: TCP-Only Force use of TCP (REDIRECT for policy engine)

5: REFUSED Support for JANUS

6: DROP Causes client timeout

arrtypeINT32RPZ Action RR type
arrdataSTRINGRPZ Action RR data
qnameSTRINGDNS query name in FQDN
qtypeINT32DNS query type
qclassINT32DNS query class
sourceSTRINGdata source or DNS server ID
qipSTRINGrequester IP
qportINT32Requester Port
ripSTRINGResponder IP
rportINT32Responder Port
viewSTRINGDNS view (Infoblox feed or others. Optionally prefix with network view qualifier)
pvendorSTRINGProduct vendor
pnameSTRINGProduct name
pversionSTRINGProduct version
loglevelINT32Syslog severity level indicator
disabledBOOLIs RPZ rule disabled
tidSTRINGTransaction Identifier of DNS response
pidSTRINGPolicy Identifier (optional)
cidSTRINGClient Identifier  (optional)
anonymizedBOOLAnonymized flag
cmacSTRINGClient MAC address (optional)
csiteSTRINGClient Site ID (optional)
qcatSTRINGContent category (optional)
tinfoSTRINGTrigger information: threat property, threat level, threat confidence  (optional)
usernameSTRINGUsername for authenticated users
regionSTRINGATC's region
extra

NULL


[('user_name', 'anallapa'), ('threat_class', 'CAT'), ('sld', 'hivestreaming.com'), ('pname', 'remote_client'), ('domain_applications', 'Uncategorized'), ('feed_name', 'CAT_Business Software'), ('client_region', 'Telangana'), ('endpointgroups', 'India _SEZ_STPI'), ('client_country', 'India'), ('qname_norm', 'peers.hivestreaming.com'), ('property', 'Business Software'), ('private_ip', '192.168.1.15'), ('category', 'Business Software'), ('client_continent', 'Asia'), ('event_date', '2024-01-09 10:00:00.799'), ('threat_indicator', 'peers.hivestreaming.com'), ('mac_address', '4c:1d:96:61:81:b8'), ('response_region', 'Maharashtra'), ('record_type', '3'), ('device_name', 'LIN65001082.corp.capgemini.com'), ('policy_name', 'India_SEZ'), ('egress_ip', '49.205.243.42'), ('domain_categories', 'Business Software,Technology - Other'), ('all_tags', 'APP_Uncategorized,CAT_Business Software,CAT_Technology - Other,LIST_658691,LIST_672857'), ('response_country', 'India'), ('storage_id', '302391'), ('pdisplay_name', 'Remote Client (ATeP)'), ('network', 'BloxOne Endpoint'), ('feed_type', 'FQDN'), ('policy_action', 'Redirect'), ('os_version', 'Windows 11 Pro'), ('device_ip', '49.205.243.42'), ('response_continent', 'Asia'), ('response', '203.191.35.125'), ('query_type', 'A')]

versionSTRINGSchema version
keySTRINGexample: com.123xyz@123abc
sldSTRINGSecond level domain (example: googl.com)

Sample RPZ log:

java -jar parquet-tools-1.10.1-SNAPSHOT.jar cat -j rpz_0000000000000000061_030.parquet

{“opcode”:-1,”timestamp”:1521522768,”nanosec”:0,”tcode”:0,”tname”:”eicar.co.base.rpz.infoblox.local”,”acode”:3,”arrtype”:-1,”arrdata”:””,”qname”:”eicar.co”,”qtype”:1,”qclass”:-1,”source”:””,”qip”:”10.120.20.247″,”qport”:39826,”rip”:”10.35.205.4″,”rport”:-1,”view”:”_default”,”pvendor”:”Infoblox”,”pname”:”NIOS”,”pversion”:”8.2.0-357775″,”loglevel”:7,”disabled”:false,”tid”:””,”pid”:””,”cid”:””,”anonymized”:false,”cmac”:””,”csite”:””,”qcat”:””,”tinfo”:””}

IPAM Metadata Logs

File format: ipmeta__Update_1521240816_0000000000_01965.parquet

Schema:

Session Record

Field NameTypeDescription
nameSTRING
actfromINT64
acttoINT64

IP Meta

Field NameTypeDescription
opcodeINT32opcode for NOTIFY, STATUS, QUERY, UPDATE

The opcode values are INSERT (0), DELETE (1), and UPDATE (2).
Infoblox log collector assigns a default value of -1 to this
field when opcode data is not available from the source log.

sourceSTRINGData source (identical to DNS schema attribute with same name)
timestampINT64timestamp in second part
nanosecondINT32Timestamp in nano second part
cipSTRINGClient IPv4 or IPv6 address
hostnamesARRAY[STRING]Client machine names or hostnames
usernamesARRAY[SessionRecord]Client usernames associated with IP (from AD)
macSTRINGClient MAC address or hardware ID
viewSTRINGNetwork view name containing DHCP lease
fingerprintSTRINGDescription of Fingerprint from DHCP lease
osSTRINGOS discovered
firsttsINT64Timestamp of first discovery
lasttsINT64Timestamp of last discovery
extrattrsMAP[ARRAY[STRING]]IPAM Extensible Attributes
anonymizedBOOLAnonymized flag
memberNULL

A map of member fields for range and ipv6 range

type: map

values: string

discovered_dataNULL

Network discovery device information

type: map

values: string

extraNULL

A map of extra fields (May include new additional fields)

type: map

values: string

Sample IPAM Metadata log:

java -jar parquet-tools-1.10.1-SNAPSHOT.jar cat -j ipmeta_Update_1521240816_0000000000_01965.parquet

{“opcode”:2,”source”:”10.35.205.4″,”timestamp”:1521535044,”nanosec”:0,”cip”:”10.35.205.4″,”hostnames”:{},”usernames”:{“array”:[{“name”:”frtest”,”actfrom”:1521238758,”actto”:1521534479}]},”mac”:””,”view”:”default”,”fingerprint”:””,”os”:””,”firstts”:-1,”lastts”:-1,”extattrs”:{},”anonymized”:false}