- Notifications
You must be signed in to change notification settings - Fork 513
[New Integration] ProxySG #10459
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
[New Integration] ProxySG #10459
Conversation
🚀 Benchmarks reportTo see the full report comment with |
| This PR (currently) only supports the default |
packages/proxysg/data_stream/log/elasticsearch/ingest_pipeline/default.yml Show resolved Hide resolved
packages/proxysg/data_stream/log/elasticsearch/ingest_pipeline/cloud.yml Outdated Show resolved Hide resolved
packages/proxysg/data_stream/log/elasticsearch/ingest_pipeline/default.yml Show resolved Hide resolved
| type: long | ||
| ignore_missing: true | ||
| | ||
| # ECS mappings |
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.
Seems like there are more ECS mappings we can add, particularly with client_to_server
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've more ECS mappings, specifically some more for client_to_server fields.
| Pinging @elastic/sec-deployment-and-devices (Team:Security-Deployment and Devices) |
taylor-swanson 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.
I just realized that there's a screenshot of the dashboard, but there's no dashboard included in this PR. Are you planning on adding one in this PR or a follow-up PR?
packages/proxysg/data_stream/log/_dev/test/pipeline/test-proxy-main.log-expected.json Outdated Show resolved Hide resolved
I've added a dashboard now |
| I'm stilling seeing a lot of missed fields for ECS (working on compiling a list). A bigger issue is that it appears the dashboard isn't working. I loaded the dashboard on my local stack and saw these errors. Dashboards should be standalone, any and all resources must be included with the integration. Likewise, all visualizations should be built using Lens, which as far as I know should be entirely self-contained. |
taylor-swanson 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.
Remaining tasks/questions/comments:
-
proxysg.time_taken->event.duration(ensure value is converted to nanoseconds) -
proxysg.server_to_client.status->http.response.status_code(if this is actually a proxy status, then we probably don't want to copy it to the ECS field. That's what I did for Squid) -
proxysg.client_to_server.method->http.request.method -
proxysg.client_to_server.host->url.domain -
client.user.id->client.user.name(since the value is a short name,.nameis a better fit) - Copy IPs to
related.ip(i.e.,source.ip,destination.ip, IPs in vendor fields, etc) - Copy hosts to
related.hosts(i.e.,url.domain, ideally the referrer host as well, but it's contained within a url) - Copy user name to
related.user - Run
registered_domainprocessor againsturl.domain - Run
user_agentprocessor againstuser_agent.original - Run
geoipagainstsource.ipanddestination.ip
Regarding the timestamp, I don't see any information on time zone. What is the time supposed to represent here? Is it the local time of the proxy, is it UTC, etc? If it's the local time, then we need to be able to provide a time zone configuration for the user. If we need the local time zone, we can add the add_locale processor to the agent configuration, but note that this the local time zone of the agent, not necessarily the time zone of the proxy itself (this is why we provide the time zone configuration option as well).
Additionally, I usually remove entries that are -, since these indicate empty values. This isn't critical and doesn't need to be done as part of this change. It's a bit more difficult to do as the values extracted from the message are put into a tree structure instead of a flat structure. For squid, I had extracted all values to a flat structure and then used a small script to remove any values that were -.
Convert more fields to ECS, add geolocation and field parsers
| @taylor-swanson thanks, I've made all the suggestions now, except for removing '-'. I agree it's better to remove those though, I'll try to remove them later. For the timezone, the time from proxysg is defined to always be GMT in the source logs, so I don't think it needs any other conversion. I don't know what was wrong with the dashboard, but I completely rebuilt it, and verified that it works in a separate cluster, so I think it should be ok now. |
|
💚 Build Succeeded
History
|
No worries, I have no issues with following up with that later.
Sounds good. Unix timestamps also follow a similar pattern and don't need extra processing. |
taylor-swanson 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.
LGTM!
| Package proxysg - 0.1.0 containing this change is available at https://epr.elastic.co/search?package=proxysg |
Add Integration for Broadcom ProxySG, with initial support for `main` log format
Add Integration for Broadcom ProxySG, with initial support for `main` log format





Proposed commit message
Checklist
changelog.ymlfile.Related issues