This commit is contained in:
TsMask
2024-09-12 17:19:27 +08:00
5 changed files with 47 additions and 16 deletions

View File

@@ -32,7 +32,7 @@ sshd:
userName: manager userName: manager
password: pass123 password: pass123
authType: local authType: local
omcUrl: tagNE: hlr
# authType: local/omc # authType: local/omc
telnetServer: telnetServer:
@@ -45,15 +45,33 @@ telnetServer:
userName: manager userName: manager
password: pass123 password: pass123
authType: local authType: local
omcUrl: tagNE: hlr
# authproto: NoAuth/MD5/SHA
# privProto: NoPriv/DES/AES/AES192/AES256
snmpServer:
listenAddr: '[::]'
listenPort: 34957
userName: manager
authPass: pass123
authproto: MD5
privPass: "3F2A1B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E"
privProto: DES
engineID: "8000000004323030313a6462383a3a39313636"
trapPort: 34958
trapListen: true
trapBool: true
trapTick: 60
timeOut: 5
trapTarget: "2001:db8::9219"
database: database:
type: mysql type: mysql
user: root user: administrator
password: 1000omc@kp! password: "*86#ROtartsinim"
host: 127.0.0.1 host: 192.168.13.117
port: 33066 port: 3306
name: omc_db name: OMC_PUB
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
omc: omc:

View File

@@ -77,6 +77,8 @@ type YamlConfig struct {
PrivProto string `yaml:"privProto"` PrivProto string `yaml:"privProto"`
EngineID string `yaml:"engineID"` EngineID string `yaml:"engineID"`
TrapPort uint16 `yaml:"trapPort"` TrapPort uint16 `yaml:"trapPort"`
TrapListen bool `yaml:"trapListen"`
TrapBool bool `yaml:"trapBool"`
TrapTick uint16 `yaml:"trapTick"` TrapTick uint16 `yaml:"trapTick"`
TimeOut uint16 `yaml:"timeOut"` TimeOut uint16 `yaml:"timeOut"`
TrapTarget string `yaml:"trapTarget"` TrapTarget string `yaml:"trapTarget"`

View File

@@ -32,7 +32,7 @@ sshd:
mmlHome: ./mmlhome mmlHome: ./mmlhome
userName: manager userName: manager
password: pass123 password: pass123
authType: radius authType: local
tagNE: hlr tagNE: hlr
# authType: local/omc # authType: local/omc
@@ -45,7 +45,7 @@ telnetServer:
mmlHome: ./mmlhome mmlHome: ./mmlhome
userName: manager userName: manager
password: pass123 password: pass123
authType: radius authType: local
tagNE: hlr tagNE: hlr
# authproto: NoAuth/MD5/SHA # authproto: NoAuth/MD5/SHA
@@ -58,8 +58,11 @@ snmpServer:
authproto: MD5 authproto: MD5
privPass: "3F2A1B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E" privPass: "3F2A1B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E"
privProto: DES privProto: DES
engineID: "800007db03360102101100" #engineID: "800007db03360102101101"
engineID: "8000000004323030313a6462383a3a39313636"
trapPort: 34958 trapPort: 34958
trapListen: true
trapBool: true
trapTick: 60 trapTick: 60
timeOut: 5 timeOut: 5
trapTarget: "2001:db8::9219" trapTarget: "2001:db8::9219"

View File

@@ -25,6 +25,8 @@ type SNMPService struct {
PrivProto string PrivProto string
EngineID string EngineID string
TrapPort uint16 TrapPort uint16
TrapListen bool
TrapBool bool
TrapTick uint16 TrapTick uint16
TimeOut uint16 TimeOut uint16
TrapTarget string TrapTarget string
@@ -222,7 +224,7 @@ func (s *SNMPService) StartTrapServer() {
//var engineTime uint32 = 3600 // 使用当前时间初始化 //var engineTime uint32 = 3600 // 使用当前时间初始化
gs := &g.GoSNMP{ gs := &g.GoSNMP{
Target: s.TrapTarget, Target: s.TrapTarget,
Port: 34958, Port: s.TrapPort,
Transport: "udp", Transport: "udp",
Timeout: time.Duration(s.TimeOut) * time.Second, // 设置超时时间为x秒 Timeout: time.Duration(s.TimeOut) * time.Second, // 设置超时时间为x秒
Version: g.Version3, // Always using version3 for traps, only option that works with all SNMP versions simultaneously Version: g.Version3, // Always using version3 for traps, only option that works with all SNMP versions simultaneously
@@ -240,18 +242,22 @@ func (s *SNMPService) StartTrapServer() {
}, },
//TrapSecurityParametersTable: usmTable, //TrapSecurityParametersTable: usmTable,
ContextEngineID: s.EngineID, ContextEngineID: s.EngineID,
ContextName: "test", ContextName: "v3test",
} }
tl.Params = gs tl.Params = gs
tl.Params.Logger = g.NewLogger(log.New(os.Stdout, "", 0)) tl.Params.Logger = g.NewLogger(log.New(os.Stdout, "", 0))
// 定时发送Trap // 定时发送Trap
go s.SendPeriodicTraps(gs) if s.TrapBool {
go s.SendPeriodicTraps(gs)
}
go s.monitorNetwork(gs) go s.monitorNetwork(gs)
err := tl.Listen(s.TrapHost) if s.TrapListen {
if err != nil { err := tl.Listen(s.TrapHost)
log.Panicf("error in listen: %s", err) if err != nil {
log.Panicf("error in listen: %s", err)
}
} }
} }

View File

@@ -136,6 +136,8 @@ func main() {
PrivProto: conf.SNMPServer.PrivProto, PrivProto: conf.SNMPServer.PrivProto,
EngineID: conf.SNMPServer.EngineID, EngineID: conf.SNMPServer.EngineID,
TrapPort: conf.SNMPServer.TrapPort, TrapPort: conf.SNMPServer.TrapPort,
TrapListen: conf.SNMPServer.TrapListen,
TrapBool: conf.SNMPServer.TrapBool,
TrapTick: conf.SNMPServer.TrapTick, TrapTick: conf.SNMPServer.TrapTick,
TimeOut: conf.SNMPServer.TimeOut, TimeOut: conf.SNMPServer.TimeOut,
TrapTarget: conf.SNMPServer.TrapTarget, TrapTarget: conf.SNMPServer.TrapTarget,