diff --git a/packages/cisco_ise/changelog.yml b/packages/cisco_ise/changelog.yml index eaec69ef40c..1b2988a84d6 100644 --- a/packages/cisco_ise/changelog.yml +++ b/packages/cisco_ise/changelog.yml @@ -1,4 +1,9 @@ # newer versions go on top +- version: "1.32.9" + changes: + - description: Stop the date processors from throwing a "field [_tmp] not present" error whenever grok_time_details fails. Declare error.message in the field mappings. + type: bugfix + link: https://github.com/elastic/integrations/pull/20069 - version: "1.32.8" changes: - description: Parse TACACS accounting `start_time` and `stop_time` with second, millisecond, or higher-precision epoch values instead of dropping them as out-of-range dates. diff --git a/packages/cisco_ise/data_stream/log/_dev/test/pipeline/test-pipeline-device-sensor-fragments.log b/packages/cisco_ise/data_stream/log/_dev/test/pipeline/test-pipeline-device-sensor-fragments.log new file mode 100644 index 00000000000..a3a3d081303 --- /dev/null +++ b/packages/cisco_ise/data_stream/log/_dev/test/pipeline/test-pipeline-device-sensor-fragments.log @@ -0,0 +1 @@ +CISE_Profiler 0000034521 2 1 cisco-av-pair=cdp-tlv=cdpCacheAddress=192.0.2.10, cisco-av-pair=lldp-tlv=lldpSystemDescription=Cisco IOS Software C3700 Software, cisco-av-pair=cdp-tlv=cdpCacheDeviceId=SAMPLE-AP-0001, diff --git a/packages/cisco_ise/data_stream/log/_dev/test/pipeline/test-pipeline-device-sensor-fragments.log-expected.json b/packages/cisco_ise/data_stream/log/_dev/test/pipeline/test-pipeline-device-sensor-fragments.log-expected.json new file mode 100644 index 00000000000..164efb8dc50 --- /dev/null +++ b/packages/cisco_ise/data_stream/log/_dev/test/pipeline/test-pipeline-device-sensor-fragments.log-expected.json @@ -0,0 +1,30 @@ +{ + "expected": [ + { + "cisco_ise": { + "log": { + "category": { + "name": "CISE_Profiler" + }, + "message": { + "id": "0000034521" + }, + "segment": { + "number": 1, + "total": 2 + } + } + }, + "ecs": { + "version": "8.17.0" + }, + "event": { + "original": "CISE_Profiler 0000034521 2 1 cisco-av-pair=cdp-tlv=cdpCacheAddress=192.0.2.10, cisco-av-pair=lldp-tlv=lldpSystemDescription=Cisco IOS Software C3700 Software, cisco-av-pair=cdp-tlv=cdpCacheDeviceId=SAMPLE-AP-0001," + }, + "message": "cisco-av-pair=cdp-tlv=cdpCacheAddress=192.0.2.10, cisco-av-pair=lldp-tlv=lldpSystemDescription=Cisco IOS Software C3700 Software, cisco-av-pair=cdp-tlv=cdpCacheDeviceId=SAMPLE-AP-0001,", + "tags": [ + "preserve_original_event" + ] + } + ] +} diff --git a/packages/cisco_ise/data_stream/log/elasticsearch/ingest_pipeline/default.yml b/packages/cisco_ise/data_stream/log/elasticsearch/ingest_pipeline/default.yml index b9c7692077b..c7b4c92c4db 100644 --- a/packages/cisco_ise/data_stream/log/elasticsearch/ingest_pipeline/default.yml +++ b/packages/cisco_ise/data_stream/log/elasticsearch/ingest_pipeline/default.yml @@ -85,6 +85,10 @@ processors: - date: field: _tmp.timestamp tag: default-tmp-timestamp parsing + description: >- + Avoid processing if _tmp.timestamp is unset, preventing a "field [_tmp] + not present" error on top of the grok_time_details failure. + if: ctx._tmp?.timestamp != null formats: - MMM [ ]d[d] HH:mm:ss[.SSSSSS][.SSS] - ISO8601 @@ -98,7 +102,7 @@ processors: field: error.message value: '{{{ _ingest.on_failure_processor_tag }}}: {{{_ingest.on_failure_message}}}' - date: - if: ctx.event?.timezone != null && ctx.event.timezone != '' + if: ctx._tmp?.timestamp != null && ctx.event?.timezone != null && ctx.event.timezone != '' field: _tmp.timestamp timezone: '{{{event.timezone}}}' tag: default-tmp-timestamp-with timezone parsing diff --git a/packages/cisco_ise/data_stream/log/fields/ecs.yml b/packages/cisco_ise/data_stream/log/fields/ecs.yml index 2f6119eef31..95dbdcb9af0 100644 --- a/packages/cisco_ise/data_stream/log/fields/ecs.yml +++ b/packages/cisco_ise/data_stream/log/fields/ecs.yml @@ -78,6 +78,8 @@ name: destination.user.name - external: ecs name: ecs.version +- external: ecs + name: error.message - external: ecs name: event.category - external: ecs diff --git a/packages/cisco_ise/docs/README.md b/packages/cisco_ise/docs/README.md index 43f0a0cfda5..c592fc31df6 100644 --- a/packages/cisco_ise/docs/README.md +++ b/packages/cisco_ise/docs/README.md @@ -661,6 +661,7 @@ The following table lists the exported fields for this data stream: | destination.user.name | Short name or login of the user. | keyword | | destination.user.name.text | Multi-field of `destination.user.name`. | match_only_text | | 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 | +| error.message | Error message. | match_only_text | | event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | | event.code | Identification code for this event, if one exists. Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. | keyword | | event.created | `event.created` contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from `@timestamp` in that `@timestamp` typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, `@timestamp` should be used. | date | diff --git a/packages/cisco_ise/manifest.yml b/packages/cisco_ise/manifest.yml index 98e05e4ca99..a808f9cc0b3 100644 --- a/packages/cisco_ise/manifest.yml +++ b/packages/cisco_ise/manifest.yml @@ -1,7 +1,7 @@ format_version: "3.0.3" name: cisco_ise title: Cisco ISE -version: "1.32.8" +version: "1.32.9" description: Collect logs from Cisco ISE with Elastic Agent. type: integration categories: