GithubHelp home page GithubHelp logo

fkr / nprobe Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 172 KB

This is a mirror of https://git.sr.ht/~fkr/nprobe

Home Page: https://sr.ht/~fkr/nprobe/

License: BSD 2-Clause "Simplified" License

Dockerfile 2.57% Go 97.43%

nprobe's Introduction

nprobe

nprobe is a replacement for smokeping. Smokeping is a tool from the 90s, that to this day I still use. However while it still serves its purpose, it has not aged very well. nprobe tries to address this.

Warning

nprobe is currently being very actively worked on. The datasink backend will still change a lot, so will the API and datastructured. Look at it, play with it, but don't use it to do anything where you care for data. As soon as I've reached a point, where I will be sure about not breaking the datalayer anymore, I'll remove this warning.

Architecture

For the design, please check design.md in the documentation folder. The tl;dr is:

  • there is a head node
  • there are multiple satellites
  • there are various targets defined on the head node that can be assigned to satellites

The satellites connect to the head node, receive the targets they're supposed to probe and send back their results to the head. The head throws the received data into a datasink and that data can be graphed.

Setup

Head Node

There is config/config.json.example which serves as a template. Copy this to config/config.json, which is the default where the config is looked for.

Usage can be displayed with:

$ ./nprobe --help

On the head node it should be enough to just start nprobe with:

$ ./nprobe

Satellite node

The satellite node needs to have its secret configured via an environment variable:

$ export NPROBE_SECRET=secret-defined-for-the-satellite-in-head-config

The nprobe satellite needs to be passed where to find the head node:

$ ./nprobe --head nprobe.example.com --name my-satellite-name

The name of the satellite is derived from the hostname, if it differs, it needs to be passed.

Further CLI flags

$ ./nprobe --help
Usage of ./nprobe:
  -config string
    	config file (default "config/config.json")
  -debug
    	enable debug mode
  -head string
    	fqdn / ip of head node
  -insecure-tls
    	disable use of tls cert checking
  -mode string
    	head / satellite (default "satellite")
  -name string
    	name of probe (defaults to fqdn)
  -notls
    	disable use of tls
  -privileged
    	enable privileged mode

Access to raw sockets

The underlying use of ICMP for the icmp probes requires certain socket semantics on the used operating system of the satellites. Depending on your os, you might need to run this with elevated privileges (aka: run it as root with --privileged flag passed as well)

nprobe's People

Contributors

fkr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.