In syslog-ng OSE version
The database file is a simple text file in comma-separated value (CSV) format, where each line contains the following information:
A selector or ID that appears in the log messages, or the name of a filter that matches the messages, for example, the hostname.
The name of the name-value pair that syslog-ng OSE adds to matching log messages.
The value of the name-value pairs.
For example, the following csv-file contains three lines identified with the IP address, and adds the host-role field to the log message.
192.168.1.1,host-role,webserver 192.168.2.1,host-role,firewall 192.168.3.1,host-role,mailserver
The database file must comply with the RFC4180 CSV format, with the following exceptions and limitations:
The values of the CSV-file cannot contain line-breaks
To add multiple name-value pairs to a message, include a separate line in the database for each name-value pair, for example:
192.168.1.1,host-role,webserver 192.168.1.1,contact-person,"John Doe" 192.168.1.1,contact-email,johndoe@example.com
Technically, add-contextual-data() is a parser in syslog-ng OSE so you have to define it as a parser object.
parser p_add_context_data {
add-contextual-data(
selector("$HOST"),
database("context-info-db.csv"),
);
};
You can also add data to messages that do not have a matching selector entry in the database using the default-selector() option.
If you modify the database file, you have to reload syslog-ng OSE for the changes to take effect. If reloading syslog-ng OSE or the database file fails for some reason, syslog-ng OSE will keep using the last working database file.
The following example defines uses a CSV database to add the role of the host based on its IP address, and prefixes the added name-value pairs with .metadata. The destination includes a template that simply appends the added name-value pairs to the end of the log message.
@include "scl.conf"
source s_network {
network(port(5555));
};
destination d_local {
file("/tmp/test-msgs.log"
template("$MSG Additional metadata:[${.metadata.host-role}]")};
parser p_add_context_data {
add-contextual-data(selector("$SOURCEIP"), database("context-info-db.csv"), default-selector("unknown"), prefix(".metadata."));
};
log {
source(s_network);
parser(p_add_context_data);
destination(d_local);
};192.168.1.1,host-role,webserver 192.168.2.1,host-role,firewall 192.168.3.1,host-role,mailserver unknown,host-role,unknown
© 2025 One Identity LLC. ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center