This commit is contained in:
80
cmd/main.go
Normal file
80
cmd/main.go
Normal file
@ -0,0 +1,80 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"time"
|
||||
"zabbixagent2plugintemplate/config"
|
||||
"zabbixagent2plugintemplate/constant"
|
||||
"zabbixagent2plugintemplate/integration/zabbixagent"
|
||||
"zabbixagent2plugintemplate/router"
|
||||
)
|
||||
|
||||
func main() {
|
||||
/**
|
||||
* Logging
|
||||
*/
|
||||
logFile := fmt.Sprintf("%s.log", time.Now().Format("2006-01-02"))
|
||||
var logFilePath string
|
||||
if runtime.GOOS == "linux" {
|
||||
logFilePath = fmt.Sprintf("/var/log/%s/%s", constant.AppName, logFile)
|
||||
} else {
|
||||
logFilePath = filepath.Join("log", logFile)
|
||||
}
|
||||
|
||||
f, err := os.OpenFile(logFilePath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
|
||||
if err != nil {
|
||||
log.Fatalf("Error opening file: %v", err)
|
||||
}
|
||||
|
||||
defer func(f *os.File) {
|
||||
err := f.Close()
|
||||
if err != nil {
|
||||
log.Fatalf("Error closing file: %v", err)
|
||||
}
|
||||
}(f)
|
||||
|
||||
writer := io.MultiWriter(os.Stdout, f)
|
||||
log.SetOutput(writer)
|
||||
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
|
||||
|
||||
/**
|
||||
* Load config
|
||||
*/
|
||||
if err := config.LoadConfig(); err != nil {
|
||||
log.Fatalf("Error loading config: %v", err)
|
||||
}
|
||||
|
||||
/**
|
||||
* Web server
|
||||
*/
|
||||
go func() {
|
||||
r := gin.Default()
|
||||
|
||||
router.SetupRoutes(r)
|
||||
|
||||
addr := fmt.Sprintf("%s:%d", config.Config.App.Host, config.Config.App.Port)
|
||||
if err := r.Run(addr); err != nil {
|
||||
fmt.Println("Failed to start server:", err)
|
||||
}
|
||||
}()
|
||||
|
||||
/**
|
||||
* Zabbix agent integration
|
||||
*/
|
||||
go func() {
|
||||
err = zabbixagent.Launch()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
panic(err)
|
||||
}()
|
||||
|
||||
select {}
|
||||
}
|
Reference in New Issue
Block a user