-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
[Agent] Enable logging introspection of a specific beat #14437
Comments
Original comment by @michalpristas: we need to bring this issue up to date. open questions:
cc @ph |
Original comment by @ph: I think we have three somewhat related instrospection mechanism for a beat.
For 1, I think it it will automatic. For 2 and 3, I think they should be an actual configuration. When Agent is run in standalone, we expect the users to turn on that option and points the logs and metrics to the appropriate place. Note it could be different clusters. When Agent is run with Fleet, Fleet should provide that monitoring information and it will be configuration per configuration.
For the two above point, I think we should only have a single sidecar type per runnings Agent instance, where type is Metricbeat and Filebeat in this case. Meaning yes we should merge that configuration. Now, with that in mind, the HOW to monitor the process should be defined in the program specs. We will need to define the options that will be added to the agent.yml. |
Original comment by @michalpristas: thanks @ph |
Original comment by @urso: @elastic/stack-monitoring I guess the stack monitoring team might want to chime in here. There is still the question about a minified Beat focusing on stack monitoring. Would it make sense to use this one? Will our current solution on collecting logs/metrics be temporary? |
Original comment by @ycombinator: Just to provide a bit of background on what Stack Monitoring is currently thinking of doing (this is far from set in stone, it's more of a proposal that's gathering some momentum at this point): We're imagining that every monitorable stack product (Elasticsearch, Kibana, Logstash, the various Beats, and APM Server) will bundle within it's own package a lightweight Metricbeat and possibly Filebeat as well. The product instance will be responsible for configuring and managing the runtime lifecycle of the bundled Metricbeat/Filebeat. In the context of the Fleet project, what I believe this would mean is that the Agent would start the Beats it needs to per user-provided configuration. Those Beats would then start their bundled lightweight Metricbeat/Filebeat instances if so configured. As @ph mentioned above, that configuration might get injected either by the user (if Agent is running standalone) or from Fleet (if the Agent is working with the Fleet UI). Personally, I don't think we (Stack Monitoring and Fleet projects) need to block each other on progress here. The good news is that the monitoring bits are more of an implementation detail so if we decide to go one way now and then change it later, the user shouldn't be affected. Concretely, what I mean is that I imagine there will be some configuration settings in the Agent related to monitoring of the Beats processes being managed by that Agent. Whether the Agent then chooses to apply this configuration to a) sidecar Metricbeat and Filebeat processes, or b) pass it down to the Beats processes for further configuring their bundled Metricbeat or Filebeat processes, or c) something else, it's all hidden away from the user. Thoughts? |
Original comment by @ph: @michalpristas One thing we didn't discuss is logging when the agent is run in standalone, where are we sending logs in that specific scenario? I think the following are the current options.
Option 2 seems like a way to really mess up the event logs / ordering and would probably make things really hard to follow. Option 1 and Option 3 seems what we should do, WDYT? |
Original comment by @michalpristas: Update after last sync:
|
Original comment by @ph:
We need to also setup the rotation strategy when we start it up. |
Original comment by @michalpristas: we were discussing right place for sockets/pipes to live (the one using which beat exposes stats to metricbeat) we agreed that for linux it is most likely i need to check the correct place for these in windows cc @ph |
Original comment by @ph: Looking at the FHS (FileSystem hierachy standards) at LINK REDACTED
Not sure about named pipe under windows, since I've never worked with them. |
Original comment by @ph: @michalpristas I just had a quick chat with @graphaelli concerning UNIX socket and APM-Server, there is one big configuration option that differentiates beats from APM-Server, is the process is not run as root. So we will make sure when we start the process the beats can create the UNIX socket on the filesystem and the agent can read it correctly. With that in mind, we might want to take a closer looks at the windows implementation and see what are the requirements for a named pipe. WDYT? |
Original comment by @michalpristas: my thought was to create a socket with and set an owner to that socket to the same user/group as the one running the beat. so in this case beat should be able to manage it correctly. windows is a one big question and i will need to get into them, as I as well have no experiences with running named pipes |
Original comment by @michalpristas:
When commanded from UI agent should enable real-time logging for a specific beat
As stated in LINK REDACTED this can be achieved in multiple ways:
-we have a filebeat subprocess that supervisor starts to watch the logs of the other beats.
The text was updated successfully, but these errors were encountered: