All Projects → rtr-nettest → open-rmbt

rtr-nettest / open-rmbt

Licence: Apache-2.0 License
RTR-NetTest Open Source repository

Programming Languages

java
68154 projects - #9 most used programming language
PLpgSQL
1095 projects
HTML
75241 projects

Projects that are alternatives of or similar to open-rmbt

tcping
tcping command, written with Objective-C, on macOS,tcping for mac,ping over a tcp connection
Stars: ✭ 219 (+630%)
Mutual labels:  speedtest
netcheck
A shell script to check and log when your internet connection goes down.
Stars: ✭ 138 (+360%)
Mutual labels:  speedtest
CloudflareSpeedTest
🌩「自选优选 IP」测试 Cloudflare CDN 延迟和速度,获取最快 IP (IPv4 / IPv6)!另外也支持其他 CDN / 网站 IP ~
Stars: ✭ 5,092 (+16873.33%)
Mutual labels:  speedtest
docker-speedtest-influxdb
Speedtest results to InfluxDB for Grafana
Stars: ✭ 20 (-33.33%)
Mutual labels:  speedtest
ancistrus
Netgear's D7000 Nighthawk Router Experience Distributed Project
Stars: ✭ 61 (+103.33%)
Mutual labels:  speedtest
speedy
Test, track, monitor and analyze your internet speed.
Stars: ✭ 35 (+16.67%)
Mutual labels:  speedtest
HowSlow
A Service Worker that monitors network requests to estimate bandwidth and RTT
Stars: ✭ 38 (+26.67%)
Mutual labels:  speedtest
docker-internet-speedtest-dashboard
Docker based Internet Speedtest Dashboard powered by InfluxDB, Chronograf, and Speedtest-CLI
Stars: ✭ 15 (-50%)
Mutual labels:  speedtest
speedInspectorRPI
A docker image with a cronjob running speedtest, audit your internet connection/ISP
Stars: ✭ 12 (-60%)
Mutual labels:  speedtest
speedtest-android
Android app template for Librespeed servers
Stars: ✭ 209 (+596.67%)
Mutual labels:  speedtest
network-speed
Node light weight module to check network speed (upload/download)
Stars: ✭ 69 (+130%)
Mutual labels:  speedtest
fast
fast.com cli speedtest
Stars: ✭ 46 (+53.33%)
Mutual labels:  speedtest
speed-cloudflare-cli
📈 Measure the speed and consistency of your internet connection using speed.cloudflare.com
Stars: ✭ 99 (+230%)
Mutual labels:  speedtest
speedtest-exporter
Speedtest Exporter made in python using the official speedtest bin
Stars: ✭ 118 (+293.33%)
Mutual labels:  speedtest
SpeedTest-php
a speedtest php site
Stars: ✭ 28 (-6.67%)
Mutual labels:  speedtest
fast-speedtest-api
fast.com API / CLI tool
Stars: ✭ 138 (+360%)
Mutual labels:  speedtest
speedtest
A self-hosted, lightweight HTML5 speed test implemented in JavaScript, based on Web Workers and XMLHttpRequest.
Stars: ✭ 154 (+413.33%)
Mutual labels:  speedtest
vultr-pingtest
⌚ Test Latency from all Vultr VPS Locations
Stars: ✭ 40 (+33.33%)
Mutual labels:  speedtest
Nano-SpeedTest
Webapp to test speed of Nano Transactions
Stars: ✭ 26 (-13.33%)
Mutual labels:  speedtest
zabbix-template-speedtest
Speedtest template for zabbix
Stars: ✭ 28 (-6.67%)
Mutual labels:  speedtest

Open-RMBT

Open-RMBT is an open source, multi-threaded bandwidth measurement system.

It consists of the following components:

  • Web site
  • JavaScript client
  • Android client
  • iOS client
  • Measurement server
  • QoS measurement server (in this repository)
  • Control server
  • Statistics server (in this repository)
  • Map server (in this repository)

Open-RMBT is released under the Apache License, Version 2.0. It was developed by the Austrian Regulatory Authority for Broadcasting and Telecommunications (RTR-GmbH).

Related materials

System requirements

  • 1-3 servers

  • Everything can be installed on a single server

  • The test servers (RMBT and Websocket) should run on a physical machine

  • Base system Debian 11 or newer (or similar)

  • At least one static IPv4 address (IPv6 support recommended, more addresses allow to run more services on port 443)

    NOTE: other Linux distributions can also be used, but commands and package names may be different

Installation

For each server:

  1. Setup IP/DNS/hostname
  2. firewall (e.g. iptables)
  3. Install git
  4. Install and configure sshd
  5. Install and configure ntp
  6. dpkg-reconfigure locales (database requires en_US.UTF-8)
  7. dpkg-reconfigure tzdata
  8. Install and configure letsencrypt

Database Server

  1. Install:

    • postgresql (version 13 and higher)
    • postgresql-common
    • postgresql-contrib
    • postgis
    • postgresql-13-postgis-3
    • for quantile extension; Install:
      • devscripts
      • sudo
      • postgresql-server-dev-all (or ..-10)
      • pgxnclient
      • Run: pgxn install quantile
  2. Run:

    su - postgres
    createuser -lSRD rmbt     # (set db pass)
    createuser -lSRDP rmbt_control     # (set db pass)
    createuser -LSRD rmbt_group_control
    createuser -LSRD rmbt_group_read_only
    echo 'GRANT rmbt_group_read_only TO rmbt_group_control;' | psql
    echo 'GRANT rmbt_group_control TO rmbt_control;' | psql
    createdb -O rmbt rmbt
    
    # (additional users might be needed for replication and nagios)
    
    # if not using postgis 3, set the correct version
    #> sed -i "s/postgis-3/postgis-X\.Y/g rmbt.sql"
    cat rmbt.sql | psql rmbt -1
    cat rmbt_init.sql | psql rmbt -1

    (optional: add additional open databases, eg. Corine)

  3. Edit table "test_server"

    You need to add the test server key to the test_server table.

  4. Optimise postgres settings

    Check the values of

    • shared_buffers
    • work_mem
    • max_worker_processes
    • max_parallel_workers_per_gather
    • max_parallel_workers

Control-, Map- and StatisticServer

  1. Install:
  • Apache Tomcat 8 or higher
  • nginx (optional, highly recommended)
  • openjdk-8-jre (do not use a higher version)
  • libservlet3.1-java
  • Maxmind GeoLite2 database
  • Optional: For StatisticServer pdf export functionality
    • Prince or
    • Weasyprint. For weasyprint, install as user tomcat (not as root):
      • python3
      • python3-pip
      • run pip3 install weasyprint
  1. Edit /etc/tomcat8/context.xml (substitute parts with []), add to <Context>:

    For control server:

    <Context>
    <!-- [...] -->
    <Resource 
       name="jdbc/rmbt" 
       auth="Container"
       type="javax.sql.DataSource"
       maxActive="200" maxIdle="10" maxWait="10000"
       url="jdbc:postgresql://[db host]/rmbt"
       driverClassName="org.postgresql.Driver"
       username="rmbt_control" password="[db r/w pass]"
       description="DB RW Connection" />
    <Parameter name="RMBT_SECRETKEY" value="[rmbt qos secret key]" override="false" />
    <!-- [...] -->
    </Context>

    For statistic/map servers:

    <Context>
    <!-- [...] -->
    <Resource 
       name="jdbc/rmbtro" 
       auth="Container"
       type="javax.sql.DataSource"
       maxActive="200" maxIdle="10" maxWait="10000"
       url="jdbc:postgresql://[db host]/rmbt"
       driverClassName="org.postgresql.Driver"
       username="rmbt" password="[read only pass]"
       description="DB RO Connection" />
    <!-- [...] -->
    </Context>
     
  2. Build the servers

    The servers can be built with gradle:

    ./gradlew :RMBTControlServer:war :RMBTMapServer:war :RMBTStatisticServer:war

    The war files are then located in RMBT[Control|Map|Statistic]Server/build/lib.

  3. Copy RMBTControlServer.war, RMBTMapServer.war and/or RMBTStatisticServer.war to /var/lib/tomcat8/webapps/

    In case the Java-Postgres connector is missing: Add the package libpostgresql-jdbc-java and restart tomcat8.

  4. Run service tomcat8 restart

  5. Optimize tomcat settings

    Check the values in /etc/default/tomcat8

    • JAVA_OPTS -Xmms MEM -Xmx MEM

Get in Touch

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].