WO2015085456A1 - 服务器集群下的日志提取方法和服务器集群 - Google Patents

服务器集群下的日志提取方法和服务器集群 Download PDF

Info

Publication number
WO2015085456A1
WO2015085456A1 PCT/CN2013/088863 CN2013088863W WO2015085456A1 WO 2015085456 A1 WO2015085456 A1 WO 2015085456A1 CN 2013088863 W CN2013088863 W CN 2013088863W WO 2015085456 A1 WO2015085456 A1 WO 2015085456A1
Authority
WO
WIPO (PCT)
Prior art keywords
log
component
application service
output
service
Prior art date
Application number
PCT/CN2013/088863
Other languages
English (en)
French (fr)
Inventor
吕明伟
Original Assignee
北京新媒传信科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京新媒传信科技有限公司 filed Critical 北京新媒传信科技有限公司
Priority to PCT/CN2013/088863 priority Critical patent/WO2015085456A1/zh
Priority to CN201380074271.5A priority patent/CN105191211B/zh
Publication of WO2015085456A1 publication Critical patent/WO2015085456A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications

Definitions

  • the present invention relates to the field of computer network technologies, and in particular, to a server extraction method and a server cluster under a server cluster. Background technique
  • embodiments of the present invention provide a method for extracting logs and a server cluster under a server cluster, so as to solve the problem that the existing solution is too difficult to check for errors of individual users or services in a cluster. .
  • the embodiment of the present invention provides a log extraction method under a server cluster, which includes:
  • the first log component acquires information about the user and/or service associated with the log according to the configuration data, and records the information in the context field set for the log.
  • the first log component obtains an output expression in the log call request according to the log call request of the request end received by the first application service, and the output expression is used to indicate the user and/or service associated with the log requested to be invoked.
  • the condition that the information is satisfied; the first log component matches the output expression with the context field of the log saved in the first log library; the first log component outputs the successfully matched log to the output port specified by the log call request.
  • an embodiment of the present invention provides a server cluster, which includes multiple application servers.
  • the application server includes a first application server, and the first application server includes a first application service, a first log component, and a first log library.
  • a first application service configured to carry a service, receive a service request from a requesting end, and process
  • a first log library configured to store a log of the first application service
  • a first log component configured to log the first application service
  • the embodiment of the present invention records the information of the user and/or service associated with the log in the context field set for the log, and matches the output expression with the context field of the saved log, and the output is successfully matched.
  • the technical means of logging to the specified port which can use the information of the user and/or service to filter out the required logs from the cluster, such as a log of a specific user or a log of a specific service, and can be used for a single user or a specific service.
  • the log is output to the specified server, which greatly facilitates the operation of tracking and troubleshooting individual users or business errors in the cluster, improving the efficiency of troubleshooting the entire system, and meeting the operation and maintenance needs of large-scale server clusters.
  • FIG. 1 is a schematic structural diagram of a server cluster according to an embodiment of the present invention
  • FIG. 2 is a flow chart showing configuration data of an update log component according to still another embodiment of the present invention
  • FIG. 4 illustrates a log extraction method for a single service based on an entire cluster environment according to still another embodiment of the present invention
  • FIG. 5 is a flow chart showing a log extraction method under a server cluster according to still another embodiment of the present invention.
  • a server cluster provided by an embodiment of the present invention includes multiple application servers.
  • the configuration center server and log analysis and test server can also be set up in the cluster.
  • FIG. L shows a schematic structural diagram of a server cluster provided by this embodiment.
  • the server cluster includes an application server 100, a configuration center server 200, and a log analysis and test server 300.
  • the application server 100 includes an application service 110, a log component 111, and a log library 112. These devices are described separately below.
  • the application service 110 is configured to carry a service, receive a service request from the requesting end, and process it.
  • the log of the application service is logged by log component 111.
  • the application service 110 passes the current user or business related information, log level, thread, and session related information to the log component 111.
  • the current user or service related information may be, for example, a user ID, a service ID, a user status or a service status, and other description information about the user or the service, etc., and the log component 111 records the related information in the context field of the log to Use this information to match the output expression in the log call request.
  • the component 111 is a reusable code library that provides an interface for recording application service logs upwards and stores the logs down to the log library 112.
  • the log component 111 can determine whether the log should be recorded based on log level, thread information, session information, user information, and/or business information.
  • the log component 111 provided in this embodiment has a function of setting a context (Context) field for a log, and is used for setting information of a user and/or a service in a context field of a log, and outputting an expression and a context in the log call request.
  • the fields are matched.
  • the function when the log component 111 records the log of the application 110 to the corresponding log library 112, the component 111 acquires the information of the user and/or service associated with the log according to the configuration data that has been acquired by itself.
  • the output expression is used to indicate and request The user and/or business letter associated with the called log If the condition is satisfied, the output expression is matched with the context field of the log saved in the log library 112; the successfully matched log is output to the output port specified by the log call request, such as output to a text file, a database, and an RPC ( Remote Procedure Call Protocol, in the Remote Procedure Call Protocol) interface.
  • RPC Remote Procedure Call Protocol, in the Remote Procedure Call Protocol
  • the log library 112 stores log data of the application service.
  • An application service corresponds to a log component and a log library.
  • the configuration center server 200 synchronizes the configuration data of the log components in all application servers throughout the server cluster.
  • the configuration center server 200 saves and updates the configuration data of the log component of all application services in the cluster, for example, for the first log component in the first application server in the server cluster, the configuration center server 200 periodically polls the subscription of the first log component.
  • the version number included in the information (that is, the version number in the configuration data of the first log component) is consistent with the version number in the corresponding configuration data saved by the configuration center server. When the version numbers are inconsistent, the first component is sent to the first component.
  • the version update prompt information and, according to the version update prompt information, the new configuration data is sent to the first log component.
  • the first log component sends the subscription information to the configuration center server, where the subscription information includes a version number in the configuration data; and the version number included in the subscription information and the version in the corresponding configuration data saved in the configuration center server
  • the version update prompt information sent by the configuration center server is received; the new configuration data is obtained from the configuration center server according to the version update prompt information, and the new configuration data is enabled.
  • the configuration data of the log used by the central server 200 in the cluster environment described in this embodiment mainly includes the following contents:
  • Level information From low to high are: call trace (TRACE) log, debug (DEBUG) log, business (INFO) log, warning (WARN) log, error (ERROR) log.
  • TRACE call trace
  • DEBUG debug
  • INFO business
  • WARN warning
  • ERROR error log
  • Appender Outputs log information to the output of the persistence device or RPC interface. Output methods include text output, database output, and RPC output.
  • Filter Used to filter the log to determine whether the log needs to be output. In the judgment of whether the log is output, the filter is first determined. If all the filters are neutral, the judgment is made according to the level, wherein the filters can be cascaded. The filter of this embodiment can judge according to the thread information, the context field, and the current user information. The filter can return the following results "Pass": Output this log directly.
  • the filter in this embodiment includes a filter for matching a context field and an output expression (referred to as a context filter), and setting a list of the context filter and related context fields in the configuration center server.
  • a context filter for matching a context field and an output expression
  • setting a list of the context filter and related context fields in the configuration center server In the global configuration.
  • the context filter returns two results "pass” and "neutral".
  • the log is entered into the context filter for filtering.
  • the result returned by the context filter is "pass”; when the output expression in the log is associated with the context filter
  • the result returned by the context filter is "neutral”.
  • the log component When the result returned by the context filter is "neutral", that is, the log does not match the successful log in the pair of context filters, the log component sends the log to the next filter, if all context filters return results Neutral, judging the level of the log, that is, the filter for level judgment determines whether the level of the log is greater than or equal to the currently configured log level of the allowed output, and if so, the log component outputs the log to the log call request The specified output port, if not, the log component does not output the log.
  • the log analysis and test server 300 is configured to control the update of the configuration data in the configuration center server, and obtain the corresponding log from the application server according to the received log call request, and display the log on the interactive interface for error troubleshooting.
  • the log analysis and test server 300 is mainly for the operation and maintenance personnel.
  • the log configuration and setting instructions of the operation and maintenance personnel can be used to increase the log configuration conditions for the user and the session, and the log information is reflected in the query interface in real time.
  • the log call can be initiated by the development or operation personnel log analysis and test server 300, and the log of the test request is completely output to the interactive interface of the log analysis and test server 300 to facilitate the problem.
  • a further embodiment of the present invention mainly describes an update process of configuration data of a log component in an application server. For other contents of the server cluster of the present invention, refer to descriptions of other embodiments. Referring to FIG. 2, the embodiment provides The flow diagram of the configuration data of the update log component includes the following steps:
  • the log component obtains configuration data from the configuration center service.
  • the application service corresponding to the component will first establish a long connection with the configuration center service and maintain, through which the read configuration request is sent to the configuration center service.
  • the configuration center server side may specifically include a configuration center service, a configuration library, and a configuration analysis service.
  • the configuration data is saved in the configuration repository.
  • the configuration data includes the configuration information and version number of the configuration server.
  • the configuration analysis service is responsible for the update of configuration information.
  • the log component sends a read configuration request to the configuration center service, and the configuration center service passes the configuration request to the configuration repository, and the configuration repository returns the requested configuration data to the component through the configuration center service, and then proceeds to step S201.
  • S201 The log component subscribes to the configuration data for the configuration center service.
  • the log component sends a subscription configuration request to the configuration center server, through which the subscription information of the log component is sent to the configuration center server, and the subscription information includes the version number of the information in the configuration data of the log component.
  • the subscription information may also include the name of the application service corresponding to the log component, the application server where the log component is located, and the time of the subscription.
  • the configuration center service saves the subscription information for each log component to the configuration repository.
  • the process proceeds to step S202.
  • the configuration analysis service When the configuration analysis service performs the update, the configuration information that needs to be updated in the configuration repository and its version number are modified to the new configuration information and the new version number.
  • the configuration center service polls the subscription information of the log component stored in the configuration repository and the configuration data stored in the configuration repository, and determines whether the version number in the subscription information is consistent with the version number in the corresponding configuration data in the configuration repository, if no , execute S204.
  • the configuration center service periodically polls the subscription information of all the log components in the configuration library and the configuration data in the configuration repository, and determines the version number in the configuration data included in the subscription information and the version number corresponding to the configuration data of the configuration library. If they are consistent, if the version of the configuration information needs to be updated, go to S204.
  • the configuration center server sends a version update prompt message to the log component.
  • the configuration center server searches for a long connection established with the application service subscribed to the data, and sends a version update prompt message to the log component through the long connection, and proceeds to step S205. .
  • S205 The log component acquires new configuration data from the configuration center server according to the version update prompt information.
  • the log component After receiving the version update prompt information, the log component obtains the configuration number through the configuration center service. According to this, you will get new configuration information and a new version number.
  • the log component sends a read configuration request to the configuration hub server, which configures the central server to pass the configuration request to the configuration repository.
  • the configuration repository returns the new configuration information and version number to the log component through the configuration hub server.
  • S206 The log component performs a configuration refresh operation. If the refresh is successful, S207 is performed.
  • the log component is configured to refresh the operation. If the configuration is successfully refreshed, the newly obtained configuration data is valid, so that the new configuration data can be enabled, and the process proceeds to step S207.
  • S207 The log component continues to perform the subscription operation and subscribes to the configuration center server for configuration data. After the refresh operation is successful, the log component continues to perform the subscription operation, which transmits the newly obtained version number to the configuration center, and the configuration center updates the subscribed information in the configuration center to obtain the configuration version field. At this point, the configuration data of the log component has been updated to the latest version, and the polling operation does not re-trigger the update operation of the configuration data.
  • Yet another embodiment of the present invention is primarily directed to a process for tracking and extracting a single user or a single service in a cluster. For other contents of the server cluster of the present invention, reference is made to the description of other embodiments.
  • Step 1 The requester enters the user ID to be tracked through the interactive interface.
  • the operation and maintenance personnel can input the user ID of the user to be tracked through the log analysis and the test server's interactive interface, and send a log call request to the application service.
  • the log call request also includes the specified port for the output log.
  • the application service After receiving the log call request, the application service determines whether there is an output expression, and if so, saves the output expression to the context of the current thread to perform tracking of the individual user log through the thread.
  • Step 2 The application service starts the context component of the log component and adds the exporter and output address. Add a context filter to the global configuration that has the context filter in the configuration data for the log component.
  • the filter condition of the context filter is that the user ID in the log context field is equal to the user ID in the log call request, and the returned result is "pass", and the log is output, otherwise "neutral".
  • the output address added above is the output port specified in the log call request.
  • the log component when the log component records the log of the user, the information about the user associated with the log is obtained according to the configuration data.
  • the configuration data indicates that the user information associated with the log that needs to be acquired includes the user ID, and the log component The user ID is recorded in the context field set for the log when the log is logged.
  • Step 3 When the result returned by the context filter is passed, the log component outputs the matching success log to the output address through the exporter.
  • the log component matches the output expression in the log call request with the context field of the log saved in the log library.
  • the successfully matched log is a log whose user ID matches, and the log is output to the designated output port through the output.
  • the log components of all application servers in the cluster can intercept the logs matching the user ID according to the operations in steps 1 to 3 above, and output them to the specified output port to track the logs of individual users.
  • Step 4 The log analysis and test server polls the log output on all application servers in real time, collects the output results and displays them on the log analysis and test server interface for the operation and maintenance personnel to query.
  • FIG. 3 a log tracking process for a single service call provided by this embodiment is shown, which includes the following steps:
  • the requesting end puts the port address and output expression of the log output into the extension field of the service call request, and initiates a service call. That is, the contents of the log call request can be set in the extension field of the service call request.
  • S301 The application service extracts an output expression from the service call request.
  • the application service After receiving the service call request, the application service determines whether there is an output expression, and if so, extracts the output expression, and proceeds to step S302.
  • the application service adds an RPC-based log exporter, and then proceeds to step S303.
  • the call to the service is usually based on the RP C mode.
  • This embodiment adds the log component.
  • An RPC-based log exporter adds an RPC-based log output scheme, including the following:
  • the output address of the exporter is the output port specified in the log call request.
  • the output address is the address of the RPC log receiving server tcp: ⁇ 192.168.1.100:7078.
  • the application service saves the output expression to the context of the current thread.
  • the current thread runs the context filter to track the business call log, so the thread needs to know the output expression through the thread context.
  • the context filter of the application service setting log component is turned on, and the process proceeds to step S304.
  • step S305 When the application service executes the business code to implement the business call, a log is generated, and the log component writes the log to the log library.
  • the log component When the log component writes the log, it obtains business-related information according to the configuration data of the log component, and records the information in the context field set for the log of the service.
  • step S304 the flow proceeds to step S305.
  • S305 The log component uses the context filter to match the log's context field with the output expression in the service call request to filter the log.
  • the context filter When the log component executes the log output, the context filter is enabled, and it is determined whether there is an output expression in the context of the thread. If the output expression exists, the log component will output the log output filtered by the context filter of the thread. Go to the specified output port that was added before. For other business requests, because these requests are not executed in the current thread, and there is no thread context, the logs generated by these service requests are not output to the specified port. After the log filtering operation is completed, the process proceeds to step S306.
  • step S306 After the execution of the service code ends, the application service notifies the requesting end that the service call is completed, and proceeds to step S307.
  • S307 Close the context filter that is enabled in this service call, and only all the logs of this service call are output to the specified address.
  • the service call is usually not limited to one application server, and there are likely to be concurrent scenarios, and a concurrent scenario in which a service call is performed for multiple application servers, and another embodiment of the present invention provides a A log extraction method for a single service in an entire cluster environment, which can output logs of specific services between different servers to a specific server. Referring to FIG. 4, the following steps are specifically included:
  • step S400 The log analysis and test server initiates a sampling request to the access layer service, and proceeds to step S401.
  • an access layer service is set up in the cluster to schedule service requests between application servers to maintain load balancing.
  • the sampling request can be initiated by the operation and maintenance personnel in the log analysis and test server to the access layer service involved.
  • the sampling request includes a sampling configuration, which may include the number of samplings (such as N times), the address of the sampled log output (such as setting the output port as a log test and analysis server), and the sampling strategy.
  • the sampling strategy may include one or more of the following:
  • step S401 The requesting end sends a service request to the access layer service, and the access layer service forwards the service request to the corresponding application service, and proceeds to step S402.
  • the access layer service determines the service request of the requesting end (such as the client) according to the received sampling configuration. If the sampling configuration is met, the service request of the requesting end is forwarded to the actual application service of the back end, such as the first application server. The output request for tracking the log and the specified output port of the log are included in the service request.
  • the sampling strategy allows you to record the logs of specific users or IPs that need attention (such as users or IPs that failed to send information) and log them to a specific server, which facilitates error tracking and troubleshooting.
  • the first application service After receiving the service request, the first application service determines whether an output expression exists in the service request, and if yes, saves the output expression to the current thread context, and sets a context component of the log component to be enabled and added.
  • the output device and the output port; the first application service performs business processing, and outputs the filtered log to the designated output port (such as a log analysis and test system) through the output device.
  • the first application service invokes the second application service by using a calling component between the application services, and proceeds to step S404.
  • the above calling component can be an RPC based calling component.
  • the RPC calling component determines whether the current thread context of the first application service has an output expression, and if so, passes the output expression and the specified output address. After the service call request sent to the second application service, the second application service is invoked through the service call request.
  • the second application service receives an RPC-based service call request from the first application service.
  • the second application service determines whether an output expression exists in the service call request, and if yes, saves the output expression to the second application service.
  • set the context filter of the second log component to be on and add the exporter and output port.
  • the second application service performs business processing, and outputs the filtered log to a designated port (such as a log analysis and test system).
  • step S404 For details of the S404, refer to the detailed description of the above steps S301 to S305. After the call between the applications ends, the flow proceeds to step S405.
  • S405 The second application service ends the call, returns a call end message to the first application service, and the second application service removes its own thread context flag to prevent the log from continuing to be output.
  • step S406 The specific operation in S406 is the same as that in step S402, and then proceeds to step S407.
  • the present embodiment provides a solution for the lack of a large-scale server cluster design in the existing log system, and provides a solution for real-time log capture under a large server cluster.
  • this embodiment provides log tracking for a single service. In the large-scale business system, the efficiency of overall troubleshooting is greatly improved.
  • a further embodiment of the present invention provides a method for extracting logs in a server cluster.
  • the method includes the following steps: S500: When the first log component records the log of the first application service to the corresponding first log library, acquires information about the user and/or service associated with the log according to the configuration data, and records the information in a context set for the log. In the field.
  • the server cluster includes a plurality of application servers, and the first application server is any one of the application servers, and each application server includes an application service, a log component, and a log library.
  • the application service, the log component, and the log library in the first application server may be referred to as a first application service, a first log component, and a first log library.
  • the configuration data used by the first log component described above includes, but is not limited to, the level of the log, the output, and the filter.
  • the first log component mainly learns the information of the user and/or service associated with the log based on the content in the context filter.
  • the embodiment may further record the log of the specific user and/or the service and record the log to the specific server.
  • the recording the log of the first application service to the corresponding first database further includes: using the first application The service generates a log record for the service request that satisfies the sampling policy to the corresponding first log library, where the sampling policy includes at least one of the following: randomly recording a log generated by the application service to the service request; or, recording the application service as A log generated by a specific user's business request; or a log generated by the application service for a service request of a specific IP address.
  • the first log component obtains an output expression in the log call request according to the log call request of the request end received by the first application service, where the output expression is used to indicate a user and/or a service associated with the log requested to be invoked.
  • the information meets the conditions.
  • the output expression is used to indicate that the request is called to log the user whose user ID is ID1, or the output expression is used to indicate that the request to call the log is a log of the user whose user is not older than 18 years old, and so on.
  • the first log component matches the output expression with the context field of the log saved in the first log library.
  • the first log component can implement the matching operation through a context filter.
  • S503 The first log component outputs the log with a successful match to the output port specified by the log call request.
  • the specified output port can be a specific server.
  • the successfully matched log is output to the log analysis and test server output port specified by the log call request to display the log on the log analysis and test server interaction interface for error troubleshooting.
  • the first log component will continue to filter the log according to the level. For example, the first log component determines whether the level of the log is greater than or equal to the current configured permission. If the log level is output, if yes, the log is output to the output port specified by the log call request. If not, the log is not output.
  • the embodiment further provides a processing method for updating configuration data in the first log component, including: sending subscription information to a configuration center server in the cluster, where the subscription information includes a version number in the configuration data; Receiving the version update prompt information sent by the configuration center server when the version number included is different from the version number in the corresponding configuration data in the configuration center server; acquiring new configuration data from the configuration center server according to the version update prompt information and enabling the version number New configuration data.
  • a processing method for updating configuration data in the first log component including: sending subscription information to a configuration center server in the cluster, where the subscription information includes a version number in the configuration data; Receiving the version update prompt information sent by the configuration center server when the version number included is different from the version number in the corresponding configuration data in the configuration center server; acquiring new configuration data from the configuration center server according to the version update prompt information and enabling the version number New configuration data.
  • the embodiment further provides a method for outputting a log of a specific service call between different servers to a specific server, including: when the first application service invokes the second application service, the calling component between the application services (such as RPC) The calling component) includes the output port specified by the log call request and the corresponding output expression in the application service call request and sent to the second application service; the second log component outputs the second log library corresponding to the second application service The context fields of the saved records are matched; the second log component outputs the successfully matched records in the second log library to the output port specified by the log call request.
  • the calling component between the application services (such as RPC)
  • the calling component includes the output port specified by the log call request and the corresponding output expression in the application service call request and sent to the second application service
  • the second log component outputs the second log library corresponding to the second application service
  • the context fields of the saved records are matched
  • the second log component outputs the successfully matched records in the second log library to the output port specified by the log call request.
  • the embodiment of the present invention records the information of the user and/or service associated with the log in the context field set for the log, and matches the output expression with the context field of the saved log, and the output is successfully matched.
  • the technical means of logging to the specified port which can use the information of the user and/or service to filter out the required logs from the cluster, such as a log of a specific user or a log of a specific service, and can be used for a single user or a specific service.
  • the log is output to the specified server, which greatly facilitates the operation of tracking and troubleshooting individual users or business errors in the cluster, improving the efficiency of troubleshooting the entire system, and meeting the operation and maintenance needs of large-scale server clusters.
  • the words “first”, “second” and the like are used to distinguish the same or similar items whose functions and functions are substantially the same. Personnel can understand that the words “first”, “second”, etc. do not limit the number and order of execution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 本发明公开了一种服务器集群下的日志提取方法和服务器集群。本发明实施例提供的一种服务器集群下的日志提取方法包括:第一日志组件在将第一应用服务的日志记录至对应的第一日志库时,根据配置数据获取与日志关联的用户和/或业务的信息,并将该信息记录在为日志设置的上下文字段中;第一日志组件根据第一应用服务接收到的请求端的日志调用请求,获知该日志调用请求中的输出表达式,该输出表达式用于指示与请求调用的日志关联的用户和/或业务的信息满足的条件;第一日志组件将输出表达式与第一日志库中保存的日志的上下文字段进行匹配;将匹配成功的日志输出至日志调用请求所指定的输出端口。

Description

服务器集群下的日志提取方法和服务器集群
技术领域 本发明涉及计算机网络技术领域, 特别涉及一种服务器集群下的曰志 提取方法和服务器集群。 背景技术
在服务器系统的开发与维护中, 分析日志是一种主要的排错手段, 在 不同的领域下也出现了 ^艮多成熟的日志系统, 允许将日志写入本地的文本 文件或中心数据库文件。
然而, 现有的日志系统已无法满足大规模服务器集群的运维需要, 例 如, 现有日志系统将不同用户或不同业务的日志混杂在一起输出及处理, 导致在集群的几百台服务器中通过日志排查单个用户或业务的错误时难 度过高。 发明内容 鉴于上述问题, 本发明实施例提供了一种服务器集群下的日志提取方 法和服务器集群, 以解决现有方案在集群中通过曰志排查单个用户或业务 的错误时难度过高的问题等。
为了达到上述目的, 本发明实施例采用的技术方案如下:
一方面, 本发明实施例提供了一种服务器集群下的日志提取方法, 包 括:
第一日志组件在将第一应用服务的日志记录至对应的第一日志库时, 根据配置数据获取与日志关联的用户和 /或业务的信息,并将信息记录在为 曰志设置的上下文字段中; 第一日志组件根据第一应用服务接收到的请求 端的日志调用请求, 获知日志调用请求中的输出表达式, 该输出表达式用 于指示与请求调用的日志关联的用户和 /或业务的信息满足的条件;第一日 志组件将输出表达式与第一日志库中保存的日志的上下文字段进行匹配; 第一日志组件将匹配成功的日志输出至日志调用请求所指定的输出端口。 另一方面, 本发明实施例提供了一种服务器集群, 包括多个应用服务 器。 该应用服务器中包括第一应用服务器, 第一应用服务器包括第一应用 服务、 第一日志组件和第一日志库。
第一应用服务, 用于承载业务, 接收来自请求端的业务请求并处理; 第一日志库, 用于存储第一应用服务的日志; 第一日志组件, 用于在将第 一应用服务的日志记录至对应的第一日志库时, 根据配置数据获取与曰志 关联的用户和 /或业务的信息, 并将信息记录在为日志设置的上下文字段 中; 根据第一应用服务接收到的请求端的日志调用请求, 获知日志调用请 求中的输出表达式, 该输出表达式用于指示与请求调用的日志关联的用户 和 /或业务的信息满足的条件;将输出表达式与第一日志库中保存的日志的 上下文字段进行匹配; 将匹配成功的日志输出至日志调用请求所指定的输 出端口。 由上所述,本发明实施例通过将与日志关联的用户和 /或业务的信息记 录在为日志设置的上下文字段中, 以及将输出表达式与保存的日志的上下 文字段进行匹配、 输出匹配成功的日志至指定端口的技术手段, 能够利用 用户和 /或业务的信息从集群中筛选出需要的日志,如某一特定用户的日志 或某一特定业务的日志, 并能够将单个用户或特定业务的日志输出至指定 的服务器, 从而极大便利了在集群中通过日志追踪和排查单个用户或业务 错误的操作, 提高了整个系统排错的效率, 满足了大规模服务器集群的运 维需要。 附图说明 图 1示出了根据本发明一个实施例的一种服务器集群的结构示意图; 图 2示出了根据本发明又一个实施例的更新日志组件的配置数据的流 程示意图; 图 3示出了根据本发明又一个实施例的针对单个业务调用的日志追踪 流程; 图 4示出了根据本发明又一个实施例的基于整个集群环境下的面向单 个业务的日志抽取方法; 图 5 示出了根据本发明又一个实施例的一种服务器集群下的日志提 取方法流程图。
具体实施方式 为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本 发明实施方式作进一步地详细描述。 本发明一个实施例提供的一种服务器集群, 包括多个应用服务器。 该 集群中还可以设置有配置中心服务器和日志分析及测试服务器。参见图 L 示出了本实施例提供的一个服务器集群的结构示意图。 该服务器集群中包 括应用服务器 100、 配置中心服务器 200和日志分析及测试服务器 300。 应用服务器 100中包括应用服务 110、 日志组件 111和日志库 112。 下面 分别对这些器件进行说明。
应用服务 110用于承载业务, 接收来自请求端的业务请求并处理。 应 用服务的日志会通过日志组件 111进行记录。 记录时, 应用服务 110会将 当前的用户或业务的相关信息、 日志等级、 线程及会话相关的信息传给日 志组件 111。 当前的用户或业务的相关信息,可以为诸如用户 ID、业务 ID、 用户状态或业务状态以及其它对用户或业务的描述信息等, 日志组件 111 将这些相关信息记录在日志的上下文字段中, 以利用这些相关信息来匹配 日志调用请求中的输出表达式。
曰志组件 111为可复用的代码库,向上提供记录应用服务日志的接口 , 向下将日志存储至日志库 112。 日志组件 111可以根据日志等级、 线程信 息、 会话信息、 用户信息和 /或业务信息判断该日志是否应当进行记录。
本实施例提供的日志组件 111具有为日志设置上下文( Context )字段 的功能, 用于将用户和 /或业务的信息设置在日志的上下文字段中, 以及将 日志调用请求中的输出表达式与上下文字段进行匹配。例如,通过该功能, 曰志组件 111在将应用 1务 110的日志记录至对应的日志库 112时, 曰志 组件 111 根据自身已获取的配置数据获取与日志关联的用户和 /或业务的 信息, 并将该信息记录在为日志设置的上下文字段中; 以及, 根据应用服 务 110接收到的请求端的日志调用请求, 获知该日志调用请求中的输出表 达式,该输出表达式用于指示与请求调用的日志关联的用户和 /或业务的信 息满足的条件, 则将输出表达式与日志库 112中保存的日志的上下文字段 进行匹配; 将匹配成功的日志输出至日志调用请求所指定的输出端口, 如 输出至文本文件、 数据库及 RPC ( Remote Procedure Call Protocol, 远程过 程调用协议)接口中。
曰志库 112存储应用服务的日志数据。 一个应用服务对应一个日志组 件和日志库。
配置中心服务器 200在整个服务器集群中同步所有应用服务器中日志 组件的配置数据。 配置中心服务器 200保存并更新集群中所有应用服务的 日志组件的配置数据, 例如, 对服务器集群中的第一应用服务器中的第一 日志组件, 配置中心服务器 200定时轮询第一日志组件的订阅信息中包括 的版本号 (即第一日志组件的配置数据中的版本号) 与配置中心服务器保 存的对应的配置数据中的版本号是否一致, 当版本号不一致时, 向第一曰 志组件发送版本更新提示信息, 以及, 根据该版本更新提示信息将新的配 置数据发送至第一日志组件。 相应的, 第一日志组件会向配置中心服务器 发送订阅信息, 该订阅信息包括配置数据中的版本号; 当该订阅信息中包 括的版本号与配置中心服务器中保存的对应的配置数据中的版本号不一 致时, 接收配置中心服务器发送的版本更新提示信息; 根据版本更新提示 信息从配置中心服务器获取新的配置数据并启用该新的配置数据。
其中, 在本实施例所描述的集群环境下, 配置中心服务器 200所使用 的日志的配置数据主要包含以下内容:
1 : 级别(Level)信息: 从低到高分别为: 调用跟踪 (TRACE ) 日志、 调试 (DEBUG ) 日志、 业务(INFO ) 日志、 警告 (WARN ) 日志、 错误 ( ERROR ) 日志。
当待输出的日志的级别大于或等于当前配置的允许输出的日志级别
2: 输出器 (Appender ) : 将日志信息输出到持久化设备或 RPC接口 的输出器。 输出方式包含文本输出、 数据库输出和 RPC输出。
3 :过滤器 (Filter):用于对日志进行过滤,以判断该日志是否需要输出。 在日志是否输出的判断上, 先判断过滤器, 如果所有过滤器都中立, 则根 据级别进行判断, 其中过滤器可以级联。 本实施例的过滤器可以根据线程 信息、 上下文字段及当前用户信息进行判断。 过滤器可以返回以下结果之 "通过" : 直接输出此日志。
"不通过" : 直接忽略此日志。
"中立" : 过滤器不做表态, 交给下一个过滤器, 或按照日志级别进 行处理。
需要说明的是, 本实施例中的过滤器包括用于上下文字段与输出表达 式匹配的过滤器(简称为上下文过滤器) , 将该上下文过滤器和相关的上 下文字段的列表设置在配置中心服务器的全局配置当中。
可选的, 该上下文过滤器返回两种结果 "通过" 和 "中立" 。 将日志 输入至上下文过滤器进行过滤, 当日志中的输出表达式与上下文过滤器对 应的上下文字段匹配时, 上下文过滤器返回的结果是 "通过" ; 当日志中 的输出表达式与上下文过滤器对应的上下文字段不匹配时, 上下文过滤器 返回的结果是 "中立" 。
当上下文过滤器返回的结果是 "中立" , 即该日志与该对上下文过滤 器中没有匹配成功的日志, 日志组件将该日志发送至下一过滤器, 如果所 有上下文过滤器返回的结果都是中立, 对该日志的级别进行判断, 即用于 级别判断的过滤器判断该日志的级别是否大于或等于当前配置的允许输 出的日志级别时, 若是, 日志组件将该日志输出至日志调用请求所指定的 输出端口, 若否, 日志组件不输出该日志。
日志分析及测试服务器 300用于控制配置中心服务器中配置数据的更 新, 以及根据接收的日志调用请求, 从应用服务器获取到对应的日志, 将 该日志展示在交互界面以进行错误排查。 具体的, 日志分析及测试服务器 300主要面向运维人员, 可以通过运维人员的日志配置设置指令, 增加针 对用户、 针对会话的日志配置条件, 并且将日志信息实时的反映在查询界 面上, 另外可以由开发或运维人员日志分析及测试服务器 300发起日志调 用 "青求(如测试^清求) , 并将测试请求的日志完整输出到日志分析及测试 服务器 300的交互界面上以便于问题的排查。 本发明又一个实施例主要对应用服务器中日志组件的配置数据的更 新流程进行说明, 关于本发明服务器集群的其他内容参见其他实施例的描 述。 参见图 2, 示出了本实施例提供的更新日志组件的配置数据的流程示 意图, 包括如下步骤:
S200: 日志组件向配置中心服务获取配置数据。 曰志组件对应的应用服务会首先和配置中心服务建立一条长连接并 保持, 通过该长连接向配置中心服务发送读取配置请求。 如图 2所示, 配 置中心服务器侧可以具体包括配置中心服务、 配置库和配置分析服务。 配 置库中保存配置数据, 配置数据包括配置中心服务器侧的配置信息和版本 号, 配置分析服务负责配置信息的更新操作。
日志组件向配置中心服务发送读取配置请求, 配置中心服务将该配置 请求传递至配置库, 配置库通过配置中心服务将所请求的配置数据返回至 曰志组件, 然后, 进入步骤 S201。
S201 : 日志组件向配置中心服务订阅配置数据。
日志组件向配置中心服务器发送订阅配置请求, 通过该订阅配置请求 将日志组件的订阅信息发送至配置中心服务器, 订阅信息包括日志组件的 配置数据中信息的版本号。 订阅信息中还可以包括日志组件对应的应用服 务的名称、 日志组件所在的应用服务器以及本次订阅的时间。
配置中心服务将各日志组件的订阅信息保存至配置库。 当需要执行对 配置数据的更新时, 进入步骤 S202。
S202: 配置分析服务更新配置数据。
配置分析服务执行更新时, 将配置库中需要更新的配置信息及其版本 号修改为新的配置信息和新的版本号。
S203 : 配置中心服务轮询配置库中存储的日志组件的订阅信息与配置 库中存储的配置数据, 并判断订阅信息中的版本号与配置库中对应配置数 据中的版本号是否一致, 如果否, 执行 S204。
具体的, 配置中心服务定时轮询配置库中所有日志组件的订阅信息与 配置库中的配置数据, 并判断订阅信息中包括的配置数据中的版本号与配 置库的配置数据中对应的版本号是否一致, 如果不一致, 说明配置信息的 版本需要更新, 则执行 S204。
S204: 配置中心服务器向日志组件发送版本更新提示信息。
当订阅信息中的版本号与配置数据中的版本号不一致时, 配置中心服 务器查找与订阅此数据的应用服务建立的长连接, 通过此长连接, 向日志 组件发送版本更新提示信息, 进入步骤 S205。
S205: 日志组件根据所述版本更新提示信息向配置中心服务器获取新 的配置数据。
日志组件接收到版本更新提示信息后, 通过配置中心服务获取配置数 据, 此时会获得到新的配置信息及新的版本号。
日志组件向配置中心服务器发送读取配置请求, 配置中心服务器将该 配置请求传递至配置库, 配置库通过配置中心服务器将新的配置信息及版 本号返回至日志组件。
S206: 日志组件执行配置刷新操作, 如果刷新成功, 执行 S207。
日志组件通过配置刷新操作, 如果配置刷新成功, 让新获取的配置数 据生效, 从而可以启用该新的配置数据, 进入步骤 S207。
本步骤中, 如果刷新操作失败, 则无法完成对日志组件中的配置信息 的更新, 无法继续执行订阅操作, 所以当配置中心服务再次执行轮询操作 时还会触发配置数据的更新操作, 直到刷新成功为止。
S207: 日志组件继续执行订阅操作,向配置中心服务器订阅配置数据。 当刷新操作成功后, 日志组件继续执行订阅操作, 此操作将新获取到 的版本号传给配置中心, 配置中心更新订阅信息中的, 已获取配置版本字 段。 此时日志组件的配置数据已经更新为最新版本, 且轮询操作不会重新 触发配置数据的更新操作。 本发明又一个实施例主要对在集群中针对单个用户或单个业务的曰 志追踪并提取的流程进行说明, 关于本发明服务器集群的其他内容参见其 他实施例的描述。
本实施例提供的一种针对单个用户的日志追踪并提取流程包括如下 步骤:
步骤 1 : 请求端通过交互界面输入需要追踪的用户 ID。
例如, 运维人员可以通过日志分析及测试服务器的交互界面输入需要 追踪的用户的用户 ID, 向应用服务发送日志调用请求。 该日志调用请求中 的输出表达式用于指示请求调用的日志满足的条件为: 请求调用的日志的 用户 ID= S志调用请求中的用户 ID。 日志调用请求中还包括输出日志的指 定端口。
应用服务收到日志调用请求后,判断是否存在输出表达式,如果存在, 则将输出表达式保存到当前线程的上下文当中, 以通过该线程执行对单个 用户日志的追踪。
步骤 2: 应用服务启动日志组件的上下文过滤器并添加输出器和输出 地址。 在全局配置中增加一个上下文过滤器, 日志组件的配置数据中具有该 上下文过滤器。 本场景中该上下文过滤器的过滤条件为日志上下文字段中 的用户 ID与日志调用请求中的用户 ID相等, 则返回的结果为 "通过" , 输出该日志, 否则 "中立" 。 而上述添加的输出地址为日志调用请求中指 定的输出端口。
需要说明的是, 日志组件在对用户的日志进行记录时, 会根据配置数 据获取与日志关联的用户的信息, 例如, 配置数据指示需要获取的与日志 关联的用户信息包括用户 ID, 则日志组件在记录日志时将用户 ID记录在 为该日志设置的上下文字段中。
步骤 3 : 当上下文过滤器返回的结果是通过时, 日志组件通过输出器 将匹配成功的日志输出所述输出地址。
日志组件将日志调用请求中的输出表达式与日志库中保存的日志的 上下文字段进行匹配, 匹配成功的日志为用户 ID符合的日志, 通过输出 器将该日志输出至指定的输出端口。
集群中所有应用服务器的日志组件都可以根据上述步骤 1至 3中的操 作将用户 ID符合的日志截取出来, 输出至指定的输出端口, 实现单个用 户的日志的追踪。
步骤 4: 由日志分析及测试服务器实时轮询所有应用服务器上的日志 输出, 收集输出结果并展示在日志分析及测试服务器的界面上, 供运维人 员查询。 参见图 3 ,示出了本实施例提供的针对单个业务调用的日志追踪流程, 包括如下步骤:
S300: 请求端向应用服务发送业务调用请求, 进入步骤 S301。
请求端将日志输出的端口地址及输出表达式, 放到业务调用请求的扩 展字段中, 发起业务调用。 即可以将日志调用请求中的内容设置在业务调 用请求的扩展字段中。
S301 : 应用服务从业务调用请求中提取出输出表达式。
应用服务收到业务调用请求后,判断是否存在输出表达式,如果存在, 将该输出表达式提取出来, 进入步骤 S302。
S302: 应用服务添加基于 RPC的日志输出器, 然后, 进入步骤 S303。 对业务的调用通常是基于 RP C方式的,本实施例在日志组件中添加了 一个基于 RPC的日志输出器, 增加了基于 RPC的日志输出方案, 包括如 下:
添加 RPC的日志输出器,该输出器的输出地址为日志调用请求中指定 的输出端口, 例如该输出地址为 RPC 日志接收端服务器的地址 tcp:〃192.168.1.100:7078。 当需要输出日志时, 先将需要输出的日志信息放 到队列中。 由于业务产生的日志数量较多, 另外启动一个定时任务, 定期 从队列中将日志信息批量读取出来发送到上述地址。 如果发送失败, 且重 试次数超过 N次 (N的取值根据系统设置) , 则自动移除此基于 RPC的 输出器, 以避免性能消耗。
S303 : 应用服务设置日志组件的上下文过滤器。
应用服务将输出表达式保存到当前线程的上下文当中。 通过当前线程 运行上下文过滤器进行对业务调用日志的追踪, 所以该线程需要通过线程 上下文获知输出表达式。 应用服务设置日志组件的上下文过滤器为开启状 态, 继续执行步骤 S304。
S304: 应用服务执行业务代码。
当应用服务执行业务代码实现业务的调用时, 会生成日志, 日志组件 将这些日志写入日志库中。 日志组件在写日志时, 会根据日志组件的配置 数据获取与业务相关的信息, 将这些信息记录在为业务的日志设置的上下 文字段中。在执行步骤 S304的同时或执行步骤 S304之后,进入步骤 S305。
S305: 日志组件利用上下文过滤器将日志的上下文字段与业务调用请 求中的输出表达式匹配, 对日志进行过滤。
当日志组件执行日志输出时, 上下文过滤器为开启状态, 则判断本线 程的上下文中是否存在输出表达式, 若输出表达式存在, 则日志组件会将 本线程的上下文过滤器过滤出的日志输出到之前添加的指定输出端口上。 对于其他的业务请求, 因为这些请求并不在当前线程执行, 也不存在线程 上下文, 所以由这些业务请求产生的日志不会被输出至指定端口上。 日志 过滤操作结束后, 进入步骤 S306。
S306: 当此业务代码执行结束后,应用服务通知请求端业务调用完成, 进入步骤 S307。
S307: 关闭在本次业务调用中开启的上下文过滤器, 仅此次业务调用 的全部日志被输出到指定地址。 在服务器集群环境下, 业务调用通常不仅仅局限在一台应用服务器 上, 很可能存在并发等场景, 针对多台应用服务器执行一次业务调用的并 发场景, 本发明又一实施例提供了一种基于整个集群环境下的面向单个业 务的日志抽取方法, 能够将特定业务在不同服务器间的调用的日志全部输 出至特定服务器。 参见图 4, 具体包括如下步骤:
S400: 日志分析及测试服务器向接入层服务发起采样申请, 进入步骤 S401。
对于多个应用服务器的场景, 集群中会设置一个接入层服务, 负责业 务请求在各应用服务器之间的调度, 保持负载的均衡。
可以由运维人员在日志分析及测试服务器中向涉及到的接入层服务 发起采样申请。 采样申请中包括采样配置, 该采样配置可以包括采样次数 (如 N次)、 采样出的日志输出的地址(如可以将输出端口设置为日志测 试与分析服务器) 以及采样策略。 示例性的, 采样策略可以包括下述的一 种或多种:
随机记录应用服务对业务请求生成的日志; 或者,
记录应用服务为特定用户的业务请求生成的日志; 或者,
记录应用服务为特定 IP地址的业务请求生成的日志。
S401 : 请求端发送业务请求至接入层服务, 接入层服务将业务请求转 发至对应的应用服务, 进入步骤 S402。
接入层服务根据接收到采样配置, 针对请求端 (如客户端) 的业务请 求进行判断, 如果满足采样配置, 则将请求端的业务请求转发给后端实际 的应用服务, 如第一应用服务器。 在业务请求中包括用于追踪日志的输出 表达式以及日志的指定的输出端口。
通过采样策略可以针对需要关注的特定用户或 IP的日志(如信息发送 失败的用户或 IP )进行记录, 并将这些日志记录至特定的服务器中, 从而 便利了错误的追踪和排查。
S402: 当第一应用服务接收到业务请求后, 判断业务请求中是否存在 输出表达式, 若存在, 则将输出表达式保存到当前线程上下文当中, 设置 日志组件的上下文过滤器为开启状态并添加输出器及输出端口; 第一应用 服务执行业务处理, 将过滤出的日志通过输出器输出至指定的输出端口 (如日志分析及测试系统) 。
S402中的具体内容可以参见上述步骤 S301至 S305中的详细描述,然 后进入步骤 S403。
S403: 第一应用服务通过应用服务间的调用组件调用第二应用服务 , 进入步骤 S404。
上述调用组件可以为基于 RPC的调用组件。当第一应用服务通过 RPC 调用组件调用第二应用服务的时候,由 RPC调用组件判断第一应用服务的 当前线程上下文是否存在输出表达式, 如果存在, 将此输出表达式及指定 的输出地址传递到向第二应用服务发送的业务调用请求中后, 通过该业务 调用请求调用第二应用服务。
S404: 第二应用服务接收来自第一应用服务的基于 RPC 的业务调用 请求; 第二应用服务判断该业务调用请求中是否存在输出表达式,若存在, 则将输出表达式保存到第二应用服务的当前线程上下文当中, 设置第二日 志组件的上下文过滤器为开启状态并添加输出器及输出端口。 第二应用服 务执行业务处理, 将过滤出的日志输出至指定端口 (如日志分析及测试系 统) 。
S404中的具体内容可以参见上述步骤 S301至 S305的详细描述。应用 间的调用结束后, 进入步骤 S405。
S405 : 第二应用服务结束调用, 返回调用结束消息给第一应用服务, 同时第二应用服务移除自己的线程上下文标记, 防止继续输出日志。
S406: 第一应用服务接收到来自第二应用服务的调用结束消息后, 继 续进行业务处理。
S406中的具体操作与步骤 S402中的相同, 然后进入步骤 S407。
S407: 第一应用服务业务调用完成后, 通过接入层服务向请求端返回 业务处理完毕的应答, 同时移除自己的线程上下文标记, 防止继续输出日 士
S408: 接入层服务将应答转发给请求端后, 如果已经完成了本次采样 任务, 则结束采样。
由上, 本实施例弥补了现有日志系统缺少针对大规模服务器集群设计 的不足, 为大型服务器集群下的实时日志抓取提供了解决方案, 另外本实 施例提供了针对单次业务的日志追踪, 在大规模的业务系统中, 大幅度提 高了整体排错的效率。
本发明又一个实施例提供了一种服务器集群下的日志提取方法, 参见 图 5 , 该方法包括如下步骤: S500: 第一日志组件将第一应用服务的日志记录至对应的第一日志库 时, 根据配置数据获取与日志关联的用户和 /或业务的信息, 并将该信息记 录在为日志设置的上下文字段中。
服务器集群中包括多个应用服务器, 第一应用服务器为其中的任一应 用服务器, 每个应用服务器中都包括一个应用服务、 一个日志组件和一个 曰志库。 第一应用服务器中的应用服务、 日志组件和日志库, 可被称之为 第一应用服务、 第一日志组件和第一日志库。 上述第一日志组件使用的配 置数据中包括但不局限于日志的级别、 输出器和过滤器。 在此, 第一日志 组件主要根据上下文过滤器中的内容获知与日志关联的用户和 /或业务的 信息。
本实施例还可以针对特定用户和 /或业务的日志进行记录并将日志记 录至特定的服务器, 则上述将第一应用服务的日志记录至对应的第一曰志 库还包括: 将第一应用服务为满足采样策略的业务请求生成的日志记录至 对应的第一日志库, 其中, 该采样策略至少包括下述的一种: 随机记录应 用服务对业务请求生成的日志; 或者, 记录应用服务为特定用户的业务请 求生成的日志;或者,记录应用服务为特定 IP地址的业务请求生成的日志。
S501 : 第一日志组件根据第一应用服务接收到的请求端的日志调用请 求, 获知该日志调用请求中的输出表达式, 该输出表达式用于指示与请求 调用的日志关联的用户和 /或业务的信息满足的条件。
例如, 输出表达式用于指示请求调用日志为用户 ID为 ID1 的用户的 日志, 或者输出表达式用于指示请求调用日志为用户年龄不大于 18 岁的 用户的日志等等。
S502: 第一日志组件将输出表达式与第一日志库中保存的日志的上下 文字段进行匹配。
第一日志组件可以通过上下文过滤器实现该匹配操作。
S503: 第一日志组件将匹配成功的日志输出至日志调用请求所指定的 输出端口。
该指定的输出端口可以是某一特定的服务器。 例如, 将匹配成功的日 志输出至日志调用请求指定的日志分析及测试服务器的输出端口, 以将该 日志展示在日志分析及测试服务器的交互界面, 进行错误排查。
对没有匹配成功的日志, 第一日志组件会继续根据级别对该日志进行 过滤, 例如第一日志组件判断该日志的级别是否大于或等于当前配置的允 许输出的日志级别时, 若是, 将该日志输出至日志调用请求所指定的输出 端口, 若否, 不输出该日志。
本实施例还提供了一种对第一日志组件中的配置数据更新的处理方 法, 包括: 向集群中的配置中心服务器发送订阅信息, 该订阅信息包括配 置数据中的版本号; 当订阅信息中包括的版本号与配置中心服务器中的对 应的配置数据中的版本号与不一致时, 接收配置中心服务器发送的版本更 新提示信息; 根据版本更新提示信息从配置中心服务器获取新的配置数据 并启用该新的配置数据。上述更新方法的详细描述可以参见上述步骤 S200 至 S207中的内容。
本实施例还提供了一种将特定业务在不同服务器间的调用的日志全 部输出至特定服务器的方法, 包括: 当第一应用服务调用第二应用服务时, 应用服务间的调用组件(如 RPC调用组件)将日志调用请求指定的输出端 口和对应的输出表达式包含在应用服务调用请求中发送至第二应用服务; 第二日志组件将输出表达式与第二应用服务对应的第二日志库中保存的 曰志的上下文字段进行匹配; 第二日志组件将第二日志库中匹配成功的曰 志输出至日志调用请求所指定的输出端口。 具体内容还可以参见上述步骤 S400至 S408中的描述。
由上所述,本发明实施例通过将与日志关联的用户和 /或业务的信息记 录在为日志设置的上下文字段中, 以及将输出表达式与保存的日志的上下 文字段进行匹配、 输出匹配成功的日志至指定端口的技术手段, 能够利用 用户和 /或业务的信息从集群中筛选出需要的日志,如某一特定用户的日志 或某一特定业务的日志, 并能够将单个用户或特定业务的日志输出至指定 的服务器, 从而极大便利了在集群中通过日志追踪和排查单个用户或业务 错误的操作, 提高了整个系统排错的效率, 满足了大规模服务器集群的运 维需要。
为了便于清楚描述本发明实施例的技术方案, 在发明的实施例中, 采 用了"第一"、 "第二 "等字样对功能和作用基本相同的相同项或相似项进行 区分, 本领域技术人员可以理解"第一"、 "第二 "等字样并不对数量和执行 次序进行限定。
以上所述仅为本发明的较佳实施例而已, 并非用于限定本发明的保护 范围。 凡在本发明的精神和原则之内所作的任何修改、 等同替换、 改进等, 均包含在本发明的保护范围内。

Claims

权利 要求 书
1、 一种服务器集群下的日志提取方法, 包括:
第一日志组件在将第一应用服务的日志记录至对应的第一日志库时, 根据配置数据获取与所述日志关联的用户和 /或业务的信息,并将所述信息 记录在为所述日志设置的上下文字段中;
所述第一日志组件根据第一应用服务接收到的请求端的日志调用请 求, 获知所述日志调用请求中的输出表达式, 所述输出表达式用于指示与 请求调用的日志关联的用户和 /或业务的信息满足的条件;
所述第一日志组件将所述输出表达式与所述第一日志库中保存的日 志的上下文字段进行匹配;
所述第一日志组件将匹配成功的日志输出至所述日志调用请求所指 定的输出端口。
2、 根据权利要求 1所述的方法, 其中, 所述方法还包括:
所述第一日志组件向配置中心服务器发送订阅信息, 所述订阅信息包 括第一日志组件的配置数据中的版本号;
当所述订阅信息中的版本号与配置中心服务器中对应的配置数据中 的版本号不一致时, 所述第一日志组件接收配置中心服务器发送的版本更 新提示信息;
所述第一日志组件根据所述版本更新提示信息从配置中心服务器获 取新的配置数据并启用该新的配置数据。
3、 根据权利要求 1所述的方法, 其中, 所述方法还包括:
当第一应用服务调用第二应用服务时, 应用服务间的调用组件将所述 日志调用请求指定的输出端口和对应的输出表达式包含在应用服务调用 请求中发送至第二应用服务;
第二日志组件将所述输出表达式与第二应用服务对应的第二日志库 中保存的日志的上下文字段进行匹配;
所述第二日志组件将第二日志库中匹配成功的日志输出至所述曰志 调用请求所指定的输出端口。
4、 根据权利要求 1至 3任一项所述的方法, 其中, 所述方法还包括: 对没有匹配成功的日志, 第一日志组件判断所述日志的级别是否大于 或等于当前配置的允许输出的日志级别, 若是, 第一日志组件将所述曰志 输出至所述日志调用请求所指定的输出端口, 若否, 第一日志组件不输出 所述日志。
5、 根据权利要求 1 所述的方法, 其中, 所述将第一应用服务的曰志 记录至对应的第一日志库包括:
将第一应用服务为满足采样策略的业务请求生成的日志记录至对应 的第一日志库, 其中, 所述采样策略至少包括下述的一种:
随机记录应用服务对业务请求生成的日志; 或者,
记录应用服务为特定用户的业务请求生成的日志; 或者,
记录应用服务为特定 IP地址的业务请求生成的日志。
6、 根据权利要求 1 所述的方法, 其中, 所述将匹配成功的日志输出 至所述日志调用请求所指定的输出端口包括:
将匹配成功的日志输出至所述日志调用请求指定的日志分析及测试 服务器的输出端口, 以将所述日志展示在日志分析及测试服务器的交互界 面进行错误排查。
7、 一种服务器集群, 包括多个应用服务器, 所述应用服务器中包括 第一应用服务器, 所述第一应用服务器包括第一应用服务、 第一日志组件 和第一日志库;
所述第一应用服务, 用于承载业务, 接收来自请求端的业务请求并处 理;
所述第一日志库, 用于存储第一应用服务的日志;
所述第一日志组件, 用于在将第一应用服务的日志记录至对应的第一 日志库时, 根据配置数据获取与所述日志关联的用户和 /或业务的信息, 并 将所述信息记录在为所述日志设置的上下文字段中; 根据第一应用服务接 收到的请求端的日志调用请求, 获知所述日志调用请求中的输出表达式, 所述输出表达式用于指示与请求调用的日志关联的用户和 /或业务的信息 满足的条件; 将所述输出表达式与所述第一日志库中保存的日志的上下文 字段进行匹配; 将匹配成功的日志输出至所述日志调用请求所指定的输出 端口。
8、 根据权利要求 7 所述的服务器集群, 其中, 还包括配置中心服务 器, 用于保存并更新集群中所有应用服务的日志组件的配置数据, 定时轮 询并判断第一日志组件的订阅信息中的版本号与配置中心服务器中对应 的配置数据的版本号是否一致, 当不一致时, 向第一日志组件发送版本更 新提示信息, 以及, 根据所述版本更新提示信息将新的配置数据发送至第 一曰志组件;
所述第一日志组件, 还用于向配置中心服务器发送订阅信息, 所述订 阅信息包括所述第一日志组件的配置数据中的版本号; 当所述订阅信息中 的版本号与配置中心服务器中对应的配置数据的版本号不一致时, 接收配 置中心服务器发送的版本更新提示信息; 根据所述版本更新提示信息从配 置中心服务器获取新的配置数据并启用该新的配置数据。
9、 根据权利要求 7 所述的服务器集群, 其中, 还包括第二应用服务 器以及应用服务间的调用组件, 所述第二应用服务器包括第二应用服务、 第二日志组件和第二日志库;
所述应用服务间的调用组件, 用于当第一应用服务调用第二应用服务 时, 将所述日志调用请求指定的输出端口和对应的输出表达式包含在应用 服务调用请求中发送至第二应用服务;
所述第二日志组件, 用于将所述输出表达式与第二应用服务对应的第 二曰志库中保存的日志的上下文字段进行匹配; 并将第二日志库中匹配成 功的日志输出至所述日志调用请求所指定的输出端口。
10、 根据权利要求 7至 9任一项所述的服务器集群, 其中, 所述第一 曰志组件和第二日志组件, 还分别用于对没有匹配成功的日志, 判断所述 日志的级别是否大于或等于当前配置的允许输出的日志级别, 若是, 将所 述日志输出至所述日志调用请求所指定的输出端口, 若否, 不输出所述日 士
1 1、 根据权利要求 7所述的服务器集群, 其中, 所述第一日志组件, 还用于将第一应用服务为满足采样策略的业务请求生成的日志记录至对 应的第一日志库, 其中, 所述采样策略至少包括下述的一种: 随机记录应用服务对业务请求生成的日志; 或者,
记录应用服务为特定用户的业务请求生成的日志; 或者,
记录应用服务为特定 IP地址的业务请求生成的日志。
12、 根据权利要求 7所述的服务器集群, 其中, 还包括日志分析及测 试服务器, 用于控制所述配置中心服务器中配置数据的更新, 以及根据接 收的日志调用请求, 从应用服务器获取到对应的日志, 将所述日志展示在 交互界面以进行错误排查。
PCT/CN2013/088863 2013-12-09 2013-12-09 服务器集群下的日志提取方法和服务器集群 WO2015085456A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2013/088863 WO2015085456A1 (zh) 2013-12-09 2013-12-09 服务器集群下的日志提取方法和服务器集群
CN201380074271.5A CN105191211B (zh) 2013-12-09 2013-12-09 服务器集群下的日志提取方法和服务器集群

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/088863 WO2015085456A1 (zh) 2013-12-09 2013-12-09 服务器集群下的日志提取方法和服务器集群

Publications (1)

Publication Number Publication Date
WO2015085456A1 true WO2015085456A1 (zh) 2015-06-18

Family

ID=53370429

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/088863 WO2015085456A1 (zh) 2013-12-09 2013-12-09 服务器集群下的日志提取方法和服务器集群

Country Status (2)

Country Link
CN (1) CN105191211B (zh)
WO (1) WO2015085456A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909494A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种在基于linux平台的刀片服务器中实时显示bmc日志的方法
CN106909277A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种基于linux平台控制服务器重启和实时显示串口输出信息的方法
CN106909493A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种在基于windows平台的刀片服务器中实时显示bmc日志的方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547658B (zh) * 2016-10-28 2020-10-27 阿里巴巴(中国)有限公司 一种自动化测试方法及装置
CN108512877B (zh) * 2017-02-28 2022-03-18 腾讯科技(北京)有限公司 一种服务器集群中分享数据的方法和装置
CN107769981B (zh) * 2017-11-03 2020-11-10 泰康保险集团股份有限公司 服务器使用管理方法与装置
CN109558309A (zh) * 2018-10-19 2019-04-02 中国平安财产保险股份有限公司 代码测试结果分析方法、装置、计算机设备和存储介质
CN110191026B (zh) * 2019-06-18 2022-07-15 广东电网有限责任公司 一种分布式业务链路监控方法及装置
CN110780857B (zh) * 2019-10-23 2024-01-30 杭州涂鸦信息技术有限公司 一种统一日志组件
CN114866965B (zh) * 2021-02-03 2023-09-19 北京新媒传信科技有限公司 基于MaaP的5G消息通讯方法、系统、电子设备和存储介质
CN113015203B (zh) * 2021-03-22 2022-08-16 Oppo广东移动通信有限公司 信息获取方法、装置、终端、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515245A (zh) * 2008-02-21 2009-08-26 卓望数码技术(深圳)有限公司 操作日志记录方法及系统
JP2011210180A (ja) * 2010-03-30 2011-10-20 Sony Corp 情報処理装置および方法、並びにプログラム
CN102891873A (zh) * 2011-07-21 2013-01-23 腾讯科技(深圳)有限公司 一种存储日志数据的方法及日志数据存储系统
CN103383687A (zh) * 2012-05-02 2013-11-06 阿里巴巴集团控股有限公司 一种页面处理方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146304B (zh) * 2006-09-11 2011-04-06 中兴通讯股份有限公司 基于业务处理流程的日志记录方法和装置
US8321433B1 (en) * 2011-05-06 2012-11-27 Sap Ag Systems and methods for business process logging

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515245A (zh) * 2008-02-21 2009-08-26 卓望数码技术(深圳)有限公司 操作日志记录方法及系统
JP2011210180A (ja) * 2010-03-30 2011-10-20 Sony Corp 情報処理装置および方法、並びにプログラム
CN102891873A (zh) * 2011-07-21 2013-01-23 腾讯科技(深圳)有限公司 一种存储日志数据的方法及日志数据存储系统
CN103383687A (zh) * 2012-05-02 2013-11-06 阿里巴巴集团控股有限公司 一种页面处理方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909494A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种在基于linux平台的刀片服务器中实时显示bmc日志的方法
CN106909277A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种基于linux平台控制服务器重启和实时显示串口输出信息的方法
CN106909493A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种在基于windows平台的刀片服务器中实时显示bmc日志的方法

Also Published As

Publication number Publication date
CN105191211A (zh) 2015-12-23
CN105191211B (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
WO2015085456A1 (zh) 服务器集群下的日志提取方法和服务器集群
US11188397B2 (en) Mobile application for an information technology (IT) and security operations application
US11811619B2 (en) Emulating a local interface to a remotely managed storage system
WO2021203979A1 (zh) 运维处理方法、装置及计算机设备
US9454539B1 (en) System and method for protecting operating system zones
CN110224899B (zh) 一种tcp应用的调用链获取方法及装置
US11921826B2 (en) Automatically detecting misuse of licensed software
US20220012103A1 (en) System and method for optimization and load balancing of computer clusters
US11522812B1 (en) Workflows for configuring the ingestion of user data from a service provider network into a data intake and query system
US10929259B2 (en) Testing framework for host computing devices
WO2022231903A1 (en) On-premises action execution agent for cloud-based information technology and security operations applications
US20140109082A1 (en) Verification Of Complex Multi-Application And Multi-Node Deployments
WO2018188452A1 (en) Proxy apparatus and method for data collection
CN106547790B (zh) 一种关系型数据库服务系统
US10122602B1 (en) Distributed system infrastructure testing
US10915510B2 (en) Method and apparatus of collecting and reporting database application incompatibilities
WO2022164754A1 (en) Extension framework for an information technology and security operations application
WO2018188607A1 (zh) 流处理方法及装置
US8312138B2 (en) Methods and computer program products for identifying and monitoring related business application processes
CN109324892B (zh) 分布式管理方法、分布式管理系统及装置
US20120005175A1 (en) Method and a system for real time replaying of database workload at a fixed initial time delay
US8650548B2 (en) Method to derive software use and software data object use characteristics by analyzing attributes of related files
WO2019126720A1 (en) A system and method for optimization and load balancing of computer clusters
US11757959B2 (en) Dynamic data stream processing for Apache Kafka using GraphQL
US11487631B2 (en) Data refresh in a replication environment

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201380074271.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13899038

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13899038

Country of ref document: EP

Kind code of ref document: A1