ONESv4.1 Agent support to send telemetry on multiple controllers (Max 2)
Dial-out feature
Restrict IP feature can be enabled/disabled
Only Collector upgrade after Deployment is possible now
Password-based authentication is supported
Using the Restrict IP feature agent will discover the ONES Controller and will update the entry on the ONES App with all the feature metrics
Need to add a few inputs while installing the agent
Controller IP //To restrict the telemetry streaming
Device Credentials
Layer
Region
type
groupid
fabric
azid
brickid
rackid
Installation
On the Application machine, go to ONES-4.1/ones_t_agent folder
root@ones-application:~$ cd /ONES-4.1/ones_t_agent
Installation (Agent Install on multiple switches at the same time)
Enter device details (Management IP, Username and Password ) in device_info.csv
root@ones-application/ONES-4.1/ones_t_agent:~$ vi device_info.csv
The user needs to add all the required details in the CSV file, This CSV file will be used to push this information to agent.conf(/etc/sonic/agent.conf) file to every switch and ones-agent on the switch will pick the details from agent.conf file and will register itself to ONES controller with all the given parameters
this helps a NetOps engineer to directly add a CSV file containing all the details, The Engineer needs not to add one by one devices on the controller which actually is time-consuming
The user must maintain the layer names exactly as specified above (case-sensitive). If the user inputs names that differ from these, they may encounter issues when using the ONES application.
Save the File
Executing the installation script can be used for installing a telemetry agent on one or more devices in the data centre.
The installer file automatically detects & will process fresh installation or upgrade to the new version
While upgrading, all the previous files will automatically get deleted on the Switch
If users want to use the certificate for GNMI & Auto-Registration, so users need to put the certificate in directory gnmi-certs(for GNMI) & auto-reg-certs(for Agent Auto Registration)
User will have option to update creds inc ase ONES-Agent is already installed
Users can use ONES-Agent as an integrated service in SONiC OS or can use it as an independent third-party container.
Users can choose this option to only update one more controller IP without doing the complete agent installation.
Scripts asks to put the Controller IP to use auto-discovery feature
User can only add 2 Controller IP to restrict the telemetry streaming
User can choose the restriction to send telemetry to collector IP only
It's important to restrict collector IP as No in case the running network has NAT translation from private to public IP for ONES server access from the device.
User can enable password based authentication between agnet and collector
Installation Begin
Now Agent will only stream the metrics to the given controller & will autoregister on the ONES-App
The user needs to make sure, The devices have a unique name, otherwise, there will issue while plotting the full topology view(Topology Page).
Do you want to update the username/password for password authentication? (Yes/No): No
Does the ONES-agent is integrated with SONiC NOS? (yes/no): no
Do you want to add only Collector IP for auto-discovery and skip the agent installation ?(yes/no): no
Enter the ip address of all collectors to auto-discover. Do not enter more than 2. Eg - 10.1.1.10,10.2.2.5: 10.20.0.235
Collector IPs accepted: 192.168.1.100
Do you want to restrict access only to provided collector ip?
Note: Providing Yes will restrict access to agent only with the provided collector IP Address
Enter Yes/No : Yes
Do you want to enable password authentication? (yes/no): yes
Enter the new username: admin
Enter the new password: YourPaSsWoRd
root@aviz:/home/aviz/ones-1754654734-onprem/ones_t_agent# ./ones_agent_parallel_installer.sh
Do you want to update the username/password for password authentication? (Yes/No): No
Does the ONES-agent is integrated with SONiC NOS? (Yes/No): No
Do you want to add only Collector IP for auto-discovery and skip agent installation and other parameters in devices_info.csv ? (Yes/No): No
Enter the ip address of all collectors to auto-discover. Do not enter more than 2. Eg - 10.1.1.10,10.2.2.5: 192.168.1.100
Collector IPs accepted: 192.168.1.100
Do you want to restrict access only to the provided collector IP?
Note: Providing Yes will restrict access to agent only with the provided collector IP Address
Enter Yes/No: No
Do you want to enable password authentication? (Yes/No): Yes
Enter the username: admin
Enter the password: ********
Installing ONES Telemetry Agent
......................................................
Docker image 'avizdock/agent_installer' is loaded.
Docker container 'agent_installer' is running.
Selecting ‘Yes’ will exclusively initiate the day-2 deployment of the Ones-Agent,
involving a reconfiguration of the existing agent to establish communication with the specified collector(s).
Choosing ‘No’ will initiate the deployment of the Ones-Agent as an independent third-party container.
The default values for rackid, brickid, and azid are all set to 0.
[{'ip': '192.168.2.12', 'user': 'admin', 'passwd': 'YourPaSsWoRd', 'layer': 'Leaf', 'region': 'Nyk', 'type': 'Sonic', 'fabricid': 'Dc', 'groupid': '1', 'azid': '1', 'brickid': '1', 'rackid': '1', 'installation_instance': 1, 'agentip': '10.20.12.22', 'collectorip': '10.20.0.76', 'restrict_collector_ip': 'no', 'password_authentication': 'yes', 'username': 'admin', 'encpass': '5f413a70516d342a05d576fa', 'enciv': 'd7c4e7d83e49053864ae6cc1f2cf9e5b'}, {'ip': '10.20.12.23', 'user': 'admin', 'passwd': 'YourPaSsWoRd', 'layer': 'Leaf', 'region': 'Nyk', 'type': 'Sonic', 'fabricid': 'Dc', 'groupid': '1', 'azid': '1', 'brickid': '1', 'rackid': '1', 'installation_instance': 1, 'agentip': '10.20.12.23', 'collectorip': '10.20.0.76', 'restrict_collector_ip': 'no', 'password_authentication': 'yes', 'username': 'admin', 'encpass': '5f413a70516d342a05d576fa', 'enciv': 'd7c4e7d83e49053864ae6cc1f2cf9e5b'}]
############### Connecting to switch with IP 192.168.2.12 ###############
############### Connecting to switch with IP 192.168.2.13 ###############
Connection to switch 192.168.2.12 successful.....................
Fetching device details before agent installation...
Connection to switch 192.168.2.13 successful.....................
Fetching device details before agent installation...
+--------------+--------------------------------+----------------------+----------+--------------+
| IP Address | Platform | HwSKU | ASIC | ASIC Count |
+==============+================================+======================+==========+==============+
| 192.168.2.12 | x86_64-dellemc_s5248f_c3538-r0 | DellEMC-S5248f-P-25G | broadcom | 1 |
+--------------+--------------------------------+----------------------+----------+--------------+
Looking for previous installation........................
+--------------+--------------------------------+----------------------+----------+--------------+
| IP Address | Platform | HwSKU | ASIC | ASIC Count |
+==============+================================+======================+==========+==============+
| 192.168.2.13 | x86_64-dellemc_s5248f_c3538-r0 | DellEMC-S5248f-P-25G | broadcom | 1 |
+--------------+--------------------------------+----------------------+----------+--------------+
Looking for previous installation........................
ones-agent:v4.1.0
Previous installation found commencing uninstallation on the device 192.168.2.12........
stop ones-agent docker on the device 192.168.2.12........
ones-agent:v4.1.0
Previous installation found commencing uninstallation on the device 192.168.2.13........
stop ones-agent docker on the device 192.168.2.13........
docker stopped successfully on the device 192.168.2.12........
remove ones-agent docker on the device 192.168.2.12........
docker stopped successfully on the device 192.168.2.13........
remove ones-agent docker on the device 192.168.2.13........
docker removed successfully on the device 192.168.2.12........
remove redundant ones-agent docker container on the device 192.168.2.12........
docker removed successfully on the device 192.168.2.13........
remove redundant ones-agent docker container on the device 192.168.2.13........
No redundant ones-agent container found on the device 192.168.2.12........
remove docker ones-agent images from DUT on the device 192.168.2.12........
No redundant ones-agent container found on the device 192.168.2.13........
remove docker ones-agent images from DUT on the device 192.168.2.13........
docker image removed successfully on the device 192.168.2.12........
Removing work directory on the device 192.168.2.12........
removed work directory successfully on the device 192.168.2.12........
#####ones-agent uninstallation completed from device=########## 192.168.2.12
docker image removed successfully on the device 192.168.2.13........
Removing work directory on the device 192.168.2.13........
removed work directory successfully on the device 192.168.2.13........
#####ones-agent uninstallation completed from device=########## 192.168.2.13
Checking if ones-agent container exists...
Creating work directory on the device 192.168.2.12........
Checking if ones-agent container exists...
...
...
...
Installation proceeding with NoTls mode
monit_ones_agent file copied to /etc/monit/conf.d successfully on the device 192.168.2.13........
Permissions set for monit_ones_agent successfully on the device 192.168.2.13........
Installation proceeding with NoTls mode
Copying agent.conf to directory ones-agent_1766055112_692205 successful on the device 192.168.2.12 .............
Copying agent.conf to directory ones-agent_1766055112_8225505 successful on the device 192.168.2.13 .............
agent.conf copied to /etc/sonic successfully on the device 192.168.2.12........
Copying ones-agent.tar to directory ones-agent_1766055112_692205 on the device 192.168.2.12 .............
agent.conf copied to /etc/sonic successfully on the device 192.168.2.13........
Copying ones-agent.tar to directory ones-agent_1766055112_8225505 on the device 192.168.2.13 .............
Copying ones-agent.tar to directory ones-agent_1766055112_8225505 on the device 192.168.2.13 .............
Loading Docker image on the device 192.168.2.13 ###########################################
Copying ones-agent.tar to directory ones-agent_1766055112_692205 on the device 192.168.2.12 .............
Loading Docker image on the device 192.168.2.12 ###########################################
Docker image loaded successfully on the device 192.168.2.12........
Getting name of the loaded image
image = ##ones-agent:v4.1.0##
Running docker.....................
Restarting monit service to enable the configuration on the device 192.168.2.12........
Docker image loaded successfully on the device 192.168.2.13........
Getting name of the loaded image
image = ##ones-agent:v4.1.0##
Running docker.....................
Restarting monit service to enable the configuration on the device 192.168.2.13........
Monit service restarted successfully on the device 192.168.2.13........
Checking status of monit service on the device 192.168.2.13........
Monit service status:
● monit.service - LSB: service and resource monitoring daemon
Loaded: loaded (/etc/init.d/monit; generated)
Active: active (running) since Thu 2025-12-18 10:53:44 UTC; 111ms ago
Docs: man:systemd-sysv-generator(8)
Process: 1734724 ExecStart=/etc/init.d/monit start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 19082)
Memory: 1.1M
CGroup: /system.slice/monit.service
└─1734730 /usr/bin/monit -c /etc/monit/monitrc
Dec 18 10:53:44 Dell5248-6014 systemd[1]: Starting monit.service - LSB: service and resource monitoring daemon...
Dec 18 10:53:44 Dell5248-6014 monit[1734728]: Starting Monit 5.20.0 daemon with http interface at /var/run/monit.sock
Dec 18 10:53:44 Dell5248-6014 monit[1734728]: Monit start delay set to 300s
Dec 18 10:53:44 Dell5248-6014 monit[1734724]: Starting daemon monitor: monit.
Dec 18 10:53:44 Dell5248-6014 systemd[1]: Started monit.service - LSB: service and resource monitoring daemon.
docker run -v /var/log:/var/log -v /proc:/host_proc --pid=host -it -v /var/run/docker.sock:/var/run/docker.sock -v /host/reboot-cause:/host/reboot-cause -v /etc/sonic:/etc/sonic -v /var/run/redis:/var/run/redis -v /var/run:/var/hostrun --log-driver local --log-opt max-size=5m --log-opt max-file=3 --cpu-period=100000 --cpu-quota=50000 --cpu-shares=512 --net=host --privileged -dt --name ones-agent ones-agent:v4.1.0
Monit service restarted successfully on the device 192.168.2.12........
Checking status of monit service on the device 192.168.2.12........
Monit service status:
● monit.service - LSB: service and resource monitoring daemon
Loaded: loaded (/etc/init.d/monit; generated)
Active: active (running) since Thu 2025-12-18 10:53:42 UTC; 109ms ago
Docs: man:systemd-sysv-generator(8)
Process: 1079879 ExecStart=/etc/init.d/monit start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 19082)
Memory: 1.1M
CGroup: /system.slice/monit.service
└─1079885 /usr/bin/monit -c /etc/monit/monitrc
Dec 18 10:53:42 Dell5248-6013 systemd[1]: Starting monit.service - LSB: service and resource monitoring daemon...
Dec 18 10:53:42 Dell5248-6013 monit[1079883]: Starting Monit 5.20.0 daemon with http interface at /var/run/monit.sock
Dec 18 10:53:42 Dell5248-6013 monit[1079883]: Monit start delay set to 300s
Dec 18 10:53:42 Dell5248-6013 monit[1079879]: Starting daemon monitor: monit.
Dec 18 10:53:42 Dell5248-6013 systemd[1]: Started monit.service - LSB: service and resource monitoring daemon.
docker run -v /var/log:/var/log -v /proc:/host_proc --pid=host -it -v /var/run/docker.sock:/var/run/docker.sock -v /host/reboot-cause:/host/reboot-cause -v /etc/sonic:/etc/sonic -v /var/run/redis:/var/run/redis -v /var/run:/var/hostrun --log-driver local --log-opt max-size=5m --log-opt max-file=3 --cpu-period=100000 --cpu-quota=50000 --cpu-shares=512 --net=host --privileged -dt --name ones-agent ones-agent:v4.1.0
b'5d7cce0b8d4ca132d001ed89c2aab58560ee50547d1f8755e5b60bbed2f51c1d\n'
...
...
...
ones_agent_start.sh file copied successfully on the device 192.168.2.12........
##################################################################
Status of ones-agent.service is - Active: active (running) since Thu 2025-12-18 10:54:48 UTC; 1min 35s ago
removing backup files
removed backup directory successfully on the device 192.168.2.12........
Found running ones-agent version: v4.1.0
Deployment of ones-agent to switch 192.168.2.12 is successful
Deployment of ones-agent to switch 192.168.2.13 is successful
╒═══════════════╤══════════╤═══════════╕
│ IP Address │ Result │ Version │
╞═══════════════╪══════════╪═══════════╡
│ 192.168.2.12 │ Pass │ v4.1.0 │
├───────────────┼──────────┼───────────┤
│ 192.168.2.13 │ Pass │ v4.1.0 │
╘═══════════════╧══════════╧═══════════╛
Docker agent_installer has been stopped
Docker agent_installer has been removed
Docker avizdock/agent_installer image has been removed