65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
# snmp-mqtt
|
|
|
|
This project is directly derived from https://github.com/dchote/snmp-mqtt
|
|
|
|
A simple go app that reads SNMP values and publishes it to the specified MQTT endpoint at the specified interval.
|
|
|
|
In constrast to the original version, all configuration must be provided via an environment variable containing
|
|
a JSON string.
|
|
|
|
The MQTT configuration is part of this JSON string.
|
|
|
|
The topic has been moved to the MQTT configuration and there is now only one topic for all endpoints and variables.
|
|
|
|
The published message on MQTT looks like this:
|
|
|
|
```
|
|
{"device":"172.16.3.1","label":"router","variables":{"lan-in":{"label":"lan-in","variable":".1.3.6.1.2.1.31.1.1.1.6.2","value":"979673705579"},"lan-out":{"label":"lan-out","variable":".1.3.6.1.2.1.31.1.1.1.10.2","value":"1813410276168"},"wan-in":{"label":"wan-in","variable":".1.3.6.1.2.1.31.1.1.1.6.4","value":"83591215399"},"wan-out":{"label":"wan-out","variable":".1.3.6.1.2.1.31.1.1.1.10.4","value":"83741895468"}}}
|
|
```
|
|
|
|
```
|
|
export SNMP_MQTT_CONF=$(cat config.json)
|
|
./smq
|
|
```
|
|
|
|
An example config.json file:
|
|
```
|
|
{
|
|
"mqtt": {
|
|
"broker": "mqtt://172.23.1.102:1883",
|
|
"tlsEnable": "false",
|
|
"topic": "snmp"
|
|
},
|
|
"interval": 10,
|
|
"snmpEndpoints": [
|
|
{
|
|
"endpoint": "172.16.3.1",
|
|
"label": "router",
|
|
"community": "public",
|
|
"oidTopics": [
|
|
{
|
|
"oid": ".1.3.6.1.2.1.31.1.1.1.6.4",
|
|
"label": "wan-in",
|
|
"diff": "true"
|
|
},
|
|
{
|
|
"oid": ".1.3.6.1.2.1.31.1.1.1.10.4",
|
|
"label": "wan-out",
|
|
"diff": "true"
|
|
},
|
|
{
|
|
"oid": ".1.3.6.1.2.1.31.1.1.1.6.2",
|
|
"label": "lan-in",
|
|
"diff": "true"
|
|
},
|
|
{
|
|
"oid": ".1.3.6.1.2.1.31.1.1.1.10.2",
|
|
"label": "lan-out",
|
|
"diff": "true"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|