Security Onion endpoint visibility with Elastic Agent: what it covers
Zeek and Suricata show what crossed the network, but not which process ran, which account logged on or which file changed on the host. Elastic Agent, enrolled through Elastic Fleet in Security Onion, is the supported method for sending endpoint logs into the platform. Security Onion is source-available under the Elastic License 2.0, which is not an OSI-approved open-source license, so have your legal team review the license terms before you redistribute or embed the platform. This page describes the integration at a high level, the Windows, Linux and macOS scope you need to confirm in current documentation, and the decisions that follow: prerequisites, sequence, field mapping, security, testing and failure points.
Coverage depends on three things: the Elastic Agent integrations available for each operating system, the Fleet policy assigned to each host, and the data streams that policy writes to Elasticsearch. Confirm the supported Windows, Linux and macOS versions and the integration list in the current Security Onion documentation for your release. Support differs between the 2.4 and 3.x lines, and Security Onion 3.0.0 supports only Oracle Linux 9 for the platform itself. Also confirm whether Osquery live queries are available through the policy you plan to use, since that capability depends on how the policy is built, and whether any host class needs its own policy.
Host logs do not correlate themselves with Zeek and Suricata records. Correlation depends on fields that both sources share, usually host name, IP address and timestamps, and on clocks that agree across endpoints and sensors. Decide early which identifiers will serve as the join key, because hosts with dynamic addresses, duplicate names or unsynchronized clocks produce partial or misleading timelines. Endpoint logs also do not replace network detections. An agent records what the operating system logged at the level configured on that host, so a quiet endpoint may reflect logging settings or an absence of activity, and the log alone cannot tell you which. Test with a known event before you rely on the timeline.
The platform architecture determines how endpoint data reaches storage. In a Distributed deployment with a manager node, one or more sensor nodes and one or more search nodes, the manager coordinates Fleet enrollment and policy. The architecture documentation notes that if the manager goes down, search nodes stop indexing because they cannot reach Redis. Endpoint events arriving during that outage depend on how long agents buffer locally, which you should confirm for your agent version. Receiver nodes add pipeline redundancy and load balancing, so decide before the first fleet rollout whether your expected endpoint volume justifies them.
What you need before enrolling the first endpoint
The items below must be settled before the first Elastic Agent enrolls: the Security Onion release and operating system, the hardware for each node role, the network path to Fleet, administrator access to the Console, the certificate and credential plan, and the endpoint inventory. Each card names a decision or check to close before a pilot group starts.
Security Onion version and OS
Security Onion 3.x installs only on Oracle Linux 9. The 3.0.0 release, published March 31, 2026, replaced Stenographer with Suricata for full packet capture. If your estate runs 2.3 or 2.4, check the lifecycle first: 2.3 reached end of life on April 6, 2024, and 2.4 reaches end of life on October 1, 2026. A 2.4 installation on Oracle Linux 9 can upgrade to 3, while other distributions need a fresh install. Agree that path before you enroll anything.
x86-64 hardware and node sizes
Security Onion supports only x86-64 processors. The documented minimums are 4 cores, 24 GB RAM, 200 GB storage and 2 NICs for a standalone node, 4 cores and 16 GB RAM for a manager or search node, and 4 cores, 12 GB RAM and 2 NICs for a sensor. These are floors, not sizing for your endpoint count. Confirm storage and node count against the endpoint volume and retention you plan before procurement.
Fleet network path to manager
Enrolled Elastic Agents must reach Fleet on the manager, so map the path from each endpoint segment to the manager before the first install. List the firewall rules, proxies and any NAT between those hosts. Confirm the required ports and traffic direction for your release in the Security Onion documentation. Test one endpoint in each segment before you expand the rollout.
Console administrator access
Fleet policies and enrollment changes are managed in the Security Onion Console, so administrator accounts must exist before the first endpoint enrolls. Name who creates policies, who approves changes and who reviews enrollment issues. Confirm how accounts are provisioned on your version. If your identity provider must govern Console access, note that Security Onion Pro adds OIDC single sign-on.
Certificates and enrollment credentials
Decide how agents trust the manager and how they authenticate during enrollment. Assign who issues and rotates the certificates, where enrollment credentials are stored, and how they are revoked when a host is retired. Keep credentials out of shared scripts, golden images and tickets. Confirm the certificate and enrollment method in the documentation for your release before you build any deployment package.
Endpoint operating system inventory
Build an inventory of Windows, Linux and macOS endpoints with exact OS versions, build numbers, architecture and owner. Compare each entry against the Elastic Agent support matrix for the agent version you plan to deploy, because support changes between releases. Flag unsupported or end-of-life systems for upgrade, exclusion or a separate plan. Keep the inventory current so each rollout wave can be checked against it.
How Fleet, Elastic Agent and Osquery fit into the Security Onion stack
Security Onion bundles several components into one platform: the Security Onion Console, Elasticsearch, Suricata, Zeek and Elastic Fleet agents. Of these, Fleet is the control point for endpoint visibility. It is where agent policies are created, edited and assigned to enrolled agents, and it is the place to check whether an endpoint is healthy and running the policy you intended. Before you deploy anything to a Windows, Linux or macOS host, confirm that you understand this split: the network sensors watch traffic, while Fleet governs what runs on the endpoints themselves.
Elastic Agent is the software installed on each endpoint. Its job in this stack is to collect host logs and ship them to the Security Onion search infrastructure, where they are indexed next to the Zeek and Suricata records. The agent does not make detection decisions on its own. It follows the policy it was given, which lists the data sources and integrations to enable. Ask your Security Onion deployment team to confirm which integrations are supported on each operating system you plan to cover, because coverage differs by platform and by release, and the documentation for your installed version is the authority.
Osquery live queries are the interactive query capability that Fleet can run against enrolled endpoints. An analyst can ask a question of a host, such as which processes are listening on a port or which users are logged in, and receive an answer without waiting for logs to arrive. Whether Osquery is available, and which platforms it covers in your version, should be confirmed for each operating system in your estate. Treat live queries as an investigation aid. They do not replace continuous log collection, and their results depend on the endpoint being online and enrolled at the time of the query.
Policies are assigned to groups of endpoints rather than to individual machines, so one policy change can affect every host in a group. When an administrator edits a policy, the change does not reach agents instantly. It is delivered when each agent checks in with Fleet, which means different hosts may run the old and new settings for a period. This has practical consequences. A broken integration in a shared policy can stop log collection across many systems at once, and an overly broad group can send unwanted data to the search nodes.
Plan policy ownership before rollout. Decide who may create and edit policies, who approves changes to shared groups, how Windows, Linux and macOS hosts are separated into groups, and how a rollback would be applied and verified. Record the owner of each group and the process for testing a change on a small set of hosts first. Teams that settle these questions early tend to find that Fleet becomes a predictable control point rather than a source of surprise changes during an incident.
How to deploy Elastic Agent from Security Onion, step by step
This sequence moves endpoint telemetry from a planned Fleet setup to a monitored estate in controlled stages. Each step closes with a check, so a problem found on a pilot group does not reach every host. Confirm exact menu names and commands in the Security Onion and Elastic documentation for your installed version before you begin.
Confirm node roles and Fleet reachability
Identify which node in your deployment hosts Fleet, and confirm the manager, search and sensor roles in your design. Test that endpoints on each network segment can reach Fleet on the address, port and certificate path your version uses. The architecture documentation notes that search nodes stop indexing when they cannot reach the manager, so treat manager health as a precondition. Check: a test endpoint on each segment opens a successful connection to Fleet.
Create one Fleet policy per class
Group endpoints by role and risk, such as workstations, Windows servers, Linux servers and macOS laptops, then create one Fleet policy for each class. Set the integrations and data collection each class needs, and leave Osquery off until step six. Have the team that owns host logging review the policy list, because a change to a policy applies to every agent enrolled under it. Check: every class has a saved policy and a named owner.
Generate the enrollment method
Create the enrollment token or method for each policy, following the process the current Security Onion and Elastic Fleet documentation describes for your installed version. Scope each token to a single policy so pilot hosts cannot enroll under a broader one. Store tokens in your secrets management system, and confirm expiry and rotation behavior in the docs. Check: each token lists under the correct policy, and a test enrollment from one host succeeds.
Deploy to a pilot group per OS
Select a small pilot group on Windows, Linux and macOS, using hosts your team can access and restore quickly. Install the Elastic Agent on each host with the installer for its operating system, using the steps in the docs for your version, and enroll it with the token for its policy. Pilot size is your decision, based on how many hosts your operations team can watch closely. Check: each pilot host appears in Fleet under the expected policy with no error status.
Verify health and events in the index
In Fleet, confirm that each pilot agent reports a healthy status, a recent check-in time and the integrations set in its policy. Then search the index the policy writes to and confirm that events from each pilot host carry the correct host name, operating system fields and timestamps. Confirm index and data stream naming in the Elastic documentation for your version. Check: events from every pilot host arrive in the expected index. If they do not, fix the cause before expanding.
Enable Osquery only where required
Turn on the Osquery integration only in policies whose hosts need live queries for investigation or inventory. Osquery adds data and query activity on each host, so leave it out of classes that do not need it. Confirm the Osquery settings, the live query workflow and which roles can run queries in the current docs. Check: a test live query returns a result from one pilot host, and only the policies you intended report Osquery data.
Expand to full groups in waves
Move from the pilot to the remaining hosts one group at a time, starting with the class that has the lowest operational impact. Before each wave, repeat the health and index checks from the verification step. Watch for enrollment failures, missing events and resource pressure on endpoints and on the Security Onion nodes that receive their data. Pause a wave when a check fails. Check: every host in the wave appears healthy in Fleet, its events reach the expected index, and the enrolled host count matches your asset list.
Which host data lines up with Zeek and Suricata records
This table maps each category of host data collected by Elastic Agent to its closest Zeek or Suricata counterpart and the investigation question it helps answer. Use it to decide which fields to pivot on when a host event and a network event need to be read together. The main takeaway is that the two sources rarely share identical fields, so the join depends on time accuracy and on the exact names in your installed version.
| Host data category | Closest network counterpart and question answered | What to confirm in the installed version |
|---|---|---|
| Host identity | Zeek connection and asset records tie a sensor view to a host address. Question: which machine produced this traffic? | Confirm which host name, address and agent identifier fields are populated in the index mappings and whether they match Zeek's address fields. |
| Time | Zeek and Suricata timestamps mark when flows and alerts were seen. Question: did the host event happen before or after the network event? | Confirm the timestamp source for each dataset and that NTP or equivalent time synchronization is working on sensors and endpoints before correlating. |
| Logged-on user | Zeek authentication-related logs, where enabled, and Suricata alerts on account traffic. Question: which account was active when the connection started? | Confirm whether user fields are captured on endpoints and which Zeek protocol logs are enabled on your sensors in this deployment. |
| Process activity | Zeek connection records and Suricata alerts for the same flow. Question: which process opened the connection that triggered this alert? | Confirm the process name and process identifier field names, and whether network events carry any process context at all. |
| Network connections from the host | Zeek connection logs and Suricata alerts seen on the sensor. Question: did the host talk to the destination, and how much data moved? | Confirm source and destination field names, protocol fields and whether the sensor sees the traffic (for example, not only traffic crossing a span or tap). |
| File or registry events, where collected | Zeek file analysis records and Suricata file-related alerts. Question: did a file transfer on the wire match a file written or changed on the host? | Confirm which file or registry events the agent policy collects, and whether file hashes are present on the network side for matching. |
Correlating host logs with Zeek and Suricata during an investigation
Correlation between host telemetry and network records only works when three things line up: clocks, host names and IP-to-host records. Get those right before the first incident, because during an investigation there is rarely time to discover that a workstation's address changed last week or that one log source records times in local time while another uses UTC. The section below walks through an illustrative investigation to show where each dependency matters.
Illustrative investigation. An analyst opens a Suricata alert in the Security Onion Console for an outbound connection from an internal address to an external host on an uncommon port. The alert carries a source IP, destination IP, port, timestamp and rule identifier. The first pivot is from that source IP to the host that held the address at the alert time. That lookup depends on DHCP lease history, static address records or the asset inventory in your environment, not on the alert alone. Record which source you used so the finding can be reproduced.
Next, the analyst checks Zeek connection records (conn logs) for the same source and destination within a window around the alert. Zeek shows whether the session was short or long lived, how many bytes moved and whether earlier connections to the same destination existed. On the host side, the analyst reviews process activity from Elastic Agent data for the same window, looking for the process that owned a socket to that destination. Because the Elastic Agent data and Zeek data come from different collectors, the join is only as reliable as the timestamps on both sides. Confirm the time zone and clock source on each sensor, manager and endpoint before trusting an offset of a few seconds.
Name consistency is the second dependency. Endpoints enrolled in Fleet should report a host name that matches the name your asset records and DNS use, or the analyst will need a manual mapping table during the case. Decide which identifier is canonical (host name, device identifier or a managed asset ID) and document how DHCP-assigned addresses map to it. Review that mapping at a set interval, since stale records are a common cause of attributing activity to the wrong machine.
Finally, treat Security Onion Console detections as part of the same evidence set. NIDS rules managed in the Detections interface are loaded into Suricata and can be modified, suppressed or threshold-tuned, so a quiet alert may reflect a suppression someone added months earlier. Confirm which rule version fired, who last changed it and whether the analyst workflow includes checking the detection's tuning history before drawing conclusions from host data. Agree on this review step in the runbook and test it with a tabletop exercise before you rely on it.
Hardening Fleet enrollment, policies and agent access
Fleet defines which policies, integrations and Osquery permissions reach each endpoint, and enrollment credentials decide which agents can join. The cards below cover the access decisions to make before enrollment opens: who holds policy authority, who can run live queries, how the manager channel is protected, and how credentials are rotated and retired.
Restrict policy and enrollment changes
Fleet policies decide which integrations and inputs reach each endpoint, and enrollment credentials let a new agent join. Limit create and edit rights on both to a small, named group, and record who holds them. Before enrolling production hosts, review the Fleet role assignments in your Console and confirm the exact permission names in the Fleet documentation for your version.
Separate policy authors from analysts
Policy authors change what runs on endpoints, while analysts consume the resulting data in Security Onion. Keep these as separate roles so that an analyst investigating an alert cannot alter the policy that collects its evidence. Map each role to a documented owner, and confirm in your version which Fleet and Console permissions can be granted independently.
Scope Osquery query rights
Osquery live queries let a user run SQL against endpoints on demand. This is useful during an investigation and sensitive wherever hosts hold personal or regulated data. Grant query rights only to the analyst roles that need them, and decide whether those roles can query all hosts or only defined groups. Test a query's scope in a lab before granting access to production.
Protect the manager-to-endpoint channel
Agents report to Fleet through the manager, and the certificates used for that channel establish trust between each endpoint and the server. Follow the certificate approach that the current Security Onion and Elastic Agent documentation describes, and confirm how certificates are issued, stored and renewed for your version. Record who can reissue them, because a compromised certificate path affects every enrolled host.
Check Pro access features by edition
Security Onion Pro adds OIDC single sign-on to the Console, so Console access can be tied to your identity provider. The Pro listing also includes LUKS data-at-rest encryption, FIPS mode and OS STIG compliance. Confirm whether your edition and version include each feature, how group claims map to Console roles, and whether each one applies to the Fleet paths you plan to use.
Rotate credentials and retire endpoints
Enrollment credentials and agent keys need a rotation schedule and a named owner. Each endpoint also needs a defined retirement step when it leaves the fleet. Document how a host is unenrolled, how its policy assignment is removed, and how its stored data is handled under your retention rules. Confirm the rotation and decommissioning steps in the current Fleet documentation, and test them on a lab host first.
How to verify endpoint coverage before you call the rollout done
Do not call an Elastic Agent rollout finished when agents appear as installed. Finish it when a defined set of checks passes on every pilot endpoint and the results are written down. These checks confirm that Fleet, the agents, the policy and the Security Onion pipeline are all doing their part. Set the pass criteria yourself before the pilot starts. Vendor defaults and example thresholds are a starting point, not an acceptance standard for your environment.
Start in Fleet. Every pilot endpoint should show as healthy, with its agent enrolled in the intended agent policy and its check-in current. Then confirm the expected event types for each operating system. Windows, Linux and macOS hosts produce different data streams, and an agent can report as healthy while a data stream is silent because an integration is disabled or a log path is wrong. Write the expected data streams for each operating system in your coverage list and compare them against what reaches the Security Onion Console for each host.
Next, prove end to end delivery. Generate a known test event on each host, such as a logon, a process start or a file creation made under a test account, and search for it in the Security Onion Console within a window you state in advance. Record the time the event was generated, the time it appeared, and whether it matched the host name and fields you expected. Then check correlation: pick a Zeek or Suricata record for a connection involving the test host and confirm the host log and the network record can be linked by the same address, time and identity fields. If that link fails, your investigation workflow has a gap even when ingestion succeeds.
Also test the control path. Make a small, reversible change to an agent policy, such as adding a data stream or changing a collection setting, and confirm that the change reaches the agents on the pilot hosts within your stated window. Revert it and confirm again. This shows that policy management works before you depend on it during an incident. The coverage list should be a documented table per endpoint class, such as domain controllers, servers, workstations and macOS laptops, showing the expected agents, data streams, test results and owners.
Repeat these checks after Security Onion upgrades, Elastic Agent version changes and any policy edit that touches collection. Upgrades can change field names, data stream behavior or parsing, so a passing check from last month is not evidence for today. Ask the vendor and your own change records to confirm what changes in each release, and rerun the tests that cover those areas. Keep the retest results with the change record so auditors and responders can see when coverage was last verified.
Why endpoints stop reporting to Security Onion
This table lists the most common reasons endpoints stop sending data to Security Onion, the likely cause of each, and the first check to run. Work through the symptoms in order, since agent health and policy problems are usually quicker to rule out before you resize nodes. Confirm each fix against the documentation for your Security Onion version before you change production settings.
| Symptom | Likely cause | First check and fix |
|---|---|---|
| Agent shows enrolled but unhealthy in Fleet | The path from the endpoint to the Fleet server on the manager is blocked | Test connectivity from the endpoint to the manager. Confirm the required paths and ports for your version in the Security Onion architecture docs. |
| Agent checks in but no events arrive | The agent policy lacks the intended integration or data stream | Open the agent policy in Fleet and confirm the integration is added and enabled. Check the agent logs for policy apply errors. |
| Host events do not line up with Zeek or Suricata records | Clock skew between the endpoint and Security Onion nodes | Compare time sources on the endpoint and the Security Onion nodes. Confirm your time synchronization setup against the Security Onion documentation. |
| Search nodes stop indexing while the manager is down | Search nodes cannot reach Redis when the manager is unavailable | Check manager health first. The architecture docs say search nodes stop indexing in this state, so plan manager availability and review the receiver node option for pipeline redundancy. |
| Events are delayed or dropped on busy hosts | Nodes are undersized for the endpoint volume | Compare node cores and RAM with the hardware minimums: 4 cores and 16 GB RAM for a manager or search node. Size above the minimum for your volume and monitor resource use. |
| Agent install or enrollment fails on a host | The endpoint OS version or architecture is not supported for the Elastic Agent release in use | Confirm the endpoint OS and version against the Elastic Agent support matrix for your Security Onion release. The Security Onion server itself runs only on x86-64. |
Questions buyers ask before bringing in an outside partner
What drives the cost of an Elastic Agent deployment on Security Onion?
The cost follows the amount of work in your environment, not a fixed package. The main drivers are the number and mix of endpoints (Windows, Linux and macOS each need different packaging, testing and rollout steps), how many Fleet policies you need and how complex their integrations are, the scope of Osquery live queries you want analysts to run, the sizing and count of Security Onion nodes that will receive the data, and how much your existing SIEM or log pipeline must be integrated or kept in parallel. Change control also adds effort, because each policy change may need a review, a test window and a record. In a written quote, ask which of these items are included, which are excluded, and how additional endpoints or policies are priced after the initial scope is agreed.
Which parts of endpoint visibility are one-time work and which recur?
The initial build is one-time: designing the policy model, deploying Fleet and the agents to a pilot group, validating log flow into the Security Onion Console, and handing over documentation and runbooks. Recurring work covers policy upkeep as endpoint builds and business needs change, Elastic Agent and Security Onion upgrades, monitoring agent health and data ingestion, reviewing Osquery query use, and tuning noise over time. Ask the partner to separate these in the quote so you can see what the first phase costs and what an ongoing support arrangement would cover. Retainers are available for ongoing support, upgrades and continuous testing, and their scope should be written out as clearly as the build.
How long does it take, and what makes the timeline longer or shorter?
The timeline depends on scope and readiness rather than on a standard duration. Schedules get longer when the endpoint estate is large or uneven, when the Security Onion deployment type or hardware still needs to be decided, when change approvals take several cycles, or when your team needs to review each Fleet policy before it goes live. A pilot on a small, well-understood group of hosts is usually the quickest way to surface these issues. Ask for a schedule that shows the dependencies: infrastructure readiness, access grants, the pilot, the wider rollout and the handover. Fixed-scope engagements have their deliverables and timelines agreed in writing before work starts.
What do we need to provide for the engagement to run smoothly?
Expect to provide several kinds of access and decisions. You will need Security Onion Console administrators who can create users, roles and Fleet policies, and who can approve changes to them. The work also needs access to your endpoint management tooling, such as software distribution or group policy, so agents can be installed on Windows, Linux and macOS hosts. Network changes may be required so endpoints can reach the Fleet and log ingestion ports on the Security Onion nodes. Finally, a named owner must sign off on which logs are collected, which Osquery queries are allowed, and how long data is retained. Confirm these responsibilities in the scope document so delays are not discovered mid-project.
Can our own team deploy Elastic Agent with Security Onion without a partner?
Yes, a capable internal team can run a pilot, provided it has Linux administration skills, familiarity with Elastic Agent and Fleet, and someone who understands endpoint management and your change process. The trade-off is time and risk. An internal team learns the platform while also running production duties, and it may not have a tested rollback path or a documented policy model when the first wide rollout begins. A partner brings that pattern experience but adds cost and a dependency on the agreed scope. Many organizations keep ownership of the policies and runbooks while bringing in a partner for the design, pilot and handover. Decide based on your skills, your deadlines and how much of the work you want to keep.
What should we ask for in a written quote for this work?
A useful quote lists the scope in endpoint and policy terms, not only as a total. Ask for the number and operating systems of endpoints covered, the Fleet policies and integrations included, whether Osquery live query design is in scope and how many query types, the Security Onion node count and deployment type assumed, and whether existing SIEM or log pipeline connections are part of the work. Request an explicit list of deliverables, the acceptance criteria for the pilot and for the full rollout, the client responsibilities described above, and the change control process. Also ask which items are one-time, which recur, what triggers a change order, and what is excluded, such as hardware, licensing or third-party tooling.
Does Security Onion Pro change the effort for endpoint visibility?
Security Onion Pro is a separately licensed edition that adds features such as OIDC single sign-on to the Console, data-at-rest encryption, FIPS mode, OS STIG compliance and professional support. If your organization needs these, the Console authentication and hardening work becomes part of the scope and must be coordinated with the endpoint rollout. Pro is sold on 1 to 5 year terms, so the licensing choice affects the total cost of ownership and should be decided before design begins. The Security Onion repository itself is licensed under the Elastic License 2.0, which is source-available rather than OSI open source. Confirm licensing terms with Security Onion Solutions and your legal team before quoting.
How DeployOpen scopes and delivers Security Onion endpoint onboarding
DeployOpen plans and deploys Security Onion endpoint visibility with Elastic Agent inside the infrastructure you control. We start from your deployment type, your endpoint mix and the host logs your analysts need to correlate with Zeek and Suricata data. The written scope fixes what is onboarded, how it is tested and what your team receives at handover.
How we scope
- Confirm your Security Onion version and distribution, since 3.0.0 supports only Oracle Linux 9.
- Inventory Windows, Linux and macOS endpoints, their owners and the network segments they sit on.
- Agree which Fleet policies, integrations and Osquery live query use cases are in scope.
- Record the written scope, deliverables and timeline before work starts. Engagements are fixed-scope.
How we build
- Check Fleet server, manager and search node capacity against your planned endpoint count.
- Create Fleet policies per endpoint group, with enrollment keys and agent versions set deliberately.
- Deploy Elastic Agent to a pilot group first, then roll out in waves with rollback steps written down.
- Verify that host events from pilot endpoints appear in Security Onion and correlate with Zeek and Suricata records.
How we hand over
- Document the Fleet policy structure, enrollment process and agent upgrade procedure for your team.
- Provide a runbook for Osquery live queries, including who may run them and on which hosts.
- Walk your analysts through host log searches and pivots between endpoint and network data.
- Deliver test results, configuration records and open items so your team can own the environment.
How we support
- Offer ongoing support, upgrades and testing as a retainer if your team wants continued help.
- Plan Security Onion and Elastic Agent upgrades against the vendor's end-of-life dates for your version.
- Review agent health and coverage gaps with your team on a schedule agreed in the written scope.
- Confirm with the vendor and your own environment which Elastic Agent deployment modes your design requires.

