fleet/orbit
Martin Angers d943fbbf8e
Extend script execution timeout (#15779)
#15196 This is the work of @ghernandez345 except for adding the
`ResponseController` thing in Go to override the server timeout for that
specific sync endpoint so that the calls don't timeout waiting for a
script response (the default HTTP server timeout was 90s for our
server).

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
  - For Orbit and Fleet Desktop changes:
- [x] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [x] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).

---------

Co-authored-by: Gabriel Hernandez <ghernandez345@gmail.com>
Co-authored-by: Roberto Dip <me@roperzh.com>
Co-authored-by: Roberto Dip <dip.jesusr@gmail.com>
2024-01-03 16:39:53 -03:00
..
changes Extend script execution timeout (#15779) 2024-01-03 16:39:53 -03:00
cmd Remotely configure fleetd update channels (#15848) 2024-01-02 17:59:40 -03:00
docs Update TUF-Update-Guide.md (#15119) 2023-11-29 14:10:46 -06:00
pkg Extend script execution timeout (#15779) 2024-01-03 16:39:53 -03:00
tools chore: remove refs to deprecated io/ioutil (#14485) 2023-10-27 15:28:54 -03:00
.gitattributes Add 'orbit/' from commit 'ab3047bb39f1e2be331d1ff18b4eb768619033c4' 2021-08-04 16:58:25 -03:00
.gitignore Add 'orbit/' from commit 'ab3047bb39f1e2be331d1ff18b4eb768619033c4' 2021-08-04 16:58:25 -03:00
.gon.hcl Build universal macOS binaries for Orbit (#6208) 2022-06-13 19:43:47 -03:00
CHANGELOG.md update Orbit changelog for 1.17.0 (#14180) 2023-09-29 10:01:55 -03:00
goreleaser-linux.yml Update Orbit to use CGO on Linux (#9846) 2023-02-21 18:49:13 -08:00
goreleaser-macos.yml Orbit kolide table build fixes (#14972) 2023-11-06 17:53:02 -03:00
goreleaser-windows.yml Feature 8058: Added resource.syso metadata file (#10783) 2023-05-17 18:53:25 -03:00
LICENSE Add 'orbit/' from commit 'ab3047bb39f1e2be331d1ff18b4eb768619033c4' 2021-08-04 16:58:25 -03:00
README.md Fleet Documentation: Remove docs about cgroups (#13143) 2023-08-04 14:40:29 -04:00

Fleet logo, landscape, dark text, transparent background

Orbit is a lightweight osquery installer and autoupdater. With Orbit, it's easy to deploy osquery, manage configurations, and keep things up-to-date. Orbit eases the deployment of osquery connected with a Fleet server, and is a (near) drop-in replacement for osquery in a variety of deployment scenarios.

Orbit is the recommended agent for Fleet. But Orbit can be used with or without Fleet, and Fleet can be used with or without Orbit.

Documentation

Bugs

To report a bug or request a feature, click here.

Orbit Development

Run Orbit From Source

To execute orbit from source directly, run the following command:

go run github.com/fleetdm/fleet/v4/orbit/cmd/orbit \
    --dev-mode \
    --disable-updates \
    --root-dir /tmp/orbit \
    --fleet-url https://localhost:8080 \
    --insecure \
    --enroll-secret Pz3zC0NMDdZfb3FtqiLgwoexItojrYh/ \
    -- --verbose

Or, using a flagfile.txt for osqueryd:

go run github.com/fleetdm/fleet/v4/orbit/cmd/orbit \
    --dev-mode \
    --disable-updates \
    --root-dir /tmp/orbit \
    -- --flagfile=flagfile.txt --verbose
Generate Installer Packages from Orbit Source

The fleetctl package command generates installers by fetching the targets/executables from a TUF repository. To generate an installer that contains an Orbit built from source you need to setup a local TUF repository. The following document explains how you can generate a TUF repository, and installers that use it tools/tuf/test.

FAQs

How does Orbit compare with Kolide Launcher?

Orbit is inspired by the success of Kolide Launcher, and approaches a similar problem domain with new strategies informed by the challenges encountered in real world deployments. Orbit does not share any code with Launcher.

  • Both Orbit and Launcher use The Update Framework specification for managing updates. Orbit utilizes the official go-tuf library, while Launcher has it's own implementation of the specification.
  • Orbit can be deployed as a (near) drop-in replacement for osquery, supporting full customization of the osquery flags. Launcher heavily manages the osquery flags making deployment outside of Fleet or Kolide's SaaS difficult.
  • Orbit prefers the battle-tested plugins of osquery. Orbit uses the built-in logging, configuration, and live query plugins, while Launcher uses custom implementations.
  • Orbit prefers the built-in osquery remote APIs. Launcher utilizes a custom gRPC API that has led to issues with character encoding, load balancers/proxies, and request size limits.
  • Orbit encourages use of the osquery performance Watchdog, while Launcher disables the Watchdog.

Additionally, Orbit aims to tackle problems out of scope for Launcher:

  • Configure updates via release channels, providing more granular control over agent versioning.
  • Manage osquery startup flags from a remote (Fleet) server.
  • Support for deploying and updating osquery extensions (🔜).
  • Manage osquery versions from a remote (Fleet) server (🔜).

Is Orbit Free?

Yes! Orbit is licensed under an MIT license and all uses are encouraged.

How does orbit update osquery? And how do the stable and edge channels get triggered to update osquery on a self hosted Fleet instance?

Orbit uses a configurable update server. We expect that many folks will just use the update server we manage (similar to what Kolide does with Launcher's update server). We are also offering tooling for self-managing an update server as part of Fleet Premium (the subscription offering).

Community

Chat

Please join us in the #fleet channel on osquery Slack.

Banner featuring a futuristic cloud city with the Fleet logo