An open API service indexing awesome lists of open source software.

https://github.com/dalance/softether_exporter

Prometheus Exporter of SoftEther VPN Server
https://github.com/dalance/softether_exporter

prometheus-exporter rust

Last synced: about 1 year ago
JSON representation

Prometheus Exporter of SoftEther VPN Server

Awesome Lists containing this project

README

          

# softether_exporter
[Prometheus](https://prometheus.io) exporter for [SoftEther VPN server](http://www.softether.org)

[![Actions Status](https://github.com/dalance/softether_exporter/workflows/Regression/badge.svg)](https://github.com/dalance/softether_exporter/actions)
[![Crates.io](https://img.shields.io/crates/v/softether_exporter.svg)](https://crates.io/crates/softether_exporter)

![screenshot](./grafana/screenshot.png)

## Exported Metrics

| metric | description | labels |
| ------------------------------------ | -------------------------------------- | ------------------------------ |
| softether_up | The last query is successful | hub |
| softether_online | Hub is online | hub |
| softether_sessions | Number of sessions | hub |
| softether_sessions_client | Number of client sessions | hub |
| softether_sessions_bridge | Number of bridge sessions | hub |
| softether_users | Number of users | hub |
| softether_groups | Number of groups | hub |
| softether_mac_tables | Number of entries in MAC table | hub |
| softether_ip_tables | Number of entries in IP table | hub |
| softether_logins | Number of logins | hub |
| softether_outgoing_unicast_packets | Outgoing unicast transfer in packets | hub |
| softether_outgoing_unicast_bytes | Outgoing unicast transfer in bytes | hub |
| softether_outgoing_broadcast_packets | Outgoing broadcast transfer in packets | hub |
| softether_outgoing_broadcast_bytes | Outgoing broadcast transfer in bytes | hub |
| softether_incoming_unicast_packets | Incoming unicast transfer in packets | hub |
| softether_incoming_unicast_bytes | Incoming unicast transfer in bytes | hub |
| softether_incoming_broadcast_packets | Incoming broadcast transfer in packets | hub |
| softether_incoming_broadcast_bytes | Incoming broadcast transfer in bytes | hub |
| softether_build_info | softether_exporter Build information | version, revision, rustversion |
| softether_user_transfer_packets | User transfer in packets | hub, user |
| softether_user_transfer_bytes | User transfer in bytes | hub, user |

## Query Example

Outgoing unicast packet rate of HUB1 is below.

```
rate(softether_outgoing_unicast_packets{hub="HUB1"}[1m])
```

## Grafana Dashboard

[SoftEther VPN](https://grafana.com/grafana/dashboards/12053)

## Install
Download from [release page](https://github.com/dalance/softether_exporter/releases/latest), and extract to any directory ( e.g. `/usr/local/bin` ).
See the example files in `example` directory as below.

| File | Description |
| ---------------------------------- | ------------------------------ |
| example/softether_exporter.service | systemd unit file |
| example/config.toml | softether_exporter config file |

If the release build doesn't fit your environment, you can build and install from source code.

```
cargo install softether_exporter
```

## Requirement

softether_exporter uses `vpncmd` or `vpncmd.exe` to access SoftEther VPN server.
The binary can be got from [SoftEther VPN Download](http://www.softether-download.com/?product=softether).

## Usage

```
softether_exporter 0.1.5

USAGE:
softether_exporter [FLAGS] [OPTIONS] --config.file

FLAGS:
-v, --verbose Show verbose message
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--web.listen-address
Address on which to expose metrics and web interface [default: :9411]

--config.file Config file
```

The format of `` is below.

```
vpncmd = "/usr/local/bin/vpncmd" # path to vpncmd binary
server = "localhost:8888" # address:port of SoftEther VPN server

[[hubs]]
name = "HUB1" # HUB name
password = "xxx" # HUB password

[[hubs]]
name = "HUB2"
password = "yyy"
```