-
Notifications
You must be signed in to change notification settings - Fork 519
[qualys_gav] Initial release of the Qualys GAV #14644
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🚀 Benchmarks reportTo see the full report comment with |
packages/qualys_gav/data_stream/asset/elasticsearch/ilm/default_policy.json
Show resolved
Hide resolved
| "lastVMScan": 0, | ||
| "lastComplianceScan": 0, | ||
| "lastFullScan": 0, | ||
| "lastVmScanDateScanner": 0, | ||
| "lastVmScanDateAgent": 0, | ||
| "lastPcScanDateScanner": 0, | ||
| "lastPcScanDateAgent": 0, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are likely not epoch(0) (1970-01-01T00:00:00.000Z), but rather absent data, so the date processors should probably test for 0 and not retain as a timestamp if they are. Do qualys document this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No we do not have Documentation For Fields by Qualys GAV, although we agree with your point that 0 indicated the absence of data.
So should we process to remove the field?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, please.
| // Parse times into long | ||
| long lastBootMillis = parseTime(lastBootStr); | ||
| long createdDateMillis = parseTime(createdDateStr); | ||
|
|
||
| // Early exit | ||
| if(lastBootMillis < createdDateMillis) { | ||
| return; | ||
| } | ||
|
|
||
| // Calculate uptime | ||
| long uptimeMillis = lastBootMillis - createdDateMillis; | ||
| long uptimeSeconds = uptimeMillis / 1000; | ||
|
|
||
| // Set uptime | ||
| ctx.host = ctx.host ?: [:]; | ||
| ctx.host.uptime = uptimeSeconds; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused by all of this.
- what is the meaning of the
created_datefield? - what relationship does the creation date have with the uptime? surely uptime is
now - last_boot_time? - what is the meaning of the invariant assertion with the
// Early exitcomment? what does it mean if it fails?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
created_daterefers to the creation time of the asset.- We're currently mapping
host.uptimeaslast_boot_time - created_date. - The
// Early exitcondition handles a corner case wherelast_boot_time < created_date, which would result in a negative uptime. In such cases, not to sethost.uptime.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're currently mapping host.uptime as
last_boot_time - created_date.
Why? This does not seem sensible. If I create an asset a year ago, maybe booting it at that time, maybe not, and then shut it down until today. This would give me an uptime of a year. This is obviously not correct.
The
// Early exitcondition handles a corner case wherelast_boot_time < created_date, which would result in a negative uptime. In such cases, not to sethost.uptime.
This "corner case" is an indication that the invariant is not correctly assumed, as indicated in my insane case above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure we will remove host.uptime mapping.
packages/qualys_gav/data_stream/asset/elasticsearch/ingest_pipeline/default.yml
Show resolved
Hide resolved
packages/qualys_gav/data_stream/asset/elasticsearch/ingest_pipeline/default.yml
Outdated
Show resolved
Hide resolved
packages/qualys_gav/data_stream/asset/elasticsearch/ingest_pipeline/default.yml
Outdated
Show resolved
Hide resolved
|
@janvi-elastic, I've merged the PR and backported it to 9.1,9.0,8.19. 8.18 is still having some backport failures. |
|
@janvi-elastic, @efd6, the ILM permissions for kibana_system is now updated in ES for 8.18 and above, so all good from my end on this. We can go ahead with the approval if all else looks good. |
So do we need to update the version or we can go ahead with 8.18? |
packages/qualys_gav/data_stream/asset/elasticsearch/ingest_pipeline/default.yml
Outdated
Show resolved
Hide resolved
packages/qualys_gav/data_stream/asset/elasticsearch/ingest_pipeline/default.yml
Outdated
Show resolved
Hide resolved
@janvi-elastic, 8.18 is merged now so no need to update |
efd6
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. Please wait for @ShourieG.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated review status due to version constraints
💚 Build Succeeded
History
|
|
|
Package qualys_gav - 0.1.0 containing this change is available at https://epr.elastic.co/package/qualys_gav/0.1.0/ |
The initial release includes asset data stream, associated dashboards and visualizations. Qualys GAV fields are mapped to their corresponding ECS fields where possible. Test samples were derived from documentation and live data samples, which were subsequently sanitized.
The initial release includes asset data stream, associated dashboards and visualizations. Qualys GAV fields are mapped to their corresponding ECS fields where possible. Test samples were derived from documentation and live data samples, which were subsequently sanitized.




Proposed commit message
Checklist
changelog.ymlfile.How to test this PR locally
Related issues
Screenshot