Skip to content

This Pack is designed to be installed on a Cribl Edge Node within your Starlink network. It enables the collection of data from the Starlink API, which can then be sent to any Cribl-supported output.

Notifications You must be signed in to change notification settings

PySecNinja/cribl-pack-for-starlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›œ Cribl Pack for Starlink πŸš€


This Pack is designed to be installed on a Cribl Edge Node within your Starlink network. It enables the collection of data from the Starlink API, which can then be sent to any Cribl-supported output.

πŸ”­ Architecture

Cribl_Ref_Architecture-Copy of Stream - Replay (1)

πŸ“‘ Usage - Collect Data

To set up the environment, follow these steps:

  1. Create a subfleet, install this pack, commit, and deploy.

  2. SSH into the node and navigate to the following directory:

    ~/cribl-pack-for-starlink/bin
  3. Create a virtual environment:

    python -m venv venv
  4. Activate the virtual environment:

    source venv/bin/activate
  5. Install the required dependencies:

    pip install -r requirements.txt

πŸ›°οΈ Configure Source - Edge

  1. Go to More > Sources > Add Source > Exec > Add Source > Manage as JSON > import .json files one at a time.

πŸ“ Configure Destination - Edge

  1. Go to More > Destination > Add Destination > Cribl HTTP > Add Cribl Endpoint
  2. How to find Endpoint IP/Ingress IP If on cribl.cloud > click on Access Details

Screenshot

  1. Ingress IP

Screenshot

πŸ”€ Configure Route - Edge

  1. Navigate to More > Data Routes.
  2. Add a filter for the exec input.
    • Example: __inputId.includes('starlink').

BEAST MODE(Reccomended): Manage routes as json. Import json

Screenshot 2024-10-15 at 22 51 43

πŸ•ŠοΈ Top-Level Routing - Edge

Screenshot 2024-10-15 at 23 07 09

πŸ“¦ Pack-Level Routing - Edge

Screenshot 2024-10-15 at 23 08 26

πŸ›°οΈ Configure Source - Stream

  1. Go to More > Sources > Add Source > Cribl HTTP > Disable in_cribl_http > Manage as json > import json

Screenshot 2024-10-15 at 23 28 21

🐟 Configure Lake - Create Dataset

How to Create a Dataset in Cribl Lake

I named mine starlink. A 30 Day Rention Period is should be sufficient.

Screenshot 2024-10-15 at 23 33 23

πŸ“ Configure Destination - Stream

  1. Go to More > Destination > Add Destination > Cribl Lake > Create output ID

Screenshot 2024-10-15 at 23 36 03

πŸ”€ Configure Route - Steam

  1. Navigate to More > Data Routes.
  2. Add a filter for the exec input.
    • Example: __inputId=='cribl_http:starlink-in_cribl_http'.
    • Output: cribl_lake:starlink

Screenshot 2024-10-15 at 23 13 16

πŸ“ Scripts

  • dish_common.py: Common functions and utilities for Starlink dish communication.
  • dish_grpc_text.py: Main script for collecting data from Starlink dishes using gRPC.
  • starlink_grpc.py: gRPC client implementation for Starlink dish communication.

🚦 Supported Modes

The following 11 data collection modes are supported:

  • alert_detail
  • bulk_history
  • location
  • obstruction_detail
  • ping_drop
  • ping_latency
  • ping_loaded_latency
  • ping_run_length
  • power
  • status
  • usage

πŸ”§ Requirements

  • Python 3.x
  • gRPC libraries for Python
  • See requirements.txt

Pipeline Example - IN

Screenshot 2024-10-15 at 23 16 26

Pipeline Example - OUT

Screenshot 2024-10-15 at 23 15 50

⚠️ Troubleshooting

Ensure you have the necessary permissions to run these scripts and access the Starlink dish data.

πŸ“ Release Notes

Version 0.0.3

  • Fixed timestamping issue, events were showing up 3-4hrs behind, autotimestamp function added.

Version 0.0.2

  • Archived Bash Scripts replaced with exec source to control python scripts, routing into cribl lake

Version 0.0.1

  • Initial Release

🀝 Contributing to the Pack

To contribute, please message me on GitHub or create a pull request:

πŸ“œ License

This Pack uses the following license: MIT.

πŸ† Credit

Python Scripts: starlink-grpc-tools


About

This Pack is designed to be installed on a Cribl Edge Node within your Starlink network. It enables the collection of data from the Starlink API, which can then be sent to any Cribl-supported output.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published