{ "processors" : [ { "set": { "field": "cdr.hour", "value": "0" } }, { "set": { "field": "cdr.minute", "value": "0" } }, { "set": { "field": "cdr.second", "value": "0" } }, { "grok" : { "field" : "message", "patterns" : [ "%{LOGDATE:cdr.call_start},%{TIME_CUSTOM:cdr.call_duration_time},%{INT:cdr.ring_duration},%{DATA:cdr.caller_number},%{WORD:cdr.direction},%{DATA:cdr.called_number},%{DATA:cdr.dialed_number},%{DATA:cdr.account},%{INT:cdr.is_internal},%{INT:cdr.call_id},%{DATA:cdr.continuation},%{DATA:cdr.party1device},%{DATA:cdr.party1name},%{DATA:cdr.party2device},%{DATA:cdr.party2name},%{DATA:cdr.holdtime},%{DATA:cdr.park_time},%{DATA:cdr.field_1},%{DATA:cdr.field_2},%{DATA:cdr.field_3},%{DATA:cdr.field_4},%{DATA:cdr.field_5},%{DATA:cdr.field_6},%{DATA:cdr.field_7},%{DATA:cdr.field_8},%{DATA:cdr.field_9},%{DATA:cdr.field_10},%{DATA:cdr.field_11},%{DATA:cdr.field_12},%{DATA:cdr.field_13},%{HOST:cdr.hostname},%{DATA:cdr.field_14},%{HOST:cdr.field_15},%{DATA:cdr.field_16},%{LOGDATE}" ], "pattern_definitions" : { "TIME_CUSTOM" : "%{HOUR_CUSTOM:cdr.hour}:%{MINUTE:cdr.minute}(?::%{SECOND_CUSTOM:cdr.second})", "HOUR_CUSTOM" : "(?!<[0-9])%{HOUR}", "SECOND_CUSTOM" : "(?:(?:[0-5]?[0-9]|60))", "HOST": "%{HOSTNAME}|%{IP}", "LOGDATE" : "%{YEAR}/%{MONTHNUM}/%{MONTHDAY} %{TIME}" }, "ignore_failure" : true } }, { "grok" : { "field" : "message", "patterns" : [ "(<%{DATA}>|)%{LOGDATE:cdr.log_date} %{HOST:cdr.hostname} cdr-master: \"%{ACCOUNT:cdr.account}\",\"%{POSINT:cdr.caller_number}\",\"%{WORD:cdr.called_number}\",%{DATA:cdr.direction},\"%{CALL_DATE:cdr.call_start}\",\"(%{DATA}|)\",\"%{CALL_DATE:cdr.call_end}\",\"%{INT:cdr.call_duration}\",\"%{DATA}\",\"%{DATA:cdr.call_status}\"" ], "pattern_definitions" : { "TIME_CUSTOM": "(?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND_CUSTOM})", "SECOND_CUSTOM": "(?:(?:[0-5]?[0-9]|60))", "LOGDATE": "%{MONTH}(\\s+)%{MONTHDAY}(\\s+)%{TIME}", "HOST": "%{HOSTNAME}|%{IP}", "CALL_DATE": "%{YEAR}-%{MONTHNUM}-%{MONTHDAY}(\\s+)%{TIME}", "ACCOUNT": "\"(%{DATA}|)\" <%{WORD}>" }, "ignore_failure" : true } }, { "grok" : { "field" : "message", "patterns" : [ "(<%{DATA}>|)%{LOGDATE:cdr.log_date} %{HOST:cdr.hostname} cdr-master: \"%{INT:cdr.call_duration}\",\"%{WORD:cdr.billsec}\",\"%{DATA:cdr.caller_number}\",\"%{DATA:cdr.channel}\",\"%{WORD:cdr.called_number}\",\"%{WORD:cdr.dialed_number}\",\"%{DATA}\",\"%{DATA:cdr.dst_channel}\",\"%{DATA:cdr.call_id}\"" ], "pattern_definitions" : { "TIME_CUSTOM": "(?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND_CUSTOM})", "SECOND_CUSTOM": "(?:(?:[0-5]?[0-9]|60))", "LOGDATE": "%{MONTH}(\\s+)%{MONTHDAY}(\\s+)%{TIME}", "HOST": "%{HOSTNAME}|%{IP}", "ACCOUNT": "((\"(%{DATA}|)\" <%{WORD}>)|(%{WORD}))" }, "ignore_failure" : true } }, { "convert" : { "field" : "cdr.hour", "type": "integer" } }, { "convert" : { "field" : "cdr.minute", "type": "integer" } }, { "convert" : { "field" : "cdr.second", "type": "integer" } }, { "script": { "source": "ctx.cdr.call_duration = ctx.cdr.hour * 3600 + ctx.cdr.minute * 60 + ctx.cdr.second" } }, { "remove" : { "field" : "cdr.hour" } }, { "remove" : { "field" : "cdr.minute" } }, { "remove" : { "field" : "cdr.second" } } ], "on_failure" : [ { "set" : { "field" : "error", "value" : "{{_ingest.on_failure_message}}" } } ] }