Merge branch 'main' of http://192.168.0.229:3180/OMC/ems_backend
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package monitor
|
package monitor
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -42,21 +41,21 @@ var (
|
|||||||
|
|
||||||
// IPAddr IP地址
|
// IPAddr IP地址
|
||||||
func IPAddr(w http.ResponseWriter, r *http.Request) {
|
func IPAddr(w http.ResponseWriter, r *http.Request) {
|
||||||
ipAddrs := make(map[string]string)
|
ipAddrs := []map[string]string{}
|
||||||
interfaces, err := net.Interfaces()
|
interfaces, err := net.Interfaces()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
for _, iface := range interfaces {
|
for _, iface := range interfaces {
|
||||||
var addrs []string
|
addrs := map[string]string{}
|
||||||
for _, v := range iface.Addrs {
|
for _, v := range iface.Addrs {
|
||||||
prefix := strings.Split(v.Addr, "/")[0]
|
prefix := strings.Split(v.Addr, "/")[0]
|
||||||
if strings.Contains(prefix, "::") {
|
if strings.Contains(prefix, "::") {
|
||||||
addrs = append(addrs, fmt.Sprintf("IPv6 %s", prefix))
|
addrs["IPv6"] = prefix
|
||||||
}
|
}
|
||||||
if strings.Contains(prefix, ".") {
|
if strings.Contains(prefix, ".") {
|
||||||
addrs = append(addrs, fmt.Sprintf("IPv4 %s", prefix))
|
addrs["IPv4"] = prefix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ipAddrs[iface.Name] = strings.Join(addrs, " / ")
|
ipAddrs = append(ipAddrs, addrs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
services.ResponseWithJson(w, 200, ipAddrs)
|
services.ResponseWithJson(w, 200, ipAddrs)
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package psnet
|
package psnet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"time"
|
||||||
|
|
||||||
"ems.agt/lib/log"
|
"ems.agt/lib/log"
|
||||||
"ems.agt/lib/services"
|
"ems.agt/lib/services"
|
||||||
@@ -16,6 +19,9 @@ var (
|
|||||||
UriWs = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/ws"
|
UriWs = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/ws"
|
||||||
// 停止进程
|
// 停止进程
|
||||||
UriStop = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/stop"
|
UriStop = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/stop"
|
||||||
|
|
||||||
|
// 检查ip端口请求
|
||||||
|
UriPing = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/ping"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 进程管理
|
// 进程管理
|
||||||
@@ -60,3 +66,27 @@ func StopProcess(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
services.ResponseStatusOK200Null(w)
|
services.ResponseStatusOK200Null(w)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查ip端口请求
|
||||||
|
func Ping(w http.ResponseWriter, r *http.Request) {
|
||||||
|
// json 請求參數獲取
|
||||||
|
var bodyArgs struct {
|
||||||
|
Host string `json:"host" validate:"required"`
|
||||||
|
Port string `json:"port" validate:"required"`
|
||||||
|
}
|
||||||
|
err := services.ShouldBindJSON(r, &bodyArgs)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("io.ReadAll is failed:", err)
|
||||||
|
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
conn, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%s", bodyArgs.Host, bodyArgs.Port), 3*time.Second)
|
||||||
|
if err != nil {
|
||||||
|
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
services.ResponseStatusOK200Null(w)
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -223,6 +223,7 @@ func init() {
|
|||||||
// 进程网络
|
// 进程网络
|
||||||
Register("GET", psnet.UriWs, psnet.ProcessWs, nil)
|
Register("GET", psnet.UriWs, psnet.ProcessWs, nil)
|
||||||
Register("POST", psnet.UriStop, psnet.StopProcess, nil)
|
Register("POST", psnet.UriStop, psnet.StopProcess, nil)
|
||||||
|
Register("POST", psnet.UriPing, psnet.Ping, nil)
|
||||||
|
|
||||||
// 主机CPU内存监控
|
// 主机CPU内存监控
|
||||||
Register("POST", monitor.UriLoad, monitor.LoadMonitor, nil)
|
Register("POST", monitor.UriLoad, monitor.LoadMonitor, nil)
|
||||||
|
|||||||
Reference in New Issue
Block a user