12 Commits
0.0.1 ... main

Author SHA1 Message Date
6ba0a343fc adjust license
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-03-07 14:57:19 +01:00
f2d0d1ca94 stratum, 6
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2025-02-11 10:24:57 +01:00
fa0b168ad3 stratum, 5
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2025-02-11 10:15:50 +01:00
4bdeb56013 stratum, 4
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2025-02-11 10:13:29 +01:00
f557893fad stratum, 3
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2025-02-11 10:11:08 +01:00
5de07b85dc stratum, 2
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2025-02-11 10:09:13 +01:00
38d35c1e79 stratum
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2025-02-11 10:06:36 +01:00
101072eabc drop old readme
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-02-10 17:12:26 +01:00
cc553c1341 value shall be string, 2
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2025-02-10 14:19:49 +01:00
553648e10d value shall be string
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/tag/woodpecker Pipeline failed
2025-02-10 14:18:19 +01:00
64dba890dd adjust message and variable with snmp-mqtt
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-02-10 13:54:08 +01:00
c05cf671cf fix, 4
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2025-02-10 13:03:41 +01:00
4 changed files with 22 additions and 80 deletions

View File

@ -67,10 +67,6 @@ steps:
environment:
KUBE_CONFIG_CONTENT:
from_secret: kube_config
ENCRYPTION_KEY:
from_secret: encryption_key
MD5_CHECKSUM:
from_secret: secrets_checksum
commands:
- export IMAGE_TAG=$CI_COMMIT_TAG
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2019 Daniel Chote
Copyright (c) 2025 Wolfgang Hottgenroth
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,64 +0,0 @@
# 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"
}
]
}
]
}
```

View File

@ -3,6 +3,7 @@ package tsmq
import (
"log"
"time"
"strconv"
"encoding/json"
"tsm/config"
@ -12,14 +13,15 @@ import (
)
type variable_t struct {
Name string `json:"variable"`
Value float64 `json:"value"`
Label string `json:"label"`
Variable string `json:"variable"`
Value string `json:"value"`
Unit string `json:"unit"`
Status string `json:"status"`
}
type message_t struct {
Server string `json:"server"`
Device string `json:"device"`
Label string `json:"label"`
Variables map[string]variable_t `json:"variables"`
}
@ -32,28 +34,36 @@ func Start() {
log.Println("Polling server " + server.Name)
message := message_t {
Server: server.Name,
Device: server.Name,
Label: server.Label,
Variables: make(map[string]variable_t),
}
label := "rootdisp"
status := "Ok"
value := 0.0
rootdisp := 0.0
stratum := 0
resp, err := ntp.Query(server.Name)
if err != nil {
status = "Error"
} else {
value = resp.RootDispersion.Seconds() * 1000
rootdisp = resp.RootDispersion.Seconds() * 1000
stratum = int(resp.Stratum)
}
v := variable_t {
Name: label,
Value: value,
message.Variables["rootdisp"] = variable_t {
Label: "rootdisp",
Variable: "",
Value: strconv.FormatFloat(rootdisp, 'f', 4, 64),
Unit: "ms",
Status: status,
}
message.Variables["stratum"] = variable_t {
Label: "stratum",
Variable: "",
Value: strconv.Itoa(stratum),
Unit: "ms",
Status: status,
}
message.Variables[label] = v
j, err := json.Marshal(message)