[RULE:values_format_logs] alter parsed_fields = regexcapture(_raw_log,"<(?P\d{1,3})>(?P\d{1,3})\s(?P\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{2}:\d{2})\s(?P\S+)[\s-]+\\?\"?(?P\S+)\\?\"?\s(?P\S+)\s(?P\S+)\s(?P\S+)\s\"(?P.+)\s\"?(?P\d)\s\"?(?P\d)\"?\s\"?(?P[^\"]*)\"\s\"(?P[^\"]*)\"\s\"(?P[^\"]*)\"\s\"(?P[^\"]*)\"\s\"(?P[^\"]*)\"\s(?P\S+)\s\"(?P[^\"]*)\"?\s(?P[^\"]*)\"?\s\"(?P\d?\d?\d?)(?P[^\"]*)\"\s\"(?P[^\"]*)\"\s\"(?P[^\"]*)\"\s\"?(?P[^\"]*)\"\s\"(?P[^\"]*)\"\s\"(?P[^\"]*)"); [RULE:key_value_format_logs] alter tmp_get_keys = rtrim(arraystring(arraymap(regextract(_raw_log ,"\s(\S+):\"[^\"]*"), concat("(?P", "<"+"@element"+">", "[^|]+)\|")),""),"\|"), tmp_get_values = arraystring(regextract(_raw_log ,"\s\S+:\"([^\"]*)"),"|") | alter parsed_fields = regexcapture(tmp_get_values, tmp_get_keys) | fields -tmp_get_keys ,tmp_get_values ; [RULE:get_hostname_rule] filter _raw_log ~= "\*\*NF\*\*" |alter parsed_fields_get_headers = regexcapture(_raw_log,"<(?P\d{1,3})>(?P\d{1,3})\s(?P\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?)(?P[+-]\d{2}:\d{2})\s(?P\S+)") | alter get_time = parse_timestamp("%FT%X%Z", parsed_fields_get_headers -> iso_timestamp+parsed_fields_get_headers -> get_offset) | alter _time = get_time | fields -get_time; [INGEST:vendor="reblaze", product="waf", target_dataset="reblaze_waf_raw", no_hit = keep] call get_hostname_rule |filter parsed_fields_get_headers -> hostname = "reblazer" |call key_value_format_logs; call get_hostname_rule |filter parsed_fields_get_headers -> hostname != "reblazer" |call values_format_logs ;