Skip to content

Commit

Permalink
Merge pull request #278 from levoai/CU-86b2f3cyz_Add-Satellite-Instal…
Browse files Browse the repository at this point in the history
…lation-instructions-for-Windows-VM_Raviteja-Gannarapu

Adding satellite installation on Window
  • Loading branch information
gannaraputeja authored Nov 12, 2024
2 parents 47ca093 + 88c0e00 commit 0de06a4
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 2 deletions.
1 change: 1 addition & 0 deletions docs/install-satellite/install-satellite.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,5 @@ The Satellite uses an organization ID to authenticate incoming requests.
- [Install in AWS EKS using EC2](satellite-aws-ecs.mdx)
- [Install in AWS EKS using Fargate](satellite-aws-eks-fargate.md)
- [Install in AWS ECS](satellite-aws-ecs.mdx)
- [Install on Windows](satellite-windows.mdx)

4 changes: 2 additions & 2 deletions docs/install-satellite/satellite-docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ docker compose pull && docker compose up -d

The Satellite is comprised of four sub components 1) levoai-collector, 2) levoai-rabbitmq, 3)levoai-satellite, and 4) levoai-tagger.

Wait couple of minutes after the install, and check the health of the components by executing the following:
Wait a couple of minutes after the installation, and check the health of the components by executing the following:

```bash
docker ps -f name=levoai
Expand Down Expand Up @@ -89,7 +89,7 @@ If connectivity is healthy, you will see output similar to below.
### 4. Note down `Host:Port` information
The Collector now runs in a container, and is reachable on the host via port 4317 (on all the host's network interfaces).

Please note down the either the host's IP address or domain name. The Sensor will be configured to communicate with the Collector at <Host's IP|Domain-Name>:4317.
Please note down either the host's IP address or domain name. The Sensor will be configured to communicate with the Collector at <Host's IP|Domain-Name>:4317.

Please proceed to [install traffic capture sensors](/install-traffic-capture-sensors).

Expand Down
90 changes: 90 additions & 0 deletions docs/install-satellite/satellite-windows.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
sidebar_position: 7
description: Set up Levo.ai Satellite on Windows.
---

# Satellite on Windows VM

import BrowserOnly from '@docusaurus/BrowserOnly';

export function DownloadDockerComposeLink() {
return (
<BrowserOnly fallback={<div>Loading...</div>}>
{() => (
<a href={window.location.protocol + '//' + window.location.host + '/artifacts/satellite/docker-compose.yml'} download> Download</a>
)}
</BrowserOnly>
);
}

### Prerequisites
- Access to a Windows Machine.
- At least 4 CPUs and 8 GB of RAM on the Windows Machine.
- Docker Desktop for Windows installed on the Windows with WSL enabled.

### 1. Download Docker Compose file
Levo provides pre-built Docker images for the Satellite that can be installed via Docker Compose.
<DownloadDockerComposeLink/> the Docker Compose file to your desktop.

### 2. Install Satellite

Set the `LEVOAI_AUTH_KEY` environment variable, please refer to [Generating CLI Authorization Keys](/integrations/common-tasks.md#generating-cli-authorization-keys) for instructions on fetching your key.
```powershell
$env:LEVOAI_AUTH_KEY = "<your auth key here>"
```
Execute the following from the directory where the Docker Compose file was downloaded.
```powershell
docker compose pull; docker compose up -d
```

:::info

Depending on the region you are installing in, you may need to set a different Levo base URL for the satellite.

For example, if the satellite will be used with `app.india-1.levo.ai`, the installation command will be:

```powershell
$env:LEVOAI_AUTH_KEY = "<your auth key here>"
$env:LEVOAI_BASE_URL = "https://api.india-1.levo.ai"
docker compose pull; docker compose up -d
```

:::

> If `docker compose ...` complains with *"docker: 'compose' is not a docker command."*, you have can try **`docker-compose`** instead.
### 3. Verify connectivity with Levo.ai

#### a. Check Satellite health

The Satellite is comprised of six sub components 1) levoai-collector, 2) levoai-rabbitmq, 3)levoai-satellite, and 4) levoai-tagger 5) levoai-ion 6) levoai-haproxy.

Wait a couple of minutes after the installation, and check the health of the components by executing the following:

```bash
docker ps -f name=levoai
```

If the Satellite is healthy, you should see output similar to below.

```bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2b32cd6b9ced levoai/collector:stable "/usr/local/bin/levo…" 10 seconds ago Up 8 seconds 0.0.0.0:4317->4317/tcp, 9411/tcp levoai-collector
06f3c597cad0 levoai/satellite:stable "gunicorn --capture-…" 10 seconds ago Up 9 seconds 0.0.0.0:9999->9999/tcp levoai-satellite
89026034c567 levoai/satellite:stable "python -OO /opt/lev…" 10 seconds ago Up Less than a second levoai-tagger
f74524d02fbd bitnami/rabbitmq:3.10 "/opt/bitnami/script…" 10 seconds ago Up 9 seconds 5551-5552/tcp, 0.0.0.0:4369->4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 0.0.0.0:15672->15672/tcp, 0.0.0.0:25672->25672/tcp, 15671/tcp levoai-rabbitmq
973414e03gba levoai/ion:stable "ion start -verbose" 10 seconds ago Up Less than a second 0.0.0.0:9990->8000/tcp levoai-ion
cb58d3d8d952 levoai/proxy:latest "docker-entrypoint.s…" 10 seconds ago Up 7 seconds 0.0.0.0:8081->8081/tcp, 0.0.0.0:9080->8080/tcp levoai-haproxy
```

#### b. Check connectivity
Execute the following to check for connectivity health:

```bash
docker logs levoai-tagger | grep "Ready to process; waiting for messages."
```
If connectivity is healthy, you will see output similar to below.

```bash
{"level": "info", "time": "2022-06-07 08:07:22,439", "line": "rabbitmq_client.py:155", "version": "fc628b50354bf94e544eef46751d44945a2c55bc", "module": "/opt/levoai/e7s/src/python/levoai_e7s/satellite/rabbitmq_client.py", "message": "Ready to process; waiting for messages."}
```

0 comments on commit 0de06a4

Please sign in to comment.