forked from elastic/integrations
-
Notifications
You must be signed in to change notification settings - Fork 0
/
default.yml
436 lines (436 loc) · 13.6 KB
/
default.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
---
description: Pipeline for parsing DNS data logs.
processors:
- set:
field: ecs.version
value: '8.8.0'
- set:
field: event.kind
value: event
- set:
field: event.category
value: [network]
- set:
field: event.type
value: [protocol]
- rename:
field: message
target_field: event.original
ignore_missing: true
- json:
field: event.original
target_field: json
- fingerprint:
fields:
- json.created_at
- json.updated_at
- json.id
target_field: _id
ignore_missing: true
- rename:
field: json.absolute_name_spec
target_field: infoblox_bloxone_ddi.dns_data.absolute_name.spec
ignore_missing: true
- rename:
field: json.absolute_zone_name
target_field: infoblox_bloxone_ddi.dns_data.absolute_zone.name
ignore_missing: true
- rename:
field: json.comment
target_field: infoblox_bloxone_ddi.dns_data.comment
ignore_missing: true
- date:
field: json.created_at
target_field: infoblox_bloxone_ddi.dns_data.created_at
if: ctx.json?.created_at != null && ctx.json.created_at != ''
formats:
- ISO8601
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- set:
field: event.created
copy_from: infoblox_bloxone_ddi.dns_data.created_at
ignore_failure: true
- rename:
field: json.delegation
target_field: infoblox_bloxone_ddi.dns_data.delegation
ignore_missing: true
- convert:
field: json.disabled
target_field: infoblox_bloxone_ddi.dns_data.disabled
if: ctx.json?.disabled != ''
type: boolean
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- rename:
field: json.dns_absolute_name_spec
target_field: infoblox_bloxone_ddi.dns_data.absolute.name.spec
ignore_missing: true
- rename:
field: json.dns_absolute_zone_name
target_field: infoblox_bloxone_ddi.dns_data.absolute.zone.name
ignore_missing: true
- rename:
field: json.dns_name_in_zone
target_field: infoblox_bloxone_ddi.dns_data.name_in.zone
ignore_missing: true
- rename:
field: json.dns_rdata
target_field: infoblox_bloxone_ddi.dns_data.rdata_value
ignore_missing: true
- rename:
field: json.id
target_field: infoblox_bloxone_ddi.dns_data.id
ignore_missing: true
- set:
field: event.id
copy_from: infoblox_bloxone_ddi.dns_data.id
ignore_failure: true
- rename:
field: json.inheritance_sources.ttl.action
target_field: infoblox_bloxone_ddi.dns_data.inheritance.sources.ttl.action
ignore_missing: true
- rename:
field: json.inheritance_sources.ttl.display_name
target_field: infoblox_bloxone_ddi.dns_data.inheritance.sources.ttl.display.name
ignore_missing: true
- rename:
field: json.inheritance_sources.ttl.source
target_field: infoblox_bloxone_ddi.dns_data.inheritance.sources.ttl.source
ignore_missing: true
- convert:
field: json.inheritance_sources.ttl.value
target_field: infoblox_bloxone_ddi.dns_data.inheritance.sources.ttl.value
if: ctx.json?.inheritance_sources?.ttl?.value != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- rename:
field: json.name_in_zone
target_field: infoblox_bloxone_ddi.dns_data.name_in_zone
ignore_missing: true
- convert:
field: json.options.create_ptr
target_field: infoblox_bloxone_ddi.dns_data.options.create_ptr
if: ctx.json?.options?.create_ptr != ''
type: boolean
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.options.check_rmz
target_field: infoblox_bloxone_ddi.dns_data.options.check_rmz
if: ctx.json?.options?.check_rmz != ''
type: boolean
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.options.address
target_field: infoblox_bloxone_ddi.dns_data.options.address
if: ctx.json?.options?.address != ''
type: ip
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- append:
field: related.ip
value: '{{{infoblox_bloxone_ddi.dns_data.options.address}}}'
allow_duplicates: false
ignore_failure: true
- rename:
field: json.provider_metadata
target_field: infoblox_bloxone_ddi.dns_data.provider_metadata
ignore_missing: true
- convert:
field: json.rdata.address
target_field: infoblox_bloxone_ddi.dns_data.rdata.address
if: ctx.json?.rdata?.address != ''
type: ip
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- append:
field: related.ip
value: '{{{infoblox_bloxone_ddi.dns_data.rdata.address}}}'
allow_duplicates: false
ignore_failure: true
- rename:
field: json.rdata.flags
target_field: infoblox_bloxone_ddi.dns_data.rdata.flags
ignore_missing: true
- rename:
field: json.rdata.tag
target_field: infoblox_bloxone_ddi.dns_data.rdata.tag
ignore_missing: true
- rename:
field: json.rdata.value
target_field: infoblox_bloxone_ddi.dns_data.rdata.value
ignore_missing: true
- rename:
field: json.rdata.cname
target_field: infoblox_bloxone_ddi.dns_data.rdata.cname
ignore_missing: true
- rename:
field: json.rdata.target
target_field: infoblox_bloxone_ddi.dns_data.rdata.target
ignore_missing: true
- rename:
field: json.rdata.dhcid
target_field: infoblox_bloxone_ddi.dns_data.rdata.dhcid
ignore_missing: true
- rename:
field: json.rdata.exchange
target_field: infoblox_bloxone_ddi.dns_data.rdata.exchange
ignore_missing: true
- convert:
field: json.rdata.preference
target_field: infoblox_bloxone_ddi.dns_data.rdata.preference
if: ctx.json?.rdata?.preference != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.rdata.order
target_field: infoblox_bloxone_ddi.dns_data.rdata.order
if: ctx.json?.rdata?.order != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- rename:
field: json.rdata.regexp
target_field: infoblox_bloxone_ddi.dns_data.rdata.regexp
ignore_missing: true
- rename:
field: json.rdata.replacement
target_field: infoblox_bloxone_ddi.dns_data.rdata.replacement
ignore_missing: true
- rename:
field: json.rdata.services
target_field: infoblox_bloxone_ddi.dns_data.rdata.services
ignore_missing: true
- rename:
field: json.rdata.dname
target_field: infoblox_bloxone_ddi.dns_data.rdata.dname
ignore_missing: true
- convert:
field: json.rdata.expire
target_field: infoblox_bloxone_ddi.dns_data.rdata.expire
if: ctx.json?.rdata?.expire != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- rename:
field: json.rdata.mname
target_field: infoblox_bloxone_ddi.dns_data.rdata.mname
ignore_missing: true
- convert:
field: json.rdata.negative_ttl
target_field: infoblox_bloxone_ddi.dns_data.rdata.negative_ttl
if: ctx.json?.rdata?.negative_ttl != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.rdata.refresh
target_field: infoblox_bloxone_ddi.dns_data.rdata.refresh
if: ctx.json?.rdata?.refresh != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.rdata.retry
target_field: infoblox_bloxone_ddi.dns_data.rdata.retry
if: ctx.json?.rdata?.retry != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- rename:
field: json.rdata.rname
target_field: infoblox_bloxone_ddi.dns_data.rdata.rname
ignore_missing: true
- convert:
field: json.rdata.serial
target_field: infoblox_bloxone_ddi.dns_data.rdata.serial
if: ctx.json?.rdata?.serial != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.rdata.port
target_field: infoblox_bloxone_ddi.dns_data.rdata.port
if: ctx.json?.rdata?.port != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.rdata.priority
target_field: infoblox_bloxone_ddi.dns_data.rdata.priority
if: ctx.json?.rdata?.priority != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- convert:
field: json.rdata.weight
target_field: infoblox_bloxone_ddi.dns_data.rdata.weight
if: ctx.json?.rdata?.weight != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- rename:
field: json.rdata.text
target_field: infoblox_bloxone_ddi.dns_data.rdata.text
ignore_missing: true
- rename:
field: json.rdata.type
target_field: infoblox_bloxone_ddi.dns_data.rdata.type
ignore_missing: true
- convert:
field: json.rdata.length_kind
target_field: infoblox_bloxone_ddi.dns_data.rdata.length_kind
if: ctx.json?.rdata?.length_kind != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- rename:
field: json.tags
target_field: infoblox_bloxone_ddi.dns_data.tags
ignore_missing: true
- rename:
field: json.source
target_field: infoblox_bloxone_ddi.dns_data.source
ignore_missing: true
- convert:
field: json.ttl
target_field: infoblox_bloxone_ddi.dns_data.ttl
if: ctx.json?.ttl != ''
type: long
ignore_missing: true
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- set:
field: dns.answers.ttl
copy_from: infoblox_bloxone_ddi.dns_data.ttl
ignore_failure: true
- rename:
field: json.type
target_field: infoblox_bloxone_ddi.dns_data.type
ignore_missing: true
- date:
field: json.updated_at
target_field: infoblox_bloxone_ddi.dns_data.updated_at
if: ctx.json?.updated_at != null && ctx.json.updated_at != ''
formats:
- ISO8601
on_failure:
- append:
field: error.message
value: '{{{_ingest.on_failure_message}}}'
- set:
field: '@timestamp'
copy_from: infoblox_bloxone_ddi.dns_data.updated_at
ignore_failure: true
- rename:
field: json.view
target_field: infoblox_bloxone_ddi.dns_data.view
ignore_missing: true
- rename:
field: json.view_name
target_field: infoblox_bloxone_ddi.dns_data.view_name
ignore_missing: true
- rename:
field: json.zone
target_field: infoblox_bloxone_ddi.dns_data.zone
ignore_missing: true
- remove:
field: json
ignore_missing: true
- remove:
field:
- infoblox_bloxone_ddi.dns_data.updated_at
- infoblox_bloxone_ddi.dns_data.lame_ttl
- infoblox_bloxone_ddi.dns_data.created_at
- infoblox_bloxone_ddi.dns_data.id
if: ctx.tags == null || !(ctx.tags.contains('preserve_duplicate_custom_fields'))
ignore_failure: true
ignore_missing: true
- remove:
field: event.original
if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event'))
ignore_failure: true
ignore_missing: true
- script:
description: Drops null/empty values recursively.
lang: painless
source:
boolean dropEmptyFields(Object object) {
if (object == null || object == '') {
return true;
} else if (object instanceof Map) {
((Map) object).values().removeIf(value -> dropEmptyFields(value));
return (((Map) object).size() == 0);
} else if (object instanceof List) {
((List) object).removeIf(value -> dropEmptyFields(value));
return (((List) object).length == 0);
}
return false;
}
dropEmptyFields(ctx);
on_failure:
- set:
field: event.kind
value: pipeline_error
- append:
field: error.message
value: '{{{ _ingest.on_failure_message }}}'