Basestation Monitoring with Zabbix
- 1 Introduction
- 2 Minimum Requirements
- 3 Zabbix server Installation
- 4 Basestation configurations
- 5 Zabbix server configurations
- 6 Monitoring Triggers
- 7 Monitoring Unmet Demands
- 8 Monitoring Performance reports
- 9 Receive emails for triggers
This guide will explain how to use Zabbix for monitoring Labkits/Satsite
Critical 3 triggers:
- When S1AP link is down
- When the application restarted
- When the Basestation is down
Unmet demands Showing when the network was unable to meet the demands of UEs/MSs with an indication of the cause.
Performance report Showing the speed and the throughput of the network
In order to have the full functionality as per this guide, you need to have:
- Yate-enb 7825 or newer
- Yate-common 1.7.1 or newer
Note: Yate-common 1.7.1 is not currently part of the public release yet but its released for labkits.
Zabbix server Installation
Zabbix is an enterprise open source monitoring software, is used to monitor and track the status of various network services, servers, and other network hardware.
There are various methods for installing Zabbix server, we are going to use Zabbix appliance on Virtual Box.
- Install VirtualBox on your server
- Download Zabbix Appliance in the ovf extension
- From the VirtualBox -> File -> Import appliance -> browse for Zabbix appliance -> import
- Make sure you are running the desired network setting: Settings -> Network (For our server we are using Bridged Adapter)
- start the Appliance and login with appliance/ zabbix
- apply the command (ifconfig) to know Zabbix IP address
- From any device with reachability to the Zabbix server, open the browser and enter http://<zabbix-server-ip>/zabbix
- You should be able to login with Admin / zabbix
We need to configure Zabbix (TM) PHP active agent for Yate based products. It uses the Zabbix version 1 JSON to push requested data to a Zabbix server. Zabbix.php is an active agent and is included in yate-common rpm package.
- Login to the Labkits/Satsite via ssh (ssh yatebts@<Basestation-IP> -p 54321) and user the credentials yatebts/<unit serial number>
- Open (or create, if it doesn't exist) the configurations file ( /etc/yate/sdr/extmodule.conf) and add the following
- zabbix.php=server OR zabbix.php=server:port
- for multiple servers: zabbix.php=server:port,server:port,...
- systemctl restart yate-sdr.service
Zabbix server configurations
Step1: Add the template to monitor the basestation
All Radio Access Network Templates can be downloaded from Zabbix YateRAN Templates
For more details about what the templates contain and items detail, please refer to Zabbix Monitoring Template Predefined Items
- Save the template template.xml
- Open Zabbix frontend http://<zabbix-server-ip>/zabbix and login with (Admin / zabbix )
- Navigate to configurations -> Template -> Import -> select the file <file>.xml and keep the rules to the default -> Import
- You should get a message with import successfuly and you can find the template when you search for (sdr)
Step 2: Add Basestation as host
- From Zabbix frontend, navigate to configuration -> hosts -> create host
- In the create host page:
- From Host tab
- set Hostname to yate-sdr-ybts-<serial number of the labkit/Satsite>
- Optionally set visible name for how you will see the host
- Create new group for basestations or use any predefined group
- Set the Labkit/Satsite IP address
- Make sure the host is enable
Step 3: Link the host(s) to the template
- Option 1: Link each host by itself: Configuration -> Hosts -> Select the host -> Template tab -> search for Template YateSDR and link it -> press update.
- Option 2: Link for the group of hosts: Configuration -> Templates -> select (Template YateSDR) -> add the group of your hosts in the filed groups -> update.
From Zabbix frontend, navigate to Monitor -> problems to see list of the triggers.
S1AP Link Down
- When the link is detected to be down a trigger called S1AP Disconnected will appear with high severity
- When the link is detected to be recovered , the trigger will be marked as resolved and auto clear the severity
- When the Basestation stops, will show a trigger named Basestation Stopped with high severity.
- when the Basestation is up again, the trigger will be auto resolved and the severity will be cleared
When Yate-sdr service restarts it will show a trigger named Yate-sdr service restarted with average severity.
This trigger automatically clears itself after successful restart of the service and mostly doesn't require any action from the admin.
Monitoring Unmet Demands
Unmet demands shows some indications that UEs are failing to connect or to use the network resources. It meant to give an idea where the problem is happening and how dangerous its affecting the network. This graph is to give a clue of the problem and cannot be used for troubleshooting.
From Zabbix frontend, navigate to Monitor -> Graphs -> Select Group/ host -> Select Basestation Unmet Demands graph from the drop down menu. The graph will show:
- Unanswered paging: Shows the number of paging messages dropped without transmission by the eNodeB
- E-RAP failed attempts: Shows the number of failed attempts while establishing Random Access Procedure.
- low PHRdB: Low power headroom which indicates the UEs are using too much power.
- Percentage of the difference between msg3 and prachs: The percentage of uncompleted connection due to not answering RRC Connection Request (msg3)
- Loss rate for uplink and downlink: Lost packets for uplink and downlink
Note: The UL loss rate item is initially returned as percentage (UL packet loss rate in percent x100) according to 3GPP Section 220.127.116.11. In the template the item is divided by 100 for compatibility with the other items in the graph
Monitoring Performance reports
From Zabbix frontend, navigate to Monitor -> Graphs -> Select Group/ host -> Select Basestation Speed or Basestation Throughput from the drop down menu
Speed report is represented with a graph, showing the bit rate.
Speed report is represented with a graph, showing uplink and downlink throughput
Receive emails for triggers
Zabbix offer sending email notifications when triggers happen.
To configure it:
- Configure the email that will be used to send from: Administration -> media types -> email
- Create a user (if not already exist) from Administration -> Users -> User
- Add email to the user from Administration -> Users -> Media then enter the email address that will receive the notifications
- Create Action to send emails upon trigger. From Configuration -> Actions
- Action tab: Name: Create the name & Conditions: Trigger name contain (string of the trigger you want to have notification for)
- Operation: Add for user or group of users to get email when the trigger happen
- Recovery: Add for user or group of users to get email when the trigger has been recovered
- Update operation: Add for user or group of users to get email when the trigger has been acknowledged
Note: for Gmail users, you need to enable less secure APPs