Capsule8 Console Docs
Capsule8 Console Docs
Help

Getting alerts via webhook

1. PostgreSQL

The Console requires a PostgreSQL >= 9.6 server. Create a database, username, and password and grant all access to this new user.

System Requirements

  • At least 2 vCPUs
  • At least 16 GiB RAM
  • At least 500 GiB disk

Hosting

It is strongly recommended you use an existing PostgreSQL system maintained by an operations team in your company. Otherwise you can hook into cloud services like RDS.

Backups

It is strongly recommended that you have a backup/restore system in place for Console PostgreSQL data.

2. Console

Follow the Capsule8 PackageCloud or Docker registry setup documentation to install the Console in the environment of your choosing.

You will need to configure /etc/capsule8/capsule8-console.yaml with the following (fill in the correct values for your setup):

console:
  frontend: https://<dns-or-ip-you-will-use-in-the-browser>
  standalone: false
  address: 0.0.0.0:443
  auth_session_key: <a-random-64-digit-string>
  database: postgres://<db-user>:<db-password>@<dp-ip-address>:5432/<db-name>

If the frontend value is set incorrectly, you will be able to view the Console but alerts will not show up without a page refresh. You will also see a banner that mentions connectivity issues. Make sure that the frontend value is set to the same base URL you visit in the browser.

The auth session key is not required if you are not running multiple instances of the Console.

Create a token

You need to create an auth token for Sensors to be able to POST alerts to the Console.

Start the Console and log in. Go to the Hosts page and click the “Add Host” button in the top-right corner. Follow the instructions there to continue.

via the command line

Alternatively, you can generate a token from the command line where the Console is set up and running.

$ capsule8-console generate-token --host
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhbGVydHM6cG9zdCI6dHJ1ZSwiZXhwIjoxODk1NTk4NDM1LCJpYXQiOjE1ODAyMzg0MzUsImlkIjowLCJyZXN0cmljdGVkIjp0cnVlfQ.EjytxRbtUICS3ZbyIRssDULC21-xeAZCv0cWS69aXuc

System Requirements

  • At least 2 vCPUs
  • At least 8 GiB RAM
  • At least 5 GiB disk (none if configured solely via environment variables)

Supported Platforms

We actively test on the following Linux distributions:

  • Debian 9, 10
  • Ubuntu 16.04, 18.04, 19.04
  • Fedora 30, 31
  • CentOS/RHEL 7, 8

We also actively test Docker image for systems like docker-compose, EKS, ECS, GKE, etc.

Availability

You may choose to run multiple instances of the Console behind a loadbalancer such as HAProxy or an AWS ELB. There are no Console changes needed to support this.

3. Sensors

To configure a Capsule8 Sensor with a Capsule8 Console instance, you must add the following to /etc/capsule8/capsule8-analytics.yaml where the Sensor is running:

process_lineage_enabled: true
alert_output:
  outputs:
  - type: webhook
    enabled: true
    url: https://<dns-or-ip-of-the-console>/alerts
    template: '{"uuid": "{{.UUID}}", "data": {{AlertJSON .}}}'
    Headers:
      'Authorization': 'BEARER <auth-token-created-before>'
    timeout: 5
    method: POST
# This periodic heartbeat allows the Console to know current/historic connectivity.
Heartbeat:
  policy: heartbeat
  period: 5m
  priority: Info
  enabled: true

Restart the Sensors for this change to take effect.

Minimum Version

Console 4.0 requires a Sensor >= 2.9.0.

Alert Backups

It is strongly recommended that you send alerts to a durable store in addition to the Console webhook. For example, you could send alerts to a log stack such as ELK, or you could write alerts to a network-backed disk. In any case, the goal is to have a secondary system in place to play back to the Console in the event that 1) the Console cannot accept webhooks (i.e. the service is down) or 2) Console data has been corrupted.