2.4 KiB
SNMPD Custom OID Docker Container
This Docker container runs snmpd with a custom script that provides a specific OID. The value of this OID increases randomly by a small amount every 4 minutes. The SNMP community string, OID, and increment range can be configured using a .env file.
Features
- Lightweight Docker container based on Alpine Linux.
- Custom Python script to generate and update the OID value.
- Configurable SNMP daemon (
snmpd) to use the custom script. - Dynamic configuration using a
.envfile with Docker environment variables.
Requirements
- Docker installed on your system.
- Basic knowledge of Docker commands.
Dependencies
snmpd: The SNMP daemon.- Python 3: Used to write the custom script.
random: Python library for generating random numbers (included in Python's standard library).
How to Use
Step 1: Create a .env File
Create a .env file in the same directory as your Dockerfile with the following content:
SNMP_COMMUNITY=public
CUSTOM_OID=.1.3.6.1.4.1.38446.1.2.4.1.9.1
RANGE_MIN=0
RANGE_MAX=6
Step 2: Build the Docker Image
Navigate to the directory containing the Dockerfile and custom_snmp_script.py, then run:
docker build -t snmpd-custom .
Step 3: Run the Docker Container
Start the Docker container with the following command, using the --env-file option to pass the environment variables:
docker run -d -p 161:161/udp --name snmpd-custom-container --env-file .env snmpd-custom
Step 4: Verify the Setup
You can verify that the container is running and the SNMP daemon is providing the custom OID by using an SNMP client to query the OID:
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.38446.1.2.4.1.9.1
You should see the value incrementing randomly every 4 minutes.
Customization
- Initial Value: You can change the initial value in the
custom_snmp_script.pyfile. - Increment Range: Modify the
RANGE_MINandRANGE_MAXin the.envfile to change how much the value increments. - Update Interval: Adjust the sleep interval in the script to change the frequency of updates.
- Community String and OID: Modify the
.envfile to change the SNMP community string and OID.
Notes
- Ensure that the SNMP community string in the
.envfile matches your configuration. - The container exposes port 161 for SNMP communication.
License
This project is licensed under the MIT License.