Introduction
This paper will explain SNMP, its importance in network management, how it works, and discuss SNMP features in several monitoring products, both commercial and open-source. It also covers the installation of an open-source monitoring tool and security considerations.
SNMP (Simple Network Management Protocol) is a protocol for monitoring and managing network devices. It’s essential for network information gathering and management.
Understanding SNMP
SNMP operates by placing software agents on devices to monitor them. These agents communicate with the Network Management System (NMS), providing device information and status. The NMS, also known as the SNMP manager, is an interface for privileged users to send commands and receive alerts.
SNMP uses the Management Information Base (MIB) to organize device information with Object Identifiers (OIDs). Key SNMP commands include:
- SNMP Get: Requests device status.
- SNMP GetNext: Retrieves a range of OIDs.
- SNMP Get Response: Responds to SNMP Get or GetNext requests.
Each SNMP command requires a community string, serving as a password for different permissions. The latest SNMP version (v3) includes security algorithms like MD5, SHA, and DES.
Comparison
Commercial Monitoring Products
Product | Price | SNMP Versions | GUI Rating | Alert Capabilities | Support |
---|---|---|---|---|---|
SolarWinds | $27 - $50/month | Any | 9/10 | Yes | Yes |
ManageEngine OP Manager | $245 - $11,545/year | Any | 5/10 | Yes | Yes |
Data Dog | Free - $34/month | Any | 10/10 | Yes | Paid support |
Logic Monitor | $22/month | Any | 8/10 | Yes | Yes |
What's Up Gold | $2,740 for 25 devices | Any | 8/10 | Yes | Yes |
Open-Source Monitoring Projects
Product | Price | SNMP Versions | GUI Rating | Alert Capabilities | Support |
---|---|---|---|---|---|
LibreNMS | Free | 1 & 3 | 6/10 | Yes | Community support |
Zabbix | Free | Any | 10/10 | Yes | Paid support |
Prometheus | Free | Any | 9/10 | Yes | Paid support |
Observium | Free - $1,400/year | Any | 6/10 | Yes | Paid support |
Nagios | $3,000 - $24,000 | Any | 4/10 | Yes | Yes |
Installing an Open-Source Monitoring Tool
After research, I selected Zabbix for my home network. I chose SNMP v3 for secure network monitoring.
Installation Steps
- Create a Ubuntu Server VM on Proxmox and update it.
- Choose Ubuntu platform, select MySQL as the database, and Apache as the web server.
- Install Zabbix repository:
- Install Zabbix server, frontend, and agent:
- Install MySQL server:
- Create the initial database:
# wget https://repo.zabbix.com/zabbix/6.5/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.5-1+ubuntu22.04_all.deb
# dpkg -i zabbix-release_6.5-1+ubuntu22.04_all.deb
# apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
sudo apt-get install mysql-server
sudo systemctl start mysql
mysql -uroot -p
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz
| mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
sudo mysql
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
sudo nano /etc/zabbix/zabbix_server.conf
Set the password:
DBPassword=password
Starting Zabbix and Accessing the UI
- Start and enable Zabbix services:
- Open Zabbix UI at http://host/zabbix.
- Follow the prompts to set up your Zabbix front-end:
- Enter your database password.
- Select your timezone, server name, and theme.
- Complete the installation and log in using the default credentials: Admin / zabbix.
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
Adding Hosts
- Download the Zabbix agent for Windows:
- Configure the agent with the correct server IP and hostname.
- Add the host to Zabbix under "Data Collection" > "Hosts."
Visit https://www.zabbix.com/download_agents to download the appropriate agent.
Security Considerations
When using SNMP, ensure devices use SNMP v3 for secure data transmission. Additionally, change the default Zabbix credentials from Admin/zabbix to a unique username and password.
Setting Up Alerts
- Navigate to the Alerts tab > Actions > Trigger Actions.
- Select "Report problems to Zabbix admins" and configure conditions:
- Add condition: Host Groups > Windows Server
- Set severity: greater than or equal to "Average"
- Add tag: Env = production
- Under Operations, configure notifications:
- Send alert to Admin
- Set up recovery operation to notify Admin on recovery
Conclusion
Zabbix offers robust SNMP monitoring with a high level of customization and flexibility. Through my setup experience, I found that Zabbix's extensive monitoring capabilities and customization options make it an excellent choice for SNMP monitoring in a home network environment.
Work Cited
- LogicMonitor: Cloud-Based Infrastructure Monitoring Platform, https://www.logicmonitor.com/. Accessed 23 March 2024.
- WhatsUp Gold: IT Infrastructure Monitoring Made Easy, https://www.whatsupgold.com/. Accessed 23 March 2024.
- LibreNMS, https://www.librenms.org/. Accessed 23 March 2024.
- Zabbix: The Enterprise-Class Open Source Network Monitoring Solution, https://www.zabbix.com/. Accessed 23 March 2024.
- Wikipedia, https://prometheus.io/. Accessed 23 March 2024.
- Observium, https://www.observium.org/. Accessed 23 March 2024.
- Nagios Open Source, https://www.nagios.org/. Accessed 23 March 2024.
- “Network Device Monitoring.” Datadog, https://www.datadoghq.com/product/network-monitoring/network-device-monitoring/. Accessed 23 March 2024.
- “Network Monitoring Software & Solutions.” ManageEngine, https://www.manageengine.com/network-monitoring/. Accessed 23 March 2024.
- “SNMP Monitoring - SNMP Monitoring Tools.” SolarWinds, https://www.solarwinds.com/network-performance-monitor/use-cases/snmp-monitoring. Accessed 23 March 2024.