Files
OIDsimulator/README.md
2025-03-06 13:11:09 +00:00

2.8 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, increment range, and port 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 .env file 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
SNMP_PORT=161

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 ${SNMP_PORT}:${SNMP_PORT}/udp --name snmpd-custom-container --env-file .env snmpd-custom

Replace ${SNMP_PORT} with the actual port number you want to use, or use the value from your .env file.

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.py file.
  • Increment Range: Modify the RANGE_MIN and RANGE_MAX in the .env file 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 .env file to change the SNMP community string and OID.
  • SNMP Port: Modify the SNMP_PORT in the .env file to change the port on which snmpd listens.

Notes

  • Ensure that the SNMP community string and port in the .env file match your configuration.
  • The container exposes the specified SNMP port for communication.

License

This project is licensed under the MIT License.


Feel free to contribute or modify the setup to fit your specific needs!