From fbfc9a61ec42dd6f17136eacb3408534bac17177 Mon Sep 17 00:00:00 2001 From: Krishnan Parthasarathi Date: Thu, 18 Jul 2019 09:58:37 -0700 Subject: [PATCH] Add node address information to logs (#7941) --- cmd/admin-handlers.go | 14 ++------------ cmd/handler-utils.go | 13 ++++--------- cmd/logger/logger.go | 1 + cmd/logger/message/log/entry.go | 1 + cmd/logger/reqinfo.go | 1 + cmd/logger/target/console/console.go | 9 +++++++-- cmd/utils.go | 1 + cmd/web-handler-context.go | 1 + 8 files changed, 18 insertions(+), 23 deletions(-) diff --git a/cmd/admin-handlers.go b/cmd/admin-handlers.go index ee902175a..b06921761 100644 --- a/cmd/admin-handlers.go +++ b/cmd/admin-handlers.go @@ -241,17 +241,12 @@ func (a adminAPIHandlers) ServerInfoHandler(w http.ResponseWriter, r *http.Reque if objectAPI == nil { return } - hostName, err := getHostName(r) - if err != nil { - writeErrorResponseJSON(ctx, w, toAdminAPIErr(ctx, err), r.URL) - return - } serverInfo := globalNotificationSys.ServerInfo(ctx) // Once we have received all the ServerInfo from peers // add the local peer server info as well. serverInfo = append(serverInfo, ServerInfo{ - Addr: hostName, + Addr: getHostName(r), Data: &ServerInfoData{ StorageInfo: objectAPI.StorageInfo(ctx), ConnStats: globalConnStats.toServerConnStats(), @@ -442,18 +437,13 @@ func (a adminAPIHandlers) TopLocksHandler(w http.ResponseWriter, r *http.Request writeErrorResponseJSON(ctx, w, errorCodes.ToAPIErr(ErrMethodNotAllowed), r.URL) return } - hostName, err := getHostName(r) - if err != nil { - writeErrorResponseJSON(ctx, w, toAdminAPIErr(ctx, err), r.URL) - return - } peerLocks := globalNotificationSys.GetLocks(ctx) // Once we have received all the locks currently used from peers // add the local peer locks list as well. localLocks := globalLockServer.ll.DupLockMap() peerLocks = append(peerLocks, &PeerLocks{ - Addr: hostName, + Addr: getHostName(r), Locks: localLocks, }) diff --git a/cmd/handler-utils.go b/cmd/handler-utils.go index 3e0433412..69f2905fa 100644 --- a/cmd/handler-utils.go +++ b/cmd/handler-utils.go @@ -31,7 +31,6 @@ import ( "github.com/minio/minio/cmd/logger" "github.com/minio/minio/pkg/auth" "github.com/minio/minio/pkg/handlers" - xnet "github.com/minio/minio/pkg/net" ) // Parses location constraint from the incoming reader. @@ -387,15 +386,11 @@ func notFoundHandler(w http.ResponseWriter, r *http.Request) { } // gets host name for current node -func getHostName(r *http.Request) (hostName string, err error) { - var thisAddr *xnet.Host - hostName = r.Host +func getHostName(r *http.Request) (hostName string) { if globalIsDistXL { - thisAddr, err = xnet.ParseHost(GetLocalPeer(globalEndpoints)) - if err != nil { - return - } - hostName = thisAddr.String() + hostName = GetLocalPeer(globalEndpoints) + } else { + hostName = r.Host } return } diff --git a/cmd/logger/logger.go b/cmd/logger/logger.go index 8bde67de4..cbd36007e 100644 --- a/cmd/logger/logger.go +++ b/cmd/logger/logger.go @@ -331,6 +331,7 @@ func logIf(ctx context.Context, err error) { DeploymentID: req.DeploymentID, Level: ErrorLvl.String(), RemoteHost: req.RemoteHost, + Host: req.Host, RequestID: req.RequestID, UserAgent: req.UserAgent, Time: time.Now().UTC().Format(time.RFC3339Nano), diff --git a/cmd/logger/message/log/entry.go b/cmd/logger/message/log/entry.go index f0fa4c50f..95a65d658 100644 --- a/cmd/logger/message/log/entry.go +++ b/cmd/logger/message/log/entry.go @@ -43,6 +43,7 @@ type Entry struct { Time string `json:"time"` API *API `json:"api,omitempty"` RemoteHost string `json:"remotehost,omitempty"` + Host string `json:"host,omitempty"` RequestID string `json:"requestID,omitempty"` UserAgent string `json:"userAgent,omitempty"` Message string `json:"message,omitempty"` diff --git a/cmd/logger/reqinfo.go b/cmd/logger/reqinfo.go index d278e45c2..535b20201 100644 --- a/cmd/logger/reqinfo.go +++ b/cmd/logger/reqinfo.go @@ -36,6 +36,7 @@ type KeyVal struct { // ReqInfo stores the request info. type ReqInfo struct { RemoteHost string // Client Host/IP + Host string // Node Host/IP UserAgent string // User Agent DeploymentID string // x-minio-deployment-id RequestID string // x-amz-request-id diff --git a/cmd/logger/target/console/console.go b/cmd/logger/target/console/console.go index 1a2d39375..bfd1f751a 100644 --- a/cmd/logger/target/console/console.go +++ b/cmd/logger/target/console/console.go @@ -89,6 +89,11 @@ func (c *Target) Send(e interface{}) error { remoteHost = "\nRemoteHost: " + entry.RemoteHost } + var host string + if entry.Host != "" { + host = "\nHost: " + entry.Host + } + var userAgent string if entry.UserAgent != "" { userAgent = "\nUserAgent: " + entry.UserAgent @@ -99,8 +104,8 @@ func (c *Target) Send(e interface{}) error { } var msg = logger.ColorFgRed(logger.ColorBold(entry.Trace.Message)) - var output = fmt.Sprintf("\n%s\n%s%s%s%s%s\nError: %s%s\n%s", - apiString, timeString, deploymentID, requestID, remoteHost, userAgent, + var output = fmt.Sprintf("\n%s\n%s%s%s%s%s%s\nError: %s%s\n%s", + apiString, timeString, deploymentID, requestID, remoteHost, host, userAgent, msg, tagString, strings.Join(trace, "\n")) fmt.Println(output) diff --git a/cmd/utils.go b/cmd/utils.go index 11a9ff070..7a786591d 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -429,6 +429,7 @@ func newContext(r *http.Request, w http.ResponseWriter, api string) context.Cont DeploymentID: globalDeploymentID, RequestID: w.Header().Get(xhttp.AmzRequestID), RemoteHost: handlers.GetSourceIP(r), + Host: getHostName(r), UserAgent: r.UserAgent(), API: api, BucketName: bucket, diff --git a/cmd/web-handler-context.go b/cmd/web-handler-context.go index c7d260897..4f7e57612 100644 --- a/cmd/web-handler-context.go +++ b/cmd/web-handler-context.go @@ -235,6 +235,7 @@ func newWebContext(r *http.Request, args ToKeyValuer, api string) context.Contex reqInfo := &logger.ReqInfo{ DeploymentID: globalDeploymentID, RemoteHost: handlers.GetSourceIP(r), + Host: getHostName(r), UserAgent: r.UserAgent(), API: api, BucketName: bucket,