Skip to content
Bartek Kois edited this page Sep 16, 2017 · 58 revisions

What is GPON Monitor

GPON Monitor is an ASP.NET Core web application intended for quick diagnostic of Dasan Networks GPON OLTs and related ONTs.

GPON Monitor home page

System requirements:

GPON Monitor requires:

  • .NET Core >=2.0.0 compatible server (https://www.microsoft.com/net/core),
  • Dasan Networks OLT running software version 6.xx or higher with configured SNMP service (RW access),
  • routable connection between server and monitored OLT.

Currently supported ONUs:

  • Dasan Networks: H645B, H665, H665G, H640G, H640GW-02, H660GW, H680GW.

Installation and configuration (for Linux Debian 8.0)

Install .NET Core enviroment:

sudo apt-get update
sudo apt-get install curl libunwind8 gettext apt-transport-https
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-jessie-prod jessie main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-get update
sudo apt-get install dotnet-sdk-2.0.0

Install supervisor and nginx:

sudo apt-get install supervisor nginx

Install GPON Monitor binaries

Download, unpack the latest version od GPONMonitor form https://github.com/bartekkois/GPONMonitor/releases and restore dependencies

sudo mkdir -p /var/www_aspnetcore/GPONMonitor
cd /var/www_aspnetcore
curl -sSL -o GPONMonitor-1.0.3.zip https://github.com/bartekkois/GPONMonitor/releases/download/1.0.3/GPONMonitor-1.0.3.zip
sudo unzip GPONMonitor-1.0.3.zip  -d /var/www_aspnetcore/GPONMonitor

Configure monitored OLTs

Configure monitored OLTs in GPONMonitor/devicesconfiguration.json (name and SNMP related variables as shown below).

{
  "DevicesConfiguration": {
    "Devices": [
      {
        "Name": "GPON OLT A",
        "IpAddress": "10.1.1.21",
        "SnmpPort": "161",
        "SnmpVersion": "2",
        "SnmpCommunity": "public",
        "SnmpTimeout": 3000
      },
      {
        "Name": "GPON OLT B",
        "IpAddress": "10.1.1.11",
        "SnmpPort": "161",
        "SnmpVersion": "2",
        "SnmpCommunity": "public",
        "SnmpTimeout": 3000
      },
      {
        "Name": "GPON OLT C",
        "IpAddress": "10.2.1.11",
        "SnmpPort": "161",
        "SnmpVersion": "2",
        "SnmpCommunity": "public",
        "SnmpTimeout": 3000
      }
    ]
  }
} 

Configure and restart supervisor:

Change the default configuration in /etc/supervisor/conf.d/GPONMonitor.conf to:

[program:GPONMonitor]
command=/usr/local/bin/dotnet /var/www_aspnetcore/GPONMonitor/GPONMonitor.dll
directory=/var/www_aspnetcore/GPONMonitor
autostart=true
autorestart=true
stderr_logfile=/var/log/GPONMonitor.err.log
stdout_logfile=/var/log/GPONMonitor.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=www-data
stopsignal=INT

Restart supervisor:

service supervisor restart

Configure and restart nginx:

Change the default configuration in /etc/nginx/sites-available/default to:

server {
        listen 5001 default_server;
        listen [::]:5001 default_server;
        root /var/www_aspnetcore/GPONMonitor;
        server_name _;

        location / {
                    proxy_pass http://localhost:5000;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection keep-alive;
                    proxy_set_header Host $host;
                    proxy_cache_bypass $http_upgrade;
        }
}

Restart nginx:

service nginx restart

Usage

Access GPON Monitor through your web browser at http://your_server_ip:5001

Upgrade

To upgrade application simply stop the supervisor, change GPONMonitor binaries while preserving devicesconfiguration.json and start supervisor.

Security considerations

For security reasons we highly encourage NOT to expose this application to the public internet and to use it ONLY in your intranet or through the VPN.

Other notes

  • Changes in the devicesconfiguration.json requires application to be restarted via supervisor.
  • Any underscore sign '_' in ONUs descriptions is automatically changed to space in order to deal with spaces in the OLT CLI.
  • ONUs can by filtered by the ONU Port ID and ONU ID using an underscore operator (e.g.

3._ - shows all ONUs on Port 3,

3.1_ - shows all ONUs on Port 3 with ID beginning with 1,

3._user - shows all ONUs on Port 3 containing "user" in their name).

Clone this wiki locally