Skip to main content

Overview

Fleet can deploy and inventory the local Beacon endpoint agent on managed Macs. Beacon’s Fleet support uses the signed and notarized macOS .pkg as Fleet software, while the endpoint agent writes local JSONL telemetry without requiring a hosted account, remote policy fetch, or Fleet API credentials.

What Fleet manages

Package layout

The macOS package includes Beacon binaries, endpoint helper scripts, and Fleet assets:
The package postinstall performs the default system install. That install creates system configuration and runtime state:

Deploy with Fleet

Upload the signed and notarized .pkg as Fleet software and scope it to a pilot team or label. The package postinstall performs the default system install, so no post-install script is required for the common deployment path.
1

Upload the Beacon package

Upload the signed and notarized Beacon macOS package as Fleet software. The package installs Beacon binaries under /opt/beacon and includes Fleet helper scripts and inventory queries.
2

Scope to a pilot

Scope the software to a pilot team or label before broader rollout.
3

Add policies or labels

Add queries from /opt/beacon/fleet/queries as Fleet policies or labels to track install state, service health, log freshness, config state, and runtime log writability.
4

Optionally enable endpoint self-updates

Beacon package self-updates are off by default. To opt in during rollout, add a Fleet script or policy command that runs one of the following after the package install completes:
Enable automatic package self-updates
For visibility without automatic package installation, enable check-only mode instead:
Enable check-only update monitoring
Both commands require root and are intended for the system package install. auto mode installs newer compatible signed packages from the release manifest after package verification and health checks. check-only mode writes local update status events to /var/log/beacon-agent/system.jsonl but does not download or apply packages.
5

Validate the deployment

Run the Fleet validation helper on a managed Mac:

Fleet scripts

Fleet scripts are installed under /opt/beacon/fleet/scripts: Use the install script when a workflow needs explicit parameters or a reinstall action. Fleet install script positional arguments:
Fleet repair script positional arguments:

Inventory with queries

Add queries from /opt/beacon/fleet/queries as Fleet policies or labels. They cover package, service, log, and config presence and freshness. Available queries:
  • beacon-version.sql
  • collector-service-health.sql
  • last-event-age-seconds.sql
  • configured-harnesses.sql
  • runtime-log-writable.sql
  • splunk-hec-forwarding.sql
Recommended Fleet policies:
  • Beacon install state is not not_installed.
  • Collector service health is running.
  • Last runtime event age is less than 86400.
  • Endpoint config state is present.
  • Runtime log state is present.
  • Splunk HEC config state is configured when HEC export is required.

Repair and uninstall

Use /opt/beacon/fleet/scripts/repair.sh for endpoints where policies report a stale or unhealthy install. Include gemini in the harness argument, for example claude,codex,gemini, when the repair workflow should manage Gemini CLI telemetry settings. Configure GitHub Copilot CLI separately by deploying COPILOT_OTEL_ENABLED=true and OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318 in Copilot’s launch environment. Use /opt/beacon/fleet/scripts/uninstall.sh to remove endpoint service files. Set BEACON_KEEP_LOGS=1 or the first uninstall argument to preserve runtime logs during removal. Set BEACON_KEEP_CONFIG=1 or the second uninstall argument to preserve harness telemetry configuration.

Troubleshooting

If the Beacon version query reports not_installed, confirm the Fleet software install completed and that the package is scoped to the host.On the device, verify that the expected files exist:
Check endpoint status and launchd state:
If the service file or collector configuration drifted, run /opt/beacon/fleet/scripts/repair.sh.
Verify that the runtime log exists and is writable:
If validation succeeds but events remain stale, confirm the configured harnesses match the agent harnesses installed or configured for the device and that the local collector ports are not in use by another process. For GitHub Copilot CLI, confirm Copilot’s launch environment includes COPILOT_OTEL_ENABLED=true and points OTLP HTTP at the local Beacon collector.
Check Fleet install script arguments 6 and 7, or the BEACON_SPLUNK_HEC_ENDPOINT and BEACON_SPLUNK_HEC_TOKEN environment variables used by the install workflow.Use splunk-hec-forwarding.sql to verify whether endpoint configuration contains a Splunk destination. On the device, confirm the non-secret destination fields:
Check update mode, launchd state, and local system update events:
If the updater is disabled or missing, run the Fleet script or policy command that enables the desired mode:
To trigger an urgent update check from Fleet, run the scheduled updater path immediately:

MDM deployment

Review the shared macOS MDM deployment model and package layout.

Log forwarding

Forward Beacon events into Wazuh, Splunk HEC, Falcon LogScale, Elastic, Datadog, Sumo Logic, Rapid7 InsightIDR, or customer-managed pipelines.