OpenJTS

image1

Pick-up OpenJTS VM

Depending on your student number, pick up the corresponding OpenJTS VM X, where X is the Student Number.

Connect to the OpenJTS VM with SSH and follow the next steps.

Download and install OpenJTS stack

Downloading and installing the OpenJTS stack is straightforward. Few commands are needed if you keep default parameters, such as using default ports and clear-text gPRC/gNMI sessions. First, from your OpenJTS VM, once connected to the Linux VM (labuser/Juniper!1) create a dedicated JTS directory under /opt:

sudo su
>> fill in the password: Juniper!1

mkdir /opt/JTS

cd /opt/JTS

Then, download/clone the OpenJTS repository – Do not forget the trailing “dot”.

git clone https://github.com/door7302/openjts.git .

Build OpenJTS and start the stack

The first time you launch the OpenJTS stack, each container will be fetched either from DockerHub or GitHub and will be compiled. This could take a few minutes. Be patient. As mentioned, only the first time will request more time to boot up the stack - further start will take only few seconds.

From your OpenJTS VM, move first in ./compose directory, and launch the stack:

cd /opt/JTS/compose

docker compose up -d

At the end of the compilation process, you should see all the containers up and running:

  Network compose_default  Created                                                                                                                      0.2s 
  Container jtso           Started                                                                                                                      0.6s 
  Container influxdb       Started                                                                                                                      0.5s 
  Container kapacitor      Started                                                                                                                      1.6s 
  Container grafana        Started                                                                                                                      1.6s 
  Container telegraf_vmx   Started                                                                                                                      1.3s 
  Container telegraf_ptx   Started                                                                                                                      1.7s 
  Container telegraf_acx   Started                                                                                                                      1.1s 
  Container telegraf_mx    Started   

Initial MX configuration

Depending on your student Number X (refer to Table 1), connect to the MX attached to your OpenJTS VM and apply this initial configuration:

  • Add a jts user (pwd: grpc123)

  • Enable netconf server

  • Enable gRPC server (clear text) that listens to tcp port 9339

Either on MX-1 or MX-2, depending on your student Number:

edit private 

set system login user jts class read-only
set system login user jts authentication encrypted-password "$6$R51AUuu/$N5UP3yv.HYt3/rhLh1JXvpXNRQaMxtr1dvZyZCNJgf/i5dtzDVWrEAnt87ZStajIXmrai9VeWjgYMmDD1DJVf0"
set system services netconf ssh
set system services extension-service request-response grpc clear-text port 9339
set system services extension-service request-response grpc max-connections 30

commit and-quit 

Initial OpenJTS configuration

Once your OpenJTS stack is up and running, you can access its Web UI. From the JCL lab’s sandbox, click on the “More Options” arrow and select HTTP to open the main OpenJTS Web page.

image2

You should see the following web page, which gives you each container’s status. Unsed containers are automatically shutdown by the JTSO (JTS Orchestrator).

image3

Fill in the credentials

Go on to the “Credentials” page, and for both Netconf and gRPC credentials fill in the Username=jts and the Paswword=grpc123. Then apply the changes (button “Update”)

image4

Add your MX router in your inventory

Go on to the “Routers” page, and depending on which MX router is connected to your OpenJTS VM, add a short name + the IP address of your MX.

Student Number X

MX Name

MX loopback

1 to 5

MX-1

193.252.1.1

6 to 10

MX-2

193.252.1.2

Once the “Add router” button is pressed, automatically, a Netconf session will be established between OpenJTS and the remote router, and some facts, such as the router’s model, version, and family, will be gathered.

image5

Test gNMI connectivity

The simplest way to test the gNMI connectivity between your OpenJTS VM and your router is to use the embedded “Browser” tool. This tool is usually used to troubleshoot a sensor path or build a new JTS profile.

Let’s try, go on to the “Browser” page, select you MX in the list and try to browse the well-known OpenConfig “platform” sensor path starting from: /components/component Unselect the “Merge…” option to have the full sensor path view.

The data collection takes around 1 to 2 minutes. You can follow the paths extracted in real-time.

image6

Once the data collection is finished, you can navigate into the results via a Tree View representation. You can also search for a given “string,” such as “fpc,” in the example below. All the Keys and Values matching the string will be highlighted.

image7

Profile(s) assignement

It’s time to start collecting some Telemetry sensors. Go to the “Profiles” page and select your MX router in the list. Then, select three profiles: BGP, Traffic, and Health profiles. Finally, press the “Create Association” button.

The OpenJTS stack is automatically fully reconfigured, data collection starts, and KPIs are saved in the database.

image8

You can switch to the “Home” page to see if the “VMX Telegraf” container has been started.

Profile(s) Documentation

Before visualizing data using pre-included Dashboards, let’s examine the Documentation menu. Go to the “Doc” page and select one profile in the list. For instance, select the Health profile. This menu helps you determine which sensor paths have been subscribed and which specific counters. A color indicates the type of DataModel: Native vs. OpenConfig.

image9

Visualize data

It’s time to switch to Grafana. From JCL lab’s sandbox, click on the “More Options” arrow and select HTTP UserDef1 to open the main page of Grafana.

image10

You can select one of the available Dashboards associated with the profiles you assigned to your router. For the “Health” profile, prefer to use the dedicated “VMX ROUTER Health” profile.

Note: VMX does not support all the Telemetry paths - some data may be missing.

Stop OpenJTS and clean your VM

Before leaving the Hands-on lab, take care to stop the OpenJTS stack - From your OpenJTS VM:

sudo su
>> fill in the password: Juniper!1

cd /opt/JTS/compose

docker compose down

And finally clean all the containers for the next student:

docker system prune -a -f

You can now close all terminals. Thank you