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
- Host: GitHub
- URL: https://github.com/dalance/softether_exporter
- Owner: dalance
- License: mit
- Created: 2018-01-20T11:24:49.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-10T20:44:09.000Z (over 1 year ago)
- Last Synced: 2025-03-30T21:07:45.805Z (about 1 year ago)
- Topics: prometheus-exporter, rust
- Language: Rust
- Size: 683 KB
- Stars: 34
- Watchers: 3
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# softether_exporter
[Prometheus](https://prometheus.io) exporter for [SoftEther VPN server](http://www.softether.org)
[](https://github.com/dalance/softether_exporter/actions)
[](https://crates.io/crates/softether_exporter)

## 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"
```