Skip to content

Commit 38da597

Browse files
authored
Add data_stream.dataset option for custom aws-cloudwatch log input (#2560)
1 parent 0b63b55 commit 38da597

File tree

8 files changed

+64
-70
lines changed

8 files changed

+64
-70
lines changed

packages/aws/changelog.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# newer versions go on top
2+
- version: "1.11.2"
3+
changes:
4+
- description: Add data_stream.dataset option for custom aws-cloudwatch log input
5+
type: bugfix
6+
link: https://github.com/elastic/integrations/pull/2560
27
- version: "1.11.1"
38
changes:
49
- description: Update permission list

packages/aws/data_stream/cloudwatch_logs/_dev/test/pipeline/test-cloudwatch-ec2.log-expected.json

Lines changed: 30 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,97 @@
11
{
22
"expected": [
33
{
4-
"@timestamp": "2020-02-20T07:01:01.000Z",
4+
"cloud": {
5+
"provider": "aws"
6+
},
57
"ecs": {
68
"version": "8.0.0"
79
},
10+
"message": "2020-02-20T07:01:01.000Z Feb 20 07:01:01 ip-172-31-81-156 systemd: Stopping User Slice of root.",
811
"event": {
9-
"ingested": "2022-01-09T23:41:38.962436254Z",
12+
"kind": "event",
1013
"original": "2020-02-20T07:01:01.000Z Feb 20 07:01:01 ip-172-31-81-156 systemd: Stopping User Slice of root."
1114
},
12-
"aws": {
13-
"cloudwatch": {
14-
"message": "ip-172-31-81-156 systemd: Stopping User Slice of root."
15-
}
16-
},
1715
"tags": [
1816
"preserve_original_event"
1917
]
2018
},
2119
{
22-
"@timestamp": "2020-02-20T07:02:18.000Z",
20+
"cloud": {
21+
"provider": "aws"
22+
},
2323
"ecs": {
2424
"version": "8.0.0"
2525
},
26+
"message": "2020-02-20T07:02:18.000Z Feb 20 07:02:18 ip-172-31-81-156 dhclient[3000]: XMT: Solicit on eth0, interval 125240ms.",
2627
"event": {
27-
"ingested": "2022-01-09T23:41:38.962442522Z",
28+
"kind": "event",
2829
"original": "2020-02-20T07:02:18.000Z Feb 20 07:02:18 ip-172-31-81-156 dhclient[3000]: XMT: Solicit on eth0, interval 125240ms."
2930
},
30-
"aws": {
31-
"cloudwatch": {
32-
"message": "ip-172-31-81-156 dhclient[3000]: XMT: Solicit on eth0, interval 125240ms."
33-
}
34-
},
3531
"tags": [
3632
"preserve_original_event"
3733
]
3834
},
3935
{
40-
"@timestamp": "2020-02-20T07:02:37.000Z",
36+
"cloud": {
37+
"provider": "aws"
38+
},
4139
"ecs": {
4240
"version": "8.0.0"
4341
},
42+
"message": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 dhclient[2898]: DHCPREQUEST on eth0 to 172.31.80.1 port 67 (xid=0x4575af22)",
4443
"event": {
45-
"ingested": "2022-01-09T23:41:38.962444166Z",
44+
"kind": "event",
4645
"original": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 dhclient[2898]: DHCPREQUEST on eth0 to 172.31.80.1 port 67 (xid=0x4575af22)"
4746
},
48-
"aws": {
49-
"cloudwatch": {
50-
"message": "ip-172-31-81-156 dhclient[2898]: DHCPREQUEST on eth0 to 172.31.80.1 port 67 (xid=0x4575af22)"
51-
}
52-
},
5347
"tags": [
5448
"preserve_original_event"
5549
]
5650
},
5751
{
58-
"@timestamp": "2020-02-20T07:02:37.000Z",
52+
"cloud": {
53+
"provider": "aws"
54+
},
5955
"ecs": {
6056
"version": "8.0.0"
6157
},
58+
"message": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 dhclient[2898]: DHCPACK from 172.31.80.1 (xid=0x4575af22)",
6259
"event": {
63-
"ingested": "2022-01-09T23:41:38.962445580Z",
60+
"kind": "event",
6461
"original": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 dhclient[2898]: DHCPACK from 172.31.80.1 (xid=0x4575af22)"
6562
},
66-
"aws": {
67-
"cloudwatch": {
68-
"message": "ip-172-31-81-156 dhclient[2898]: DHCPACK from 172.31.80.1 (xid=0x4575af22)"
69-
}
70-
},
7163
"tags": [
7264
"preserve_original_event"
7365
]
7466
},
7567
{
76-
"@timestamp": "2020-02-20T07:02:37.000Z",
68+
"cloud": {
69+
"provider": "aws"
70+
},
7771
"ecs": {
7872
"version": "8.0.0"
7973
},
74+
"message": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 dhclient[2898]: bound to 172.31.81.156 -- renewal in 1599 seconds.",
8075
"event": {
81-
"ingested": "2022-01-09T23:41:38.962446977Z",
76+
"kind": "event",
8277
"original": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 dhclient[2898]: bound to 172.31.81.156 -- renewal in 1599 seconds."
8378
},
84-
"aws": {
85-
"cloudwatch": {
86-
"message": "ip-172-31-81-156 dhclient[2898]: bound to 172.31.81.156 -- renewal in 1599 seconds."
87-
}
88-
},
8979
"tags": [
9080
"preserve_original_event"
9181
]
9282
},
9383
{
94-
"@timestamp": "2020-02-20T07:02:37.000Z",
84+
"cloud": {
85+
"provider": "aws"
86+
},
9587
"ecs": {
9688
"version": "8.0.0"
9789
},
90+
"message": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 ec2net: [get_meta] Trying to get http://169.254.169.254/latest/meta-data/network/interfaces/macs/12:e2:a9:95:8b:97/local-ipv4s",
9891
"event": {
99-
"ingested": "2022-01-09T23:41:38.962448339Z",
92+
"kind": "event",
10093
"original": "2020-02-20T07:02:37.000Z Feb 20 07:02:37 ip-172-31-81-156 ec2net: [get_meta] Trying to get http://169.254.169.254/latest/meta-data/network/interfaces/macs/12:e2:a9:95:8b:97/local-ipv4s"
10194
},
102-
"aws": {
103-
"cloudwatch": {
104-
"message": "ip-172-31-81-156 ec2net: [get_meta] Trying to get http://169.254.169.254/latest/meta-data/network/interfaces/macs/12:e2:a9:95:8b:97/local-ipv4s"
105-
}
106-
},
10795
"tags": [
10896
"preserve_original_event"
10997
]

packages/aws/data_stream/cloudwatch_logs/agent/stream/aws-cloudwatch.yml.hbs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
data_stream:
2+
dataset: {{data_stream.dataset}}
3+
14
{{#unless log_group_name}}
25
{{#unless log_group_name_prefix}}
36
{{#if log_group_arn }}

packages/aws/data_stream/cloudwatch_logs/elasticsearch/ingest_pipeline/default.yml

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,20 @@
11
---
2-
description: "Pipeline for CloudWatch logs"
2+
description: "Pipeline for logs ingested from CloudWatch"
33

44
processors:
5-
- set:
6-
field: event.ingested
7-
value: '{{_ingest.timestamp}}'
85
- set:
96
field: ecs.version
107
value: '8.0.0'
11-
- rename:
12-
field: message
13-
target_field: event.original
14-
ignore_missing: true
15-
- grok:
16-
field: event.original
17-
patterns:
18-
- '%{TIMESTAMP_ISO8601:_tmp.timestamp} %{SYSLOGTIMESTAMP:_tmp.syslog_timestamp} %{GREEDYDATA:aws.cloudwatch.message}'
19-
- '%{TIMESTAMP_ISO8601:_tmp.timestamp} %{GREEDYDATA:aws.cloudwatch.message}'
20-
- date:
21-
field: _tmp.timestamp
22-
target_field: "@timestamp"
23-
ignore_failure: true
24-
formats:
25-
- ISO8601
26-
- remove:
27-
field:
28-
- _tmp
29-
ignore_missing: true
30-
- remove:
8+
- set:
319
field: event.original
32-
if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))"
33-
ignore_failure: true
34-
ignore_missing: true
10+
copy_from: message
11+
override: false
12+
- set:
13+
field: cloud.provider
14+
value: aws
15+
- set:
16+
field: event.kind
17+
value: event
3518
on_failure:
3619
- set:
3720
field: error.message

packages/aws/data_stream/cloudwatch_logs/fields/ecs.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,9 @@
22
name: ecs.version
33
- external: ecs
44
name: error.message
5+
- name: message
6+
external: ecs
57
- external: ecs
68
name: tags
9+
- name: event.ingested
10+
external: ecs

packages/aws/data_stream/cloudwatch_logs/manifest.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,3 +175,12 @@ streams:
175175
type: bool
176176
multi: false
177177
default: false
178+
- name: data_stream.dataset
179+
type: text
180+
required: true
181+
default: generic
182+
show_user: false
183+
title: Dataset name
184+
description: >
185+
Set the name for your dataset. Changing the dataset will send the data to a different index. You can't use `-` in the name of a dataset and only valid characters for [Elasticsearch index names](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html).
186+

packages/aws/docs/cloudwatch.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ setup already.
3232
| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword |
3333
| error.message | Error message. | match_only_text |
3434
| event.dataset | Event dataset | constant_keyword |
35+
| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date |
3536
| event.module | Event module | constant_keyword |
3637
| host.architecture | Operating system architecture. | keyword |
3738
| host.containerized | If the host is a container. | boolean |
@@ -49,6 +50,7 @@ setup already.
4950
| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword |
5051
| host.os.version | Operating system version as a raw string. | keyword |
5152
| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword |
53+
| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text |
5254
| tags | List of keywords used to tag each event. | keyword |
5355

5456

packages/aws/manifest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
format_version: 1.0.0
22
name: aws
33
title: AWS
4-
version: 1.11.1
4+
version: 1.11.2
55
license: basic
66
description: Collect logs and metrics from Amazon Web Services with Elastic Agent.
77
type: integration

0 commit comments

Comments
 (0)