Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
30c64cde60
|
|||
a5712a20a9
|
|||
9f19e12375
|
|||
917db84ebb | |||
7c7b175893
|
|||
057b2c3776
|
|||
15cfb7b51c
|
|||
2852f871ec
|
|||
cdb2eeceed
|
|||
31a548f08e | |||
e0a44205b1 | |||
81378d80e4 | |||
b0def60a92 | |||
9846f70e5c | |||
2d2e251f0b |
@ -1,8 +1,20 @@
|
||||
steps:
|
||||
build:
|
||||
image: golang:1.22.5-alpine3.20
|
||||
commands:
|
||||
- GOPATH=/woodpecker/go
|
||||
- ls -l
|
||||
- cd src/smq
|
||||
- go mod tidy
|
||||
- go build -a -installsuffix nocgo -o smq snmp-mqtt.go
|
||||
- cp smq ../..
|
||||
when:
|
||||
- event: [push, tag]
|
||||
|
||||
dockerize:
|
||||
image: plugins/kaniko
|
||||
settings:
|
||||
repo: gitea.hottis.de/wn/snmp-mqtt
|
||||
repo: ${FORGE_NAME}/${CI_REPO}
|
||||
registry:
|
||||
from_secret: container_registry
|
||||
tags: latest,${CI_COMMIT_SHA},${CI_COMMIT_TAG}
|
||||
@ -15,14 +27,15 @@ steps:
|
||||
- event: [push, tag]
|
||||
|
||||
deploy:
|
||||
image: portainer/kubectl-shell:latest
|
||||
secrets:
|
||||
- source: kube_config
|
||||
target: KUBE_CONFIG_CONTENT
|
||||
image: quay.io/wollud1969/woodpecker-helper:0.5.1
|
||||
environment:
|
||||
KUBE_CONFIG_CONTENT:
|
||||
from_secret: kube_config
|
||||
commands:
|
||||
- export IMAGE_TAG=$CI_COMMIT_TAG
|
||||
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
|
||||
- export KUBECONFIG=/tmp/kubeconfig
|
||||
- ./deployment/deploy.sh
|
||||
when:
|
||||
- event: tag
|
||||
- event: [tag]
|
||||
|
||||
|
10
Dockerfile
10
Dockerfile
@ -1,16 +1,8 @@
|
||||
FROM golang:1.21-alpine as builder
|
||||
|
||||
RUN mkdir -p /go/src
|
||||
COPY ./src /go/src
|
||||
WORKDIR /go/src/smq
|
||||
RUN go build -a -installsuffix nocgo -o smq snmp-mqtt.go
|
||||
|
||||
|
||||
FROM scratch
|
||||
|
||||
ENV SNMP_MQTT_CONF ""
|
||||
|
||||
COPY --from=builder /go/src/smq ./
|
||||
COPY smq ./
|
||||
ENTRYPOINT ["./smq"]
|
||||
|
||||
|
||||
|
@ -4,13 +4,107 @@
|
||||
"tlsEnable": "false",
|
||||
"topic": "snmp"
|
||||
},
|
||||
"interval": 10,
|
||||
"interval": 60,
|
||||
"snmpEndpoints": [
|
||||
{
|
||||
"endpoint": "172.16.13.10",
|
||||
"label": "david",
|
||||
"community": "public",
|
||||
"oidTopics": [
|
||||
{
|
||||
"oid": ".1.3.6.1.4.1.2021.10.1.3.1",
|
||||
"label": "load1",
|
||||
"diff": "false"
|
||||
},
|
||||
{
|
||||
"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.7.2",
|
||||
"label": "lan-in-pkts",
|
||||
"diff": "true"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.2.1.31.1.1.1.10.2",
|
||||
"label": "lan-out",
|
||||
"diff": "true"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.2.1.31.1.1.1.11.2",
|
||||
"label": "lan-out-pkts",
|
||||
"diff": "true"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.4.1.9676.1",
|
||||
"label": "time-req-pkts",
|
||||
"diff": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"endpoint": "172.16.13.11",
|
||||
"label": "harrison",
|
||||
"community": "public",
|
||||
"oidTopics": [
|
||||
{
|
||||
"oid": ".1.3.6.1.4.1.2021.10.1.3.1",
|
||||
"label": "load1",
|
||||
"diff": "false"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.4.1.9676.123.1.4",
|
||||
"label": "stratum",
|
||||
"diff": "false"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.4.1.9676.123.1.7",
|
||||
"label": "rootdisp",
|
||||
"diff": "false"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.4.1.9676.123.2.3",
|
||||
"label": "ss-reset",
|
||||
"diff": "false"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.4.1.9676.123.2.10",
|
||||
"label": "processed-pkts",
|
||||
"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.7.2",
|
||||
"label": "lan-in-pkts",
|
||||
"diff": "true"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.2.1.31.1.1.1.10.2",
|
||||
"label": "lan-out",
|
||||
"diff": "true"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.2.1.31.1.1.1.11.2",
|
||||
"label": "lan-out-pkts",
|
||||
"diff": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"endpoint": "172.16.3.1",
|
||||
"label": "router",
|
||||
"community": "public",
|
||||
"oidTopics": [
|
||||
{
|
||||
"oid": "1.3.6.1.2.1.25.3.3.1.2.1",
|
||||
"label": "load1",
|
||||
"diff": "false"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.2.1.31.1.1.1.6.5",
|
||||
"label": "wan-in",
|
||||
@ -22,23 +116,6 @@
|
||||
"diff": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"endpoint": "172.16.3.3",
|
||||
"label": "switch-cluster",
|
||||
"community": "public",
|
||||
"oidTopics": [
|
||||
{
|
||||
"oid": ".1.3.6.1.2.1.31.1.1.1.6.1",
|
||||
"label": "uplink-in",
|
||||
"diff": "true"
|
||||
},
|
||||
{
|
||||
"oid": ".1.3.6.1.2.1.31.1.1.1.10.1",
|
||||
"label": "uplink-out",
|
||||
"diff": "true"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
module smq
|
||||
|
||||
go 1.21.3
|
||||
go 1.22.5
|
||||
|
||||
require (
|
||||
github.com/eclipse/paho.mqtt.golang v1.4.3
|
||||
@ -10,6 +10,6 @@ require (
|
||||
|
||||
require (
|
||||
github.com/gorilla/websocket v1.5.0 // indirect
|
||||
golang.org/x/net v0.15.0 // indirect
|
||||
golang.org/x/net v0.34.0 // indirect
|
||||
golang.org/x/sync v0.1.0 // indirect
|
||||
)
|
||||
|
@ -18,6 +18,8 @@ type variable_t struct {
|
||||
Label string `json:"label"`
|
||||
Variable string `json:"variable"`
|
||||
Value string `json:"value"`
|
||||
Unit string `json:"unit"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type message_t struct {
|
||||
@ -130,6 +132,8 @@ func Start() {
|
||||
Label: oidTopic.Label,
|
||||
Variable: oidTopic.OID,
|
||||
Value: convertedValue,
|
||||
Unit: "",
|
||||
Status: "",
|
||||
}
|
||||
message.Variables[oidTopic.Label] = v
|
||||
|
||||
|
45
tools/mysnmpwalk.sh
Executable file
45
tools/mysnmpwalk.sh
Executable file
@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
|
||||
COMMUNITY=""
|
||||
HOST=""
|
||||
BASE_OID=""
|
||||
|
||||
while getopts "c:h:b:" option; do
|
||||
case $option in
|
||||
c) COMMUNITY=$OPTARG
|
||||
;;
|
||||
h) HOST=$OPTARG
|
||||
;;
|
||||
b) BASE_OID=$OPTARG
|
||||
;;
|
||||
?)
|
||||
echo "Usage $0 -c COMMUNITY -h HOST -b BASE_OID"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$COMMUNITY" = "" ]; then
|
||||
echo "Set a community using -c"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$HOST" = "" ]; then
|
||||
echo "Set a host using -h"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$BASE_OID" = "" ]; then
|
||||
echo "Set a base oid using -b"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
snmpwalk -v 2c -c $COMMUNITY -On $HOST $BASE_OID | while read -r line; do
|
||||
oid=`echo $line | awk '{print $1}'`
|
||||
textoid=`snmptranslate $oid`
|
||||
value=`echo $line | cut -d ' ' -f 3-`
|
||||
echo "$oid ($textoid): $value"
|
||||
done
|
||||
|
||||
|
Reference in New Issue
Block a user