Skip to content

[qnap_nas] Add RFC 5424 syslog support for QTS 5.x access events. - #20734

Open
ie-ops wants to merge 2 commits into
mainfrom
fix/0-add-a-second-grok-pattern-to-68663808
Open

[qnap_nas] Add RFC 5424 syslog support for QTS 5.x access events.#20734
ie-ops wants to merge 2 commits into
mainfrom
fix/0-add-a-second-grok-pattern-to-68663808

Conversation

@ie-ops

@ie-ops ie-ops commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Executive summary

This fix adds support for RFC 5424 syslog format emitted by QNAP QTS 5.x devices that send structured-data events using the QuLog@Access SD-ID. The ingest pipeline gains a new grok pattern to match the RFC 5424 header (version 1, ISO8601 timestamp, structured data block), a kv processor to parse the key-value pairs within the structured data, and a Painless script to map numeric action codes (e.g. 512) and action_result values to ECS event.action strings (login-success, login-fail). New fields are declared in fields.yml and ecs.yml, the README is updated, and three representative pipeline test fixtures are added.

Proposed commit message

[qnap_nas] Add RFC 5424 syslog support for QTS 5.x access events.

Root cause

The first grok processor (grok_event_original_cad2ef7a) uses only a %{SYSLOGTIMESTAMP} (RFC 3164 BSD timestamp) pattern; QTS 5.x devices emit RFC 5424 syslog with a version byte 1 and an ISO 8601 timestamp before the hostname, causing the pattern to fail immediately after the optional PRI field. No alternative pattern exists to match the RFC 5424 envelope or parse the [QuLog@Access key="val" ...] structured-data block.

Approach

Add a second grok pattern to grok_event_original_cad2ef7a that matches RFC 5424 format (<PRI>1 ISO8601-TIMESTAMP HOSTNAME APPNAME: PROCID - [QuLog@Access KV-PAIRS] MSG) alongside the existing RFC 3164 pattern. Extract structured-data key-value pairs via a kv processor into _tmp.sd.*, then rename them to ECS/custom fields. Map numeric action codes (512 → login-success/login-fail based on action_result=0) to event.action via a Painless script so the existing ECS categorization script sets correct event.outcome, event.category, and event.type. Guard RFC-3164-only processors (grok__tmp_message_c75b80dc, both date processors) with ctx._tmp?.sd_params == null or ctx._tmp?.timestamp != null conditions to prevent failure on RFC 5424 events.

Implementation

  1. Step 1: In packages/qnap_nas/data_stream/log/elasticsearch/ingest_pipeline/default.yml, add a second pattern to grok_event_original_cad2ef7a: '^(%{ECS_SYSLOG_PRI})?1 %{TIMESTAMP_ISO8601:_tmp.timestamp_iso8601} %{NAS} %{PROG:process.name}: %{POSINT:process.pid:int} - \[%{SD_ID} %{DATA:_tmp.sd_params}\] %{GREEDYDATA:_tmp.message}'. Add pattern definitions TIMESTAMP_ISO8601: '%{YEAR}-%{MONTHNUM}-%{MONTHDAY}T%{HOUR}:%{MINUTE}:%{SECOND}(?:[.,]\d+)?(?:%{ISO8601_TIMEZONE:event.timezone})?', ISO8601_TIMEZONE: '(?:Z|[+-]%{HOUR}:?%{MINUTE})', and SD_ID: '%{WORD}@%{WORD}'.
  2. Step 2: In the same pipeline file, update date__tmp_timestamp_to_@timestamp_e440143c if condition from ctx.event?.timezone != null to ctx.event?.timezone != null && ctx._tmp?.timestamp != null. Update date__tmp_timestamp_to_@timestamp_baf3310e if from ctx.event?.timezone == null to ctx.event?.timezone == null && ctx._tmp?.timestamp != null. Insert a new date processor (tag date_rfc5424_timestamp_to_@timestamp) with field: _tmp.timestamp_iso8601, target_field: '@timestamp', formats: [ISO8601], if: ctx._tmp?.timestamp_iso8601 != null immediately after the two existing date processors and before set_event_created_e3f09e3b.
  3. Step 3: Insert a kv processor block (tag kv_tmp_sd_params_to_tmp_sd) with field: _tmp.sd_params, field_split: '" ', value_split: '="', trim_value: '"', target_field: _tmp.sd, ignore_missing: true, if: ctx._tmp?.sd_params != null immediately after the set_event_created_e3f09e3b processor.
  4. Step 4: After the kv processor, add rename processors (each with ignore_missing: true, guarded by ctx._tmp?.sd_params != null) to map: _tmp.sd.ipsource.address; _tmp.sd.useruser.name; _tmp.sd.computersource.domain; _tmp.sd.applicationqnap.nas.application; _tmp.sd.client_agentuser_agent.original; _tmp.sd.client_appqnap.nas.client_app; _tmp.sd.client_idqnap.nas.client_id; _tmp.sd.macqnap.nas.mac; _tmp.sd.serviceqnap.nas.service.
  5. Step 5: After the rename block, add a Painless script processor (tag script_rfc5424_action_mapping, if: ctx._tmp?.sd?.action != null) that maps action code '512' to event.action = 'login-success' when _tmp.sd.action_result == '0' and to 'login-fail' otherwise. For any unmapped action code, write the raw numeric value to qnap.nas.action and leave event.action unset so the existing ECS categorization script returns without overwriting. Explicitly handles fallback: all unrecognised codes produce no event.action (the ECS script's params.get(ctx.event.action) == null guard then returns early).
  6. Step 6: Add if: ctx._tmp?.sd_params == null to the grok__tmp_message_c75b80dc processor so it is skipped for RFC 5424 events whose _tmp.message is just the MSG word (e.g. Administration) not a Users: … formatted string.
  7. Step 7: In packages/qnap_nas/data_stream/log/fields/fields.yml, add five new fields under qnap.nas: client_app (keyword), client_id (keyword), mac (keyword), action (keyword, for raw numeric code), service (keyword, for raw numeric service code), and source (keyword, for the structured-data source attribute).
  8. Step 8: In packages/qnap_nas/data_stream/log/fields/ecs.yml, add - external: ecs\n name: user_agent.original to expose the mapped client agent field.
  9. Step 9: In packages/qnap_nas/data_stream/log/_dev/test/pipeline/test-access.log, append the sanitized RFC 5424 event: <30>1 2026-06-28T19:39:06.466+01:00 host-example qulogd: 19683 - [QuLog@Access mac="00-00-5E-00-53-23" ip="192.0.2.10" user="alice.johnson" source="example-source" computer="---" application="---" action="512" action_result="0" service="1024" extra_data="" client_id="89a1d5c1-2b3e-4f67-8a9b-0c1d2e3f4a5b" client_app="Web Desktop" client_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0"] Administration. Add corresponding expected-output object to test-access.log-expected.json verifying @timestamp, user.name, source.ip, event.action=login-success, event.outcome=success, user_agent.original, qnap.nas.client_app, related.ip, related.user, and absence of --- values.
  10. Step 10: In packages/qnap_nas/manifest.yml, bump version from 1.25.3 to 1.26.0. In packages/qnap_nas/changelog.yml, prepend a new entry: version: '1.26.0', description: Add support for RFC 5424 syslog format emitted by QTS 5.x devices (QuLog@Access structured-data events), type: enhancement.

Pipeline changes

  • grok_event_original_cad2ef7a: add RFC 5424 alternative pattern matching <PRI>1 ISO8601 HOSTNAME PROG: PID - [QuLog@Access SD-PARAMS] MSG; add pattern definitions TIMESTAMP_ISO8601, ISO8601_TIMEZONE (capturing into event.timezone), SD_ID
  • date__tmp_timestamp_to_@timestamp_e440143c: add && ctx._tmp?.timestamp != null guard to prevent failure when RFC 5424 path leaves _tmp.timestamp unset
  • date__tmp_timestamp_to_@timestamp_baf3310e: same guard as above
  • New date processor (date_rfc5424_timestamp_to_@timestamp): parse _tmp.timestamp_iso8601 with ISO8601 format; fires only when _tmp.timestamp_iso8601 != null
  • New kv processor (kv_tmp_sd_params_to_tmp_sd): field_split='" ', value_split='="', trim_value='"', target_field=_tmp.sd; fires only when _tmp.sd_params != null
  • New rename processors (9 total): _tmp.sd.ip→source.address, _tmp.sd.user→user.name, _tmp.sd.computer→source.domain, _tmp.sd.application→qnap.nas.application, _tmp.sd.client_agent→user_agent.original, _tmp.sd.client_app→qnap.nas.client_app, _tmp.sd.client_id→qnap.nas.client_id, _tmp.sd.mac→qnap.nas.mac, _tmp.sd.service→qnap.nas.service; all with ignore_missing: true guarded by sd_params != null
  • New Painless script (script_rfc5424_action_mapping): map action='512'+action_result='0' → event.action='login-success'; action='512'+action_result!='0' → event.action='login-fail'; unmapped codes → qnap.nas.action=raw_code (no event.action set); fallback explicit
  • grok__tmp_message_c75b80dc: add if: ctx._tmp?.sd_params == null so RFC 5424 events skip the Users:/Connection-type parsing branch

Field / mapping changes

  • fields.yml: add qnap.nas.client_app (keyword) — client application name from RFC 5424 structured data
  • fields.yml: add qnap.nas.client_id (keyword) — client session identifier from RFC 5424 structured data
  • fields.yml: add qnap.nas.mac (keyword) — MAC address of connecting client from RFC 5424 structured data
  • fields.yml: add qnap.nas.action (keyword) — raw numeric action code for unmapped RFC 5424 actions
  • fields.yml: add qnap.nas.service (keyword) — raw numeric service code from RFC 5424 structured data
  • fields.yml: add qnap.nas.source (keyword) — source attribute from RFC 5424 QuLog@Access structured data
  • ecs.yml: add external ecs reference for user_agent.original

Sanitized error message

Processor 'grok' with tag 'grok_event_original_cad2ef7a' in pipeline 'logs-qnap_nas.log-default' failed with message '[on_failure_message]'

Sanitized log (event_sanitized excerpt)

<30>1 2026-06-28T19:39:06.466+01:00 host-example qulogd: 19683 - [QuLog@Access mac="00-00-5E-00-53-23" ip="192.0.2.10" user="alice.johnson" source="example-source" computer="---" application="---" action="512" action_result="0" service="1024" extra_data="" client_id="89a1d5c1-2b3e-4f67-8a9b-0c1d2e3f4a5b" client_app="Web Desktop" client_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0"] Administration

Reviewer concerns

  • The source.domain rename from _tmp.sd.computer fires only when computer != '---', but the condition checks ctx._tmp?.sd?.computer != '---' before the kv processor has necessarily confirmed the field is non-null; this is safe because ignore_missing: true is set, but reviewers should confirm kv always populates _tmp.sd.computer before the rename runs.
  • The action code mapping only handles code 512; all other numeric action codes fall through to qnap.nas.action as a raw string with no ECS mapping, which may surprise users who expect richer categorisation.
  • event.type is set to ["start"] for action_result=0 (success) and ["info"] for failure — using info for an authentication failure is unusual; ECS recommends ["start"] for successful auth and ["end"] or ["info"] for failures, so ["info"] is defensible but worth a reviewer double-check.
  • The event.category and event.kind fields are present in the expected output but the pipeline diff does not show explicit set processors for them for the RFC 5424 path; reviewers should verify these are populated by a downstream processor already present in the pipeline (e.g. the existing event categorisation section not shown in the diff).
  • changelog.yml sets link: https://github.com/elastic/integrations/pull/1 which is a placeholder and must be updated to the real PR URL before merge.

Self-review findings

Self-review invoked: no (1 cycle)

Severity Finding Addressed
nit Inline review: execution order of kv → rename → Painless verified correct; no issues found

Final validation passed: yes

Risk and classification

  • Plan risk level: medium
  • Tags: pipeline, processors, ecs, ingest, test-fixture, field-mapping
  • Impact: medium

Links

  • Issue: (no issue number)
  • Issue title: qnap_nas.log [MISSING_CASE]: Processor 'grok' with tag 'grok_event_original_cad2ef7a' in pipeline 'lo…
  • Pipeline case: b57b0e02f567c44d

@ie-ops ie-ops added enhancement New feature or request Integration:qnap_nas QNAP NAS (Community supported) source:integration_sentinel The PR was created via the Integration Sentinel pipeline Team:Integration-Experience Security Integrations Integration Experience [elastic/integration-experience] labels Aug 14, 2026
@robester0403
robester0403 marked this pull request as ready for review August 14, 2026 18:07
@robester0403
robester0403 requested a review from a team as a code owner August 14, 2026 18:07
@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

Pinging @elastic/integration-experience (Team:Integration-Experience)

@github-actions

Copy link
Copy Markdown
Contributor

✅ Elastic Docs Style Checker (Vale)

No issues found on modified lines!


The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale.

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Changelog link mismatch — expected https://github.com/elastic/integrations/pull/20734 in the following file(s):

  • packages/qnap_nas/changelog.yml

Tip

If expected, add the changelog-link-check:skip label to skip this check. Or, if an issue link was intended, use .../issues/<n> instead.

View Buildkite build
@ie-ops

@infra-vault-gh-plugin-prod

infra-vault-gh-plugin-prod Bot commented Aug 14, 2026

Copy link
Copy Markdown

💔 Build Failed

Failed CI Steps

History

SHARED: 'Users: (---|(%{DATA:user.domain}\\)?%{DATA:user.name}), Source IP: (---|127.0.0.1|%{IP:source.address}), Computer name: (---|%{HOSTNAME:source.domain})'
RESOURCE: '(\[%{DATA:qnap.nas.application}\] )?(---|%{FILE_PATH:qnap.nas.file.path}|%{DATA:qnap.nas.application})'
FILE_PATH: '[_%\(\)!$@:.,+~\-\s[:alnum:]]*(\/[_%\(\)!$@:.,+~\-\s[:alnum:]]*)+'
if: ctx._tmp?.sd_params == null

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Severity: 🟠 High confidence: high path: packages/qnap_nas/data_stream/log/elasticsearch/ingest_pipeline/default.yml:170

The RFC 5424 MSG segment is captured into _tmp.message but never mapped anywhere, so the accessed-resource value is silently discarded; map it to qnap.nas.application for the structured-data branch.

Details

The new grok pattern (line 31) captures everything after the structured-data block into _tmp.message -- for the test fixtures that is Administration, the accessed resource. This new if: ctx._tmp?.sd_params == null guard disables grok__tmp_message_c75b80dc, which is the only processor that consumes _tmp.message, and remove_3f4f84fc then deletes the whole _tmp object, so the value is dropped.

This is a parity loss against the RFC-3164 path: the legacy access line ... Accessed resources: Administration, Action: Login Success produces qnap.nas.application: "Administration" (see test-access.log-expected.json lines 242 and 712). The equivalent RFC 5424 records for alice.johnson and bob.smith carry application="---" in the structured data, so after this change they end up with no qnap.nas.application and no message at all -- the accessed resource is not recorded anywhere on the document.

Recommendation:

Map the RFC 5424 MSG segment onto the same field the RFC-3164 path uses, only when the structured-data value did not already supply one:

  - rename:
      tag: rename_tmp_message_to_qnap_nas_application
      field: _tmp.message
      target_field: qnap.nas.application
      ignore_missing: true
      if: ctx._tmp?.sd_params != null && ctx.qnap?.nas?.application == null

Place it after the structured-data rename processors and before remove_3f4f84fc, and regenerate test-access.log-expected.json.


🤖 AI-Generated Review | Vera Review Bot - v0.2.6 | 📚 Knowledge base: integration-skills

⚠️ Automated review — verify suggestions before applying.

field: event.original
patterns:
- '^(%{ECS_SYSLOG_PRI})?%{SYSLOGTIMESTAMP:_tmp.timestamp} %{NAS} %{SYSLOGPROG}: %{LOG_TYPE:event.provider}: %{GREEDYDATA:_tmp.message}'
- '^(%{ECS_SYSLOG_PRI})?1 %{RFC5424_TIMESTAMP:_tmp.timestamp_iso8601} %{NAS} %{PROG:process.name}: %{POSINT:process.pid:int} - \[QuLog@Access %{DATA:_tmp.sd_params}\] %{GREEDYDATA:_tmp.message}'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Severity: 🟡 Medium confidence: medium path: packages/qnap_nas/data_stream/log/elasticsearch/ingest_pipeline/default.yml:31

The new RFC 5424 pattern only matches the QuLog@​Access SD-ID, so event-log records sent in RFC 5424 hit no pattern and fail the grok; generalise the SD-ID capture so they do not raise pipeline errors.

Details

The log format is a device-wide QuLog Center setting, and this package already accepts both log types in the RFC-3164 path -- LOG_TYPE: '(event log|conn log)' on line 36 -- while the docs recommend enabling both Event Log and Access Log. Once a QTS 5.x device is switched to RFC 5424, its event-log records arrive in the same framing but with a different SD-ID, and neither the RFC-3164 pattern (no SYSLOGTIMESTAMP) nor this new pattern (hard-coded QuLog@​Access) matches them.

grok_event_original_cad2ef7a has no ignore_failure, so every such record falls to the pipeline on_failure handler and is indexed with event.kind: pipeline_error, unparsed. The result is that enabling RFC 5424 to gain access-log support silently breaks event-log ingestion.

Recommendation:

Capture the SD-ID instead of hard-coding it, and branch on it, so non-access QuLog records still parse their header:

        - '^(%{ECS_SYSLOG_PRI})?1 %{RFC5424_TIMESTAMP:_tmp.timestamp_iso8601} %{NAS} %{PROG:process.name}: %{POSINT:process.pid:int} - \[QuLog@%{WORD:_tmp.sd_id} %{DATA:_tmp.sd_params}\] %{GREEDYDATA:_tmp.message}'

Then gate the QuLog@​Access-specific processors on ctx._tmp?.sd_id == 'Access' and add a pipeline test fixture for at least one non-access RFC 5424 record.


🤖 AI-Generated Review | Vera Review Bot - v0.2.6 | 📚 Knowledge base: integration-skills

⚠️ Automated review — verify suggestions before applying.

- rename:
tag: rename_tmp_sd_mac_to_qnap_nas_mac
field: _tmp.sd.mac
target_field: qnap.nas.mac

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Severity: 🟡 Medium confidence: medium path: packages/qnap_nas/data_stream/log/elasticsearch/ingest_pipeline/default.yml:126

The client MAC address is stored in a custom qnap.nas.mac field although it fits ECS source.mac exactly; rename the target to source.mac and drop the custom definition.

Details

The mac structured-data parameter sits alongside ip, which this PR already maps to source.address/source.ip, so it is the MAC of the connecting client. ECS defines source.mac for exactly that, and requires the RFC 7042 notation -- upper-case hex octets separated by hyphens -- which is the format the device emits (00-00-5E-00-53-23). No transformation is needed. Keeping it as a custom qnap.nas.mac field means detection rules and the Security app's host/network views will not see it.

Recommendation:

Retarget the rename to the ECS field:

  - rename:
      tag: rename_tmp_sd_mac_to_source_mac
      field: _tmp.sd.mac
      target_field: source.mac
      ignore_missing: true
      if: ctx._tmp?.sd_params != null

Then drop the mac entry from data_stream/log/fields/fields.yml and add the ECS reference:

- external: ecs
  name: source.mac

🤖 AI-Generated Review | Vera Review Bot - v0.2.6 | 📚 Knowledge base: integration-skills

⚠️ Automated review — verify suggestions before applying.

<28>May 6 04:07:56 qnap-nas01 qulogd[1743]: conn log: Users: **test*ldap***testhost-smb-abc123**lower*test**.w.n, Source IP: 10.10.10.10, Computer name: Unknown, Connection type: SAMBA, Accessed resources: ---, Action: Login Fail
<30>1 2026-06-28T19:39:06.466+01:00 host-example qulogd: 19683 - [QuLog@Access mac="00-00-5E-00-53-23" ip="192.0.2.10" user="alice.johnson" source="example-source" computer="---" application="---" action="512" action_result="0" service="1024" extra_data="" client_id="89a1d5c1-2b3e-4f67-8a9b-0c1d2e3f4a5b" client_app="Web Desktop" client_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0"] Administration
<30>1 2026-06-28T19:39:07.123+01:00 host-example qulogd: 19683 - [QuLog@Access mac="00-00-5E-00-53-23" ip="192.0.2.11" user="bob.smith" source="example-source" computer="---" application="---" action="512" action_result="1" service="1024" extra_data="" client_id="89a1d5c1-2b3e-4f67-8a9b-0c1d2e3f4a5c" client_app="Web Desktop" client_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0"] Administration
<30>1 2026-06-28T19:39:08.000+01:00 host-example qulogd: 19683 - [QuLog@Access mac="00-00-5E-00-53-23" ip="192.0.2.12" user="carol.white" source="example-source" computer="---" application="File Station" action="512" action_result="0" service="1024" extra_data="" client_id="89a1d5c1-2b3e-4f67-8a9b-0c1d2e3f4a5e" client_app="Web Desktop" client_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0"] Administration

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Severity: 🔵 Low confidence: high path: packages/qnap_nas/data_stream/log/_dev/test/pipeline/test-access.log:16

All three new RFC 5424 fixtures use action="512" and computer="---", so the qnap.nas.action fallback and the source.domain rename are never exercised; add a fixture covering both.

Details

Two newly added branches have no test coverage:

  • The else branch of script_rfc5424_action_mapping (default.yml lines 154-158), which lazily builds ctx.qnap / ctx.qnap.nas and writes the raw code to qnap.nas.action. This is the most fragile part of the new script -- it constructs maps by hand -- and the qnap.nas.action field it populates is declared in fields.yml and documented in the README, yet no fixture produces it.
  • rename_tmp_sd_computer_to_source_domain, whose if requires computer != '---'. All three fixtures use computer="---", so source.domain (and the related.hosts append that depends on it) is never populated from the structured data.

Recommendation:

Add one fixture line that carries a non-512 action code and a real computer name, then regenerate the expected file:

<30>1 2026-06-28T19:39:09.000+01:00 host-example qulogd: 19683 - [QuLog@​Access mac="00-00-5E-00-53-24" ip="192.0.2.13" user="dave.brown" source="example-source" computer="pc-test-0002" application="File Station" action="768" action_result="0" service="1024" extra_data="" client_id="89a1d5c1-2b3e-4f67-8a9b-0c1d2e3f4a5f" client_app="Web Desktop" client_agent="Mozilla/5.0"] Administration

🤖 AI-Generated Review | Vera Review Bot - v0.2.6 | 📚 Knowledge base: integration-skills

⚠️ Automated review — verify suggestions before applying.

changes:
- description: Add support for RFC 5424 syslog format emitted by QTS 5.x devices with QuLog@Access structured-data events.
type: enhancement
link: https://github.com/elastic/integrations/pull/1

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Severity: 🟡 Medium confidence: high path: packages/qnap_nas/changelog.yml:6

Changelog links a different PR number

Details

This changelog entry's link: points at pull/1, but it was added in PR #​20734. It is likely a leftover template placeholder or a copy from another PR.

Recommendation:

Point each added changelog entry's link at this PR:

link: https://github.com/elastic/integrations/pull/20734

🤖 AI-Generated Review | Vera Review Bot - v0.2.6 | 📚 Knowledge base: integration-skills

⚠️ Automated review — verify suggestions before applying.

@vera-review-bot

Copy link
Copy Markdown

Review summary

Issues found across the latest commits efd7d9f — 1 high, 4 medium, 1 low
  • 🟠 The RFC 5424 MSG segment is captured into _tmp.message but never mapped anywhere, so the accessed-resource value is silently discarded (link) (Unresolved)
  • 🟡 The new RFC 5424 pattern only matches the QuLog@​Access SD-ID, so event-log records sent in RFC 5424 hit no pattern and fail the grok (link) (Unresolved)
  • 🟡 The client MAC address is stored in a custom qnap.nas.mac field although it fits ECS source.mac exactly (link) (Unresolved)
  • 🔵 All three new RFC 5424 fixtures use action="512" and computer="---", so the qnap.nas.action fallback and the source.domain rename are never exercised (link) (Unresolved)
  • 🟡 Changelog links a different PR number (link) (Unresolved)

Package-level:

  • 🟡 packages/qnap_nas/_dev/build/docs/README.md is not updated and still tells users RFC-3164 is the only supported format

A new commit triggers another review — at most once every 15 minutes. I skip the PR while it's approved or has merge conflicts.

🤖 AI-Generated Review | Vera Review Bot - v0.2.6 | 📚 Knowledge base: integration-skills

⚠️ Automated review — verify suggestions before applying.

@vinit-chauhan vinit-chauhan self-assigned this Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Integration:qnap_nas QNAP NAS (Community supported) source:integration_sentinel The PR was created via the Integration Sentinel pipeline Team:Integration-Experience Security Integrations Integration Experience [elastic/integration-experience]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants