|
|
|
|
@@ -18,7 +18,6 @@ import (
|
|
|
|
|
"be.ems/lib/log"
|
|
|
|
|
|
|
|
|
|
"github.com/go-resty/resty/v2"
|
|
|
|
|
"github.com/shirou/gopsutil/process"
|
|
|
|
|
|
|
|
|
|
// cron "github.com/go-co-op/gocron"
|
|
|
|
|
"github.com/jasonlvhit/gocron"
|
|
|
|
|
@@ -1456,82 +1455,82 @@ func init() {
|
|
|
|
|
|
|
|
|
|
func (t *TaskFunc) TaskWriteSystemLog(uri, params, body string) {
|
|
|
|
|
|
|
|
|
|
processes, err := process.Processes()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Error("Failed to get processes:", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
// processes, err := process.Processes()
|
|
|
|
|
// if err != nil {
|
|
|
|
|
// log.Error("Failed to get processes:", err)
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
for _, proc := range processes {
|
|
|
|
|
name, err := proc.Name()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Error("Failed to get process name:", err)
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
for i, procInfo := range procInfos {
|
|
|
|
|
if name == procInfo.Name {
|
|
|
|
|
pid := proc.Pid
|
|
|
|
|
timestamp, _ := proc.CreateTime()
|
|
|
|
|
userName, _ := proc.Username()
|
|
|
|
|
startTime := time.Unix((timestamp / 1000), 0).Format(time.DateTime)
|
|
|
|
|
// for _, proc := range processes {
|
|
|
|
|
// name, err := proc.Name()
|
|
|
|
|
// if err != nil {
|
|
|
|
|
// log.Error("Failed to get process name:", err)
|
|
|
|
|
// continue
|
|
|
|
|
// }
|
|
|
|
|
// for i, procInfo := range procInfos {
|
|
|
|
|
// if name == procInfo.Name {
|
|
|
|
|
// pid := proc.Pid
|
|
|
|
|
// timestamp, _ := proc.CreateTime()
|
|
|
|
|
// userName, _ := proc.Username()
|
|
|
|
|
// startTime := time.Unix((timestamp / 1000), 0).Format(time.DateTime)
|
|
|
|
|
|
|
|
|
|
newProcInfo := &ProcInfo{
|
|
|
|
|
Name: procInfo.Name,
|
|
|
|
|
Pid: pid,
|
|
|
|
|
StartTime: startTime,
|
|
|
|
|
}
|
|
|
|
|
log.Trace("newProcInfo:", *newProcInfo)
|
|
|
|
|
log.Trace("procInfo:", procInfo)
|
|
|
|
|
if *newProcInfo != procInfo {
|
|
|
|
|
procInfos[i] = *newProcInfo
|
|
|
|
|
var operation string
|
|
|
|
|
if newProcInfo.Pid != 0 {
|
|
|
|
|
operation = "start"
|
|
|
|
|
} else {
|
|
|
|
|
operation = "stop"
|
|
|
|
|
}
|
|
|
|
|
sysLogs := &[]dborm.SystemLog{}
|
|
|
|
|
sysLog := &dborm.SystemLog{
|
|
|
|
|
UserName: userName,
|
|
|
|
|
ProcessName: newProcInfo.Name,
|
|
|
|
|
ProcessID: newProcInfo.Pid,
|
|
|
|
|
Operation: operation,
|
|
|
|
|
StartTime: newProcInfo.StartTime,
|
|
|
|
|
LogTime: time.Now().Format(time.DateTime),
|
|
|
|
|
}
|
|
|
|
|
var response *resty.Response
|
|
|
|
|
requestURI := fmt.Sprintf("%s?%s", uri, params)
|
|
|
|
|
requestURL := fmt.Sprintf("%s%s", yamlConfig.OMC.HostUri, requestURI)
|
|
|
|
|
// newProcInfo := &ProcInfo{
|
|
|
|
|
// Name: procInfo.Name,
|
|
|
|
|
// Pid: pid,
|
|
|
|
|
// StartTime: startTime,
|
|
|
|
|
// }
|
|
|
|
|
// log.Trace("newProcInfo:", *newProcInfo)
|
|
|
|
|
// log.Trace("procInfo:", procInfo)
|
|
|
|
|
// if *newProcInfo != procInfo {
|
|
|
|
|
// procInfos[i] = *newProcInfo
|
|
|
|
|
// var operation string
|
|
|
|
|
// if newProcInfo.Pid != 0 {
|
|
|
|
|
// operation = "start"
|
|
|
|
|
// } else {
|
|
|
|
|
// operation = "stop"
|
|
|
|
|
// }
|
|
|
|
|
// sysLogs := &[]dborm.SystemLog{}
|
|
|
|
|
// sysLog := &dborm.SystemLog{
|
|
|
|
|
// UserName: userName,
|
|
|
|
|
// ProcessName: newProcInfo.Name,
|
|
|
|
|
// ProcessID: newProcInfo.Pid,
|
|
|
|
|
// Operation: operation,
|
|
|
|
|
// StartTime: newProcInfo.StartTime,
|
|
|
|
|
// LogTime: time.Now().Format(time.DateTime),
|
|
|
|
|
// }
|
|
|
|
|
// var response *resty.Response
|
|
|
|
|
// requestURI := fmt.Sprintf("%s?%s", uri, params)
|
|
|
|
|
// requestURL := fmt.Sprintf("%s%s", yamlConfig.OMC.HostUri, requestURI)
|
|
|
|
|
|
|
|
|
|
*sysLogs = append(*sysLogs, *sysLog)
|
|
|
|
|
data := make(map[string]interface{})
|
|
|
|
|
data["system_log"] = *sysLogs
|
|
|
|
|
body, _ := json.Marshal(data)
|
|
|
|
|
log.Trace("data:", data)
|
|
|
|
|
log.Debug("requestURL: POST ", requestURL)
|
|
|
|
|
client := resty.New()
|
|
|
|
|
response, err = client.R().
|
|
|
|
|
EnableTrace().
|
|
|
|
|
SetHeaders(map[string]string{"User-Agent": GetDefaultUserAgent()}).
|
|
|
|
|
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
|
|
|
SetBody(body).
|
|
|
|
|
Post(requestURL)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Error("Failed to post:", err)
|
|
|
|
|
}
|
|
|
|
|
log.Debug("StatusCode: ", response.StatusCode())
|
|
|
|
|
switch response.StatusCode() {
|
|
|
|
|
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
|
|
|
|
|
log.Debug("response body:", string(response.Body()))
|
|
|
|
|
body := new(map[string]interface{})
|
|
|
|
|
_ = json.Unmarshal(response.Body(), &body)
|
|
|
|
|
default:
|
|
|
|
|
log.Debug("response body:", string(response.Body()))
|
|
|
|
|
body := new(map[string]interface{})
|
|
|
|
|
_ = json.Unmarshal(response.Body(), &body)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// *sysLogs = append(*sysLogs, *sysLog)
|
|
|
|
|
// data := make(map[string]interface{})
|
|
|
|
|
// data["system_log"] = *sysLogs
|
|
|
|
|
// body, _ := json.Marshal(data)
|
|
|
|
|
// log.Trace("data:", data)
|
|
|
|
|
// log.Debug("requestURL: POST ", requestURL)
|
|
|
|
|
// client := resty.New()
|
|
|
|
|
// response, err = client.R().
|
|
|
|
|
// EnableTrace().
|
|
|
|
|
// SetHeaders(map[string]string{"User-Agent": GetDefaultUserAgent()}).
|
|
|
|
|
// SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
|
|
|
// SetBody(body).
|
|
|
|
|
// Post(requestURL)
|
|
|
|
|
// if err != nil {
|
|
|
|
|
// log.Error("Failed to post:", err)
|
|
|
|
|
// }
|
|
|
|
|
// log.Debug("StatusCode: ", response.StatusCode())
|
|
|
|
|
// switch response.StatusCode() {
|
|
|
|
|
// case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
|
|
|
|
|
// log.Debug("response body:", string(response.Body()))
|
|
|
|
|
// body := new(map[string]interface{})
|
|
|
|
|
// _ = json.Unmarshal(response.Body(), &body)
|
|
|
|
|
// default:
|
|
|
|
|
// log.Debug("response body:", string(response.Body()))
|
|
|
|
|
// body := new(map[string]interface{})
|
|
|
|
|
// _ = json.Unmarshal(response.Body(), &body)
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|