From ac24b6a473b8d44bdc13f23e91f6faa6aa4e782e Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 23 May 2021 20:45:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=AA=E5=88=AB=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/http_request_fastcgi.go | 4 +-- internal/nodes/http_request_reverse_proxy.go | 8 +++--- internal/nodes/listener_manager.go | 16 +++++++---- internal/remotelogs/utils.go | 30 ++++++++++++++++++-- 4 files changed, 44 insertions(+), 14 deletions(-) diff --git a/internal/nodes/http_request_fastcgi.go b/internal/nodes/http_request_fastcgi.go index fd70b33..5026ff4 100644 --- a/internal/nodes/http_request_fastcgi.go +++ b/internal/nodes/http_request_fastcgi.go @@ -202,11 +202,11 @@ func (this *HTTPRequest) doFastcgi() (shouldStop bool) { err1 := resp.Body.Close() if err1 != nil { - remotelogs.Error("REQUEST_REVERSE_PROXY", err1.Error()) + remotelogs.Warn("REQUEST_FASTCGI", err1.Error()) } if err != nil && err != io.EOF { - remotelogs.Error("REQUEST_REVERSE_PROXY", err.Error()) + remotelogs.Warn("REQUEST_FASTCGI", err.Error()) this.addError(err) } return diff --git a/internal/nodes/http_request_reverse_proxy.go b/internal/nodes/http_request_reverse_proxy.go index 7d6ba04..875ca67 100644 --- a/internal/nodes/http_request_reverse_proxy.go +++ b/internal/nodes/http_request_reverse_proxy.go @@ -189,7 +189,7 @@ func (this *HTTPRequest) doReverseProxy() { if this.doWAFResponse(resp) { err = resp.Body.Close() if err != nil { - remotelogs.Error("REQUEST_REVERSE_PROXY", err.Error()) + remotelogs.Warn("REQUEST_REVERSE_PROXY", err.Error()) } return } @@ -201,7 +201,7 @@ func (this *HTTPRequest) doReverseProxy() { if len(this.web.Pages) > 0 && this.doPage(resp.StatusCode) { err = resp.Body.Close() if err != nil { - remotelogs.Error("REQUEST_REVERSE_PROXY", err.Error()) + remotelogs.Warn("REQUEST_REVERSE_PROXY", err.Error()) } return } @@ -257,13 +257,13 @@ func (this *HTTPRequest) doReverseProxy() { err1 := resp.Body.Close() if err1 != nil { if !this.canIgnore(err) { - remotelogs.Error("REQUEST_REVERSE_PROXY", err1.Error()) + remotelogs.Warn("REQUEST_REVERSE_PROXY", err1.Error()) } } if err != nil && err != io.EOF { if !this.canIgnore(err) { - remotelogs.Error("REQUEST_REVERSE_PROXY", err.Error()) + remotelogs.Warn("REQUEST_REVERSE_PROXY", err.Error()) this.addError(err) } } diff --git a/internal/nodes/listener_manager.go b/internal/nodes/listener_manager.go index 644ba59..591d125 100644 --- a/internal/nodes/listener_manager.go +++ b/internal/nodes/listener_manager.go @@ -12,21 +12,21 @@ import ( var sharedListenerManager = NewListenerManager() -// 端口监听管理器 +// ListenerManager 端口监听管理器 type ListenerManager struct { listenersMap map[string]*Listener // addr => *Listener locker sync.Mutex lastConfig *nodeconfigs.NodeConfig } -// 获取新对象 +// NewListenerManager 获取新对象 func NewListenerManager() *ListenerManager { return &ListenerManager{ listenersMap: map[string]*Listener{}, } } -// 启动监听 +// Start 启动监听 func (this *ListenerManager) Start(node *nodeconfigs.NodeConfig) error { this.locker.Lock() defer this.locker.Unlock() @@ -83,7 +83,13 @@ func (this *ListenerManager) Start(node *nodeconfigs.NodeConfig) error { listener.Reload(group) err := listener.Listen() if err != nil { - remotelogs.Error("LISTENER_MANAGER", err.Error()) + firstServer := group.FirstServer() + if firstServer == nil { + remotelogs.Error("LISTENER_MANAGER", err.Error()) + } else { + remotelogs.ServerError(firstServer.Id, "LISTENER_MANAGER", err.Error()) + } + continue } this.listenersMap[addr] = listener @@ -93,7 +99,7 @@ func (this *ListenerManager) Start(node *nodeconfigs.NodeConfig) error { return nil } -// 获取总的活跃连接数 +// TotalActiveConnections 获取总的活跃连接数 func (this *ListenerManager) TotalActiveConnections() int { this.locker.Lock() defer this.locker.Unlock() diff --git a/internal/remotelogs/utils.go b/internal/remotelogs/utils.go index d736e6c..3c82065 100644 --- a/internal/remotelogs/utils.go +++ b/internal/remotelogs/utils.go @@ -24,7 +24,7 @@ func init() { }() } -// 打印普通信息 +// Println 打印普通信息 func Println(tag string, description string) { logs.Println("[" + tag + "]" + description) @@ -47,7 +47,7 @@ func Println(tag string, description string) { } } -// 打印警告信息 +// Warn 打印警告信息 func Warn(tag string, description string) { logs.Println("[" + tag + "]" + description) @@ -70,7 +70,7 @@ func Warn(tag string, description string) { } } -// 打印错误信息 +// Error 打印错误信息 func Error(tag string, description string) { logs.Println("[" + tag + "]" + description) @@ -93,6 +93,30 @@ func Error(tag string, description string) { } } +// ServerError 打印错误信息 +func ServerError(serverId int64, tag string, description string) { + logs.Println("[" + tag + "]" + description) + + nodeConfig, _ := nodeconfigs.SharedNodeConfig() + if nodeConfig == nil { + return + } + + select { + case logChan <- &pb.NodeLog{ + Role: teaconst.Role, + Tag: tag, + Description: description, + Level: "error", + NodeId: nodeConfig.Id, + ServerId: serverId, + CreatedAt: time.Now().Unix(), + }: + default: + + } +} + // 上传日志 func uploadLogs() error { logList := []*pb.NodeLog{}