Skip to main content
This page puts the fleet settings together for each platform: the package, the settings your fleet tooling writes before installing it, how to pin and roll out versions, and how to check the result. The behavior is the same on Linux, macOS and Windows.
Everything on this page needs a release newer than 1.3.57. Version 1.3.57 and earlier ignore these settings and install a shared log, and record OpenTelemetry events on macOS and Windows under the collector’s account. Pin a newer version in the examples below.

What a fleet install gives you

The settings

Fleet tooling cannot set the environment of a package’s install script, so each platform reads the same BEACON_* settings from the place its tooling already writes settings. Write them before installing the package. They are read again on every upgrade. Each is ignored, with a warning in the install output, unless root (SYSTEM or Administrators) controls it. See Package installs for the full rules.

Linux with Salt

The signed apt repository at https://apt.beacon.sh keeps every release it has published, so a machine can install any of them by version. Pin the repository key by its hash, so a changed key stops the state instead of being trusted:
beacon.sls
The hash is of the keyring holding Beacon’s release key, fingerprint 07BEA34ED6A411F4C066D98322F94195DCDC8F45 (see Release signing). It changes only when the key is rotated, which is announced with the fingerprint of the new key. To serve the packages from your own mirror instead (Artifactory, Nexus, Pulp, aptly), mirror https://apt.beacon.sh and point beacon.list at the mirror; apt still checks the index against the same key. For Fedora, RHEL and other .rpm hosts, install the versioned .rpm from the release with pkg.installed and sources, after the same /etc/sysconfig/beacon.

macOS with Jamf, Kandji or Intune

  1. Push a configuration profile for com.beacon.endpoint to the machines, scoped before the package:
    Custom settings payload (com.beacon.endpoint)
  2. Deploy the signed, notarized .pkg of the release you approved (BeaconEndpointAgent-<version>-arm64.pkg from the release page). Your MDM decides which version each machine gets; upload the next one when you roll forward. See Jamf Pro for package and policy setup.

Windows with Intune or Group Policy

  1. Set the policy values, before the MSI, with an Intune registry setting or script, or a Group Policy registry preference:
    Install settings as policy values (runs elevated)
  2. Deploy the MSI of the release you approved silently:
    Silent install
    A silent install adds nobody to beacon-log. See Windows for logs and time limits.

Versions and updates

Beacon never updates itself. beacon endpoint update --apply runs only when someone runs it, and the update notice appears only in an interactive terminal. Your fleet tooling decides the version: version: in the Salt state (or a pin in your apt mirror), the package you upload to the MDM, the MSI you assign in Intune. To stay one release behind, approve each release after the next one is out. Upgrades keep the log access mode and the beacon-log members, and read the settings again.

Check a machine

On Linux and macOS, as root:
Status (Linux, macOS)
On Windows, in an elevated PowerShell:
Status (Windows)
Expect log_access to be restricted (and dashboard to be disabled if you set it), and runtime_log_access: ok from doctor. Then confirm that events name the person: as an ordinary account, send one prompt in an agent Beacon configured, and look at the newest events:
Who acted (Linux, macOS)
Who acted (Windows, elevated)
The person’s account should appear, not root (or COMPUTERNAME$ on Windows). An event recorded with an empty user came from a sender the collector could not identify, for example one that disconnected before the lookup; it is never attributed to someone else. Events from collectors older than this behavior carry the collector’s account until the endpoint is upgraded or repaired. In Microsoft Sentinel the same account is the UserName column; see Microsoft Sentinel. If a log shipper reads the file as its own account, add that account to BEACON_LOG_READERS (or to beacon-log directly) and restart it; Beacon’s own forwarders run as root or SYSTEM and need nothing. See Let your log shipper read the log.