Data enrichment is the process of adding additional context to events being stored in the Secure60 system. This additional context enables effective searching and reporting across multiple dimensions, while allowing the system to scale to store data from hundreds of applications or environments with tens of thousands of devices.
Event enrichment enables you to:
The Secure60 platform supports multiple levels of enrichment that are applied in a specific order:
Examples of valuable context fields include:
The platform follows the Secure60 Common Information Model with these recommended fields:
Some applications and devices allow you to add custom fields at the source before sending data to the collector.
Linux servers can use modified syslog templates to add additional fields:
# Example rsyslog template with custom fields
template(name="CustomFormat" type="string"
string="%timestamp:::date-rfc3339% %hostname% %app-name% %msg% app_name=\"web-server\" environment=\"production\"\n")
Many applications support adding custom fields to their log output:
{
"timestamp": "2024-01-15T10:30:00Z",
"level": "INFO",
"message": "User login successful",
"app_name": "user-portal",
"environment": "production",
"region": "us-east-1"
}
Add consistent metadata to all events processed by a specific collector instance.
# Format: field_name=value,field_name2=value2
STATIC_FIELDS=environment=production,region=us-east-1,collector_zone=dmz
Normalize field names from different data sources to create consistency.
# Format: source_field=destination_field
MAP_FIELDS=username=user_name,clientip=source_ip,app=application_name,src_ip=source_ip
# Standardize user field names
user=user_name,username=user_name,userid=user_name
# Standardize IP address fields
clientip=source_ip,src_ip=source_ip,client_addr=source_ip
# Standardize application fields
app=application_name,service=application_name,program=application_name
Enhance events with contextual information based on the source IP address’s subnet. This method calculates the subnet for an IP address and looks up enrichment data in a CSV file.
ip_src_address
)/24
)ENRICH_SUBNET_ENABLE=true
ENRICH_SUBNET_SOURCE_FIELD=source_ip # Field containing IP address
ENRICH_SUBNET_LOOKUP_PREFIX=/24 # Subnet mask to use
ENRICH_SUBNET_MAPPING_FIELDS=source_department,source_business_unit,source_location,source_criticality
Create a file named mappings_subnet.csv
:
subnet,source_department,source_business_unit,source_location,source_criticality,technology_group,environment
192.168.1.0/24,IT,Technology,New York,High,Infrastructure,Production
10.0.1.0/24,Finance,Business,London,Critical,Applications,Production
172.16.0.0/16,Development,Technology,San Francisco,Medium,Development,Development
10.50.0.0/16,HR,Business,Chicago,Medium,Applications,Production
Mount the CSV file into your collector container:
docker run -v ./mappings_subnet.csv:/etc/vector/mappings_subnet.csv \
--name s60-collector --env-file .env secure60/s60-collector:1.08
# Original Event
{
"message": "User login failed",
"source_ip": "192.168.1.100"
}
# After Subnet Enrichment (using /24 prefix)
{
"message": "User login failed",
"source_ip": "192.168.1.100",
"source_department": "IT",
"source_business_unit": "Technology",
"source_location": "New York",
"source_criticality": "High",
"technology_group": "Infrastructure",
"environment": "Production"
}
Enhance events with contextual information based on exact field value matching. This method performs exact lookups against any field value (commonly hostnames, but configurable for any field).
host_name
)ENRICH_CUSTOM_EXACT_ENABLE=true
ENRICH_CUSTOM_EXACT_SOURCE_FIELD=host_name # Field to match against
ENRICH_CUSTOM_EXACT_MAPPING_FIELDS=source_department,source_business_unit,source_location,source_criticality
Create a file named mappings_exact.csv
:
field_value,source_department,source_business_unit,source_location,source_criticality,technology_group,environment
web-server-01,IT,Technology,New York,High,Infrastructure,Production
web-server-02,IT,Technology,London,High,Infrastructure,Production
db-server-prod,Database,Technology,Frankfurt,Critical,Infrastructure,Production
app-server-dev,Development,Technology,San Francisco,Low,Applications,Development
mail-server-01,IT,Technology,Sydney,Critical,Infrastructure,Production
You can match against any field, not just hostnames:
# Match against application name
ENRICH_CUSTOM_EXACT_SOURCE_FIELD=application_name
# Match against user name
ENRICH_CUSTOM_EXACT_SOURCE_FIELD=user_name
# Match against service name
ENRICH_CUSTOM_EXACT_SOURCE_FIELD=service_name
Mount the CSV file into your collector container:
docker run -v ./mappings_exact.csv:/etc/vector/mappings_exact.csv \
--name s60-collector --env-file .env secure60/s60-collector:1.08
# Original Event
{
"message": "Database connection established",
"host_name": "db-server-prod"
}
# After Exact Field Matching
{
"message": "Database connection established",
"host_name": "db-server-prod",
"source_department": "Database",
"source_business_unit": "Technology",
"source_location": "Frankfurt",
"source_criticality": "Critical",
"technology_group": "Infrastructure",
"environment": "Production"
}
The Secure60 Collector includes pre-built transformations for specific technologies that can be enabled via the Portal UI or environment variables.
Enable technology-specific normalization via Portal UI:
Or via environment variables:
ENABLE_LINUX_SYSLOG=true
ENABLE_M365=true
ENABLE_NGINX=true
ENABLE_AWS=true
The Secure60 Collector automatically normalizes known field names into the Secure60 schema with zero configuration required.
ENABLE_GENERIC_NORMALISE=true # Enabled by default
The Secure60 Ingest layer automatically adds geographic information to any ip_src_address
or ip_dst_address
fields in your events.
# Before GEO Enhancement
{
"ip_src_address": "8.8.8.8",
"message": "DNS query"
}
# After GEO Enhancement
{
"ip_src_address": "8.8.8.8",
"message": "DNS query",
"geo_src_country": "United States",
"geo_src_city": "Mountain View",
"geo_src_latitude": 37.4056,
"geo_src_longitude": -122.0775,
"asn_src_org": "Google LLC",
"asn_src_number": 15169
}
Regional Architecture
Organisation: North America
├── Project: US Production
├── Project: US Development
└── Project: Canada Production
Organisation: Europe
├── Project: UK Production
├── Project: Germany Production
└── Project: EU Development
Application-Centric Architecture
Organisation: Enterprise IT
├── Project: ERP Systems
├── Project: Web Applications
├── Project: Database Systems
└── Project: Network Infrastructure
Environment-Based Architecture
Organisation: Company
├── Project: Production
├── Project: Staging
└── Project: Development
source_ip
not sourceIP
)geo_src_*
, asn_src_*
)When using regex patterns for field extraction or content redaction:
(?P<name>pattern)
for automatic field creation\b
for precise pattern matchingFor assistance with data enrichment configuration, contact our integrations team at integrations@secure60.io