mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
commit
c1ed0c2b13
14
README.md
14
README.md
@ -6,6 +6,8 @@ Servers running LibreQoS can shape traffic for many thousands of customers.
|
|||||||
|
|
||||||
Learn more at [LibreQoS.io](https://libreqos.io/)!
|
Learn more at [LibreQoS.io](https://libreqos.io/)!
|
||||||
|
|
||||||
|
<img alt="LibreQoS" src="https://user-images.githubusercontent.com/22501920/223866474-603e1112-e2e6-4c67-93e4-44c17b1b7c43.png"></a>
|
||||||
|
|
||||||
## Sponsors
|
## Sponsors
|
||||||
|
|
||||||
LibreQoS' development is made possible by our sponsors, the NLnet Foundation and Equinix.
|
LibreQoS' development is made possible by our sponsors, the NLnet Foundation and Equinix.
|
||||||
@ -27,4 +29,14 @@ Please support the continued development of LibreQoS by sponsoring us via [GitHu
|
|||||||
|
|
||||||
Our Matrix chat channel is available at [https://matrix.to/#/#libreqos:matrix.org](https://matrix.to/#/#libreqos:matrix.org).
|
Our Matrix chat channel is available at [https://matrix.to/#/#libreqos:matrix.org](https://matrix.to/#/#libreqos:matrix.org).
|
||||||
|
|
||||||
<img alt="LibreQoS" src="https://user-images.githubusercontent.com/22501920/223866474-603e1112-e2e6-4c67-93e4-44c17b1b7c43.png"></a>
|
## Long-Term Stats (LTS)
|
||||||
|
|
||||||
|
Long-Term Stats (LTS) is an analytics service built for LibreQoS that revolutionizes the way you track and analyze your network.
|
||||||
|
With flexible time window views ranging from 5 minutes to 1 month, LTS gives you comprehensive insights into your network's performance.
|
||||||
|
Built from the ground-up for performance and efficiency, LTS greatly outperforms our original InfluxDB plugin, and gives you rapidly rendered data to help you maximize your network performance.
|
||||||
|
|
||||||
|
We provide a free 30-day trial of LTS, after which the rate is $0.30 USD per shaped subscriber.
|
||||||
|
You can enroll in the 30-day free trial by [upgrading to the latest version of LibreQoS v1.4](https://libreqos.readthedocs.io/en/latest/docs/Updates/update.html) and selecting "Start Stats Free Trial" in the top-right corner of the local LibreQoS WebUI.
|
||||||
|
|
||||||
|
<img alt="LibreQoS Long Term Stats" src="https://i0.wp.com/libreqos.io/wp-content/uploads/2023/11/01-Dashboard.png"></a>
|
||||||
|
|
||||||
|
@ -14,7 +14,38 @@ On the first successful run, it will create a network.json and ShapedDevices.csv
|
|||||||
If a network.json file exists, it will not be overwritten.
|
If a network.json file exists, it will not be overwritten.
|
||||||
You can modify the network.json file to more accurately reflect bandwidth limits.
|
You can modify the network.json file to more accurately reflect bandwidth limits.
|
||||||
ShapedDevices.csv will be overwritten every time the UISP integration is run.
|
ShapedDevices.csv will be overwritten every time the UISP integration is run.
|
||||||
You have the option to run integrationUISP.py automatically on boot and every 30 minutes, which is recommended. This can be enabled by setting ```automaticImportUISP = True``` in ispConfig.py
|
You have the option to run integrationUISP.py automatically on boot and every 10 minutes, which is recommended. This can be enabled by setting ```automaticImportUISP = True``` in ispConfig.py
|
||||||
|
|
||||||
|
## Powercode Integration
|
||||||
|
|
||||||
|
First, set the relevant parameters for Sonar (powercode_api_key, powercode_api_url, etc.) in ispConfig.py.
|
||||||
|
|
||||||
|
To test the Powercode Integration, use
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python3 integrationPowercode.py
|
||||||
|
```
|
||||||
|
|
||||||
|
On the first successful run, it will create a ShapedDevices.csv file.
|
||||||
|
You can modify the network.json file manually to reflect Site/AP bandwidth limits.
|
||||||
|
ShapedDevices.csv will be overwritten every time the Powercode integration is run.
|
||||||
|
You have the option to run integrationPowercode.py automatically on boot and every 10 minutes, which is recommended. This can be enabled by setting ```automaticImportPowercode = True``` in ispConfig.py
|
||||||
|
|
||||||
|
## Sonar Integration
|
||||||
|
|
||||||
|
First, set the relevant parameters for Sonar (sonar_api_key, sonar_api_url, etc.) in ispConfig.py.
|
||||||
|
|
||||||
|
To test the Sonar Integration, use
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python3 integrationSonar.py
|
||||||
|
```
|
||||||
|
|
||||||
|
On the first successful run, it will create a ShapedDevices.csv file.
|
||||||
|
If a network.json file exists, it will not be overwritten.
|
||||||
|
You can modify the network.json file to more accurately reflect bandwidth limits.
|
||||||
|
ShapedDevices.csv will be overwritten every time the Sonar integration is run.
|
||||||
|
You have the option to run integrationSonar.py automatically on boot and every 10 minutes, which is recommended. This can be enabled by setting ```automaticImportSonar = True``` in ispConfig.py
|
||||||
|
|
||||||
## Splynx Integration
|
## Splynx Integration
|
||||||
|
|
||||||
@ -31,4 +62,4 @@ python3 integrationSplynx.py
|
|||||||
On the first successful run, it will create a ShapedDevices.csv file.
|
On the first successful run, it will create a ShapedDevices.csv file.
|
||||||
You can manually create your network.json file to more accurately reflect bandwidth limits.
|
You can manually create your network.json file to more accurately reflect bandwidth limits.
|
||||||
ShapedDevices.csv will be overwritten every time the Splynx integration is run.
|
ShapedDevices.csv will be overwritten every time the Splynx integration is run.
|
||||||
You have the option to run integrationSplynx.py automatically on boot and every 30 minutes, which is recommended. This can be enabled by setting ```automaticImportSplynx = True``` in ispConfig.py
|
You have the option to run integrationSplynx.py automatically on boot and every 10 minutes, which is recommended. This can be enabled by setting ```automaticImportSplynx = True``` in ispConfig.py
|
||||||
|
@ -83,6 +83,17 @@ powercode_api_key = ''
|
|||||||
# Everything before :444/api/ in your Powercode instance URL
|
# Everything before :444/api/ in your Powercode instance URL
|
||||||
powercode_api_url = ''
|
powercode_api_url = ''
|
||||||
|
|
||||||
|
# Sonar Integration
|
||||||
|
automaticImportSonar = False
|
||||||
|
sonar_api_key = ''
|
||||||
|
sonar_api_url = '' # ex 'https://company.sonar.software/api/graphql'
|
||||||
|
# If there are radios in these lists, we will try to get the clients using snmp. This requires snmpwalk to be install on the server. You can use "sudo apt-get install snmp" for that. You will also need to fill in the snmp_community.
|
||||||
|
sonar_airmax_ap_model_ids = [] # ex ['29','43']
|
||||||
|
sonar_ltu_ap_model_ids = [] # ex ['4']
|
||||||
|
snmp_community = ''
|
||||||
|
# This is for all account statuses where we should be applying QoS. If you leave it blank, we'll use any status in account marked with "Activates Account" in Sonar.
|
||||||
|
sonar_active_status_ids = []
|
||||||
|
|
||||||
# Splynx Integration
|
# Splynx Integration
|
||||||
automaticImportSplynx = False
|
automaticImportSplynx = False
|
||||||
splynx_api_key = ''
|
splynx_api_key = ''
|
||||||
|
@ -27,6 +27,13 @@ def pullMikrotikIPv6():
|
|||||||
# pass
|
# pass
|
||||||
list_arp4 = api.get_resource('/ip/arp')
|
list_arp4 = api.get_resource('/ip/arp')
|
||||||
entries = list_arp4.get()
|
entries = list_arp4.get()
|
||||||
|
for entry in entries:
|
||||||
|
try:
|
||||||
|
macToIPv4[entry['mac-address']] = entry['address']
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
list_dhcp4 = api.get_resource('/ip/dhcp-server/lease')
|
||||||
|
entries = list_dhcp4.get()
|
||||||
for entry in entries:
|
for entry in entries:
|
||||||
try:
|
try:
|
||||||
macToIPv4[entry['mac-address']] = entry['address']
|
macToIPv4[entry['mac-address']] = entry['address']
|
||||||
@ -35,6 +42,11 @@ def pullMikrotikIPv6():
|
|||||||
list_binding6 = api.get_resource('/ipv6/dhcp-server/binding')
|
list_binding6 = api.get_resource('/ipv6/dhcp-server/binding')
|
||||||
entries = list_binding6.get()
|
entries = list_binding6.get()
|
||||||
for entry in entries:
|
for entry in entries:
|
||||||
|
if len(entry['duid']) == 14:
|
||||||
|
mac = entry['duid'][2:14].upper()
|
||||||
|
macNew = mac[0:2] + ':' + mac[2:4] + ':' + mac[4:6] + ':' + mac[6:8] + ':' + mac[8:10] + ':' + mac[10:12]
|
||||||
|
macToIPv6[macNew] = entry['address']
|
||||||
|
else:
|
||||||
try:
|
try:
|
||||||
clientAddressToIPv6[entry['client-address']] = entry['address']
|
clientAddressToIPv6[entry['client-address']] = entry['address']
|
||||||
except:
|
except:
|
||||||
|
Loading…
Reference in New Issue
Block a user