Table of Contents
Zabbix is used in the appCatalog to maintain the reference data about spectrum monitoring stations, including updated fix site locations and logical address to access each station.
Source data for zabbix is provided in the form of:
- templates, definining itens, triggers, graphs and other artifacts that control how zabbix will monitor the existing hosts.
- external checks, intended to be used to capture and process specific information from hosts, when is not practical to use standard item types.
Zabbix documentation can be found at: https://www.zabbix.com/documentation/current/en/manual
The rationale behind the use of Zabbix is to provide a full feature tool for the day-to-day business of managing operations and maintenance for the spectrum monitoring network and, using the same database, automate file transfers and integration process that maintain the data flow from stations to central servers.
Initial attempts of using simple tools like rsync and similar tools to backup data produced by the monitoring stations failed due to the lack of support to the maintenance of the infrastructure, limitations in file handling capabilities and the services needed to maintain a central station database.
when operating the monitoring network, many problems arises that may affect the data collection and processing, including changes in IP, location and other issues. Thus retrieving a large set of metadata by the network monitoring tool enable a more reliable automation of the data gathering process.
This section of the repository includes the following vase folders:
automation
folder reference to legacy automation scripts cloned from a private project by Guilherme Braga <https://github.com/gui1080>templates
present XML definitions of used measurement templatesroot
present the folder structure from the zabbix server with in-place external checks used by the described templates
Templates can be loaded directly from Zabbix web interface.
Some of the templates will require external script that are provided under the root folder.
External scripts should be stored in the defined folder and properties should be setup to reduce the associated security risks, e.g., for the queryDigitizer.py script one must run the following commands in the shell CLI and with SU privileges.
chmod 700 queryDigitizer.py
chown zabbix queryDigitizer.py
chgrp zabbix queryDigitizer.py
Existing python script uses only standard libraries, thus, no special setup is required.
In the event that more sophisticated processing is required, the use of environments and additional setup may be required.
External Check | Description |
---|---|
queryDigitizer.py |
Perform VISA SCPI query of the CW RMU digitizer in order to acquire information about the receiver identification, environmental and location data. |
queryLoggerUDP.py |
Perform UDP query of rfeye logger stream created according to the rfeye logger example script |
rfeyeIPname.py |
Change host IP according to the host identification obtained via Mac Address. Uses the http://<IP>/cgi-bin/ifconfig.cgi to obtain the MAC in the format: HWaddr 00:1e:89:00:MN:OP where the last digits (MN:OP ) corresponds to the equipment serial for the station rfeye00MNOP . If using fixed IP and hostname does not match the current host, change IP from the two hosts (identified and configured). If using DNS, generate alert for VPN key misplacement |
dnsIPswitch.py |
Change the zabbix active host direction from IP to DNS and vice versa in case there is an IP configured and the current configuration fail to respond within X retries |
siteData.py |
Update group and tag information for the host based on configured sites and reverse geolocation data using OSM nominatin |
This section presents a simplified view of the roadmap and knwon issues.
For more details, see the open issues
- Rfeye node
- Station availability status (ICMP)
- Station id
- Network data
- Processor and storage data
- Environment data
- GPS data
- Autonomous monitoring status (logger/script)
- Remote operation status (rfeye site 9999)
- Monitoring alert status (mask broken alert)
- CW RMU
- Station availability status (ICMP)
- Station id
- digitizer serial number
- Network data
- Processor and storage data
- Environment data
- GPS data
- Autonomous monitoring status (cwsm script)
- Remote operation status (cst status)
- Monitoring alert status (mask broken alert)
- UMS300
- Station availability status (ICMP)
- Station id
- Network data
- Processor and storage data
- Environment data
- GPS data
- Autonomous monitoring status (argus script)
- Remote operation status (argus ports)
- Monitoring alert status (mask broken alert)
- ERMx
- Station availability status (ICMP)
- Station id
- Network data
- Processor and storage data
- Environment data
- Volt Smartweb
- GPS data
- Autonomous monitoring status (appColeta script)
- Operation status (appColeta stream)
- Monitoring alert status (appColeta alert)
- VPN Server (OpenVPN)
- Server availability status (ICMP)
- Server resources (CPU, Memory, Process load, Storage)
- Openvpn log
- Monitor and Automation (Zabbix)
- Server availability status (ICMP)
- Server resources (CPU, Memory, Process load, Storage)
- Server
- Publish (Landel)
- Server availability status (ICMP)
- Server resources (CPU, Memory, Process load, Storage)
- Data catalog processing status
- Data Storage (RepoSFI)
- Storage availability status (ICMP)
- Available/used space in live area
- Available/used space in offload area
- File area transfer automation process status
- Data Analytics (appWeb)
- Server resources (CPU, Memory, Process load, Storage)
- Matlab web server status
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Distributed under the GNU General Public License (GPL), version 3. See LICENSE.txt
.
For additional information, please check https://www.gnu.org/licenses/quick-guide-gplv3.html
This license model was selected with the idea of enabling collaboration of anyone interested in projects listed within this group.
It is in line with the Brazilian Public Software directives, as published at: https://softwarepublico.gov.br/social/articles/0004/5936/Manual_do_Ofertante_Temporario_04.10.2016.pdf
Further reading material can be found at: