The operation of servers and clusters of servers are monitored in order to ensure that the servers are operating appropriately and efficiently. However, configuring the cluster of servers to transmit operational data to the appropriate network locations is an arduous task that has often taken days and even weeks to complete. Applications on the cluster of servers have to be configured to communicate with applications at other network locations in order to properly monitor the operational data. Not only is this task arduous, but previously involved exchanging sensitive server configuration information in insecure environments that are subject to cyber piracy.
Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is noted that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
The following disclosure provides many different embodiments, or examples, for implementing different features of the provided subject matter. Specific examples of components, values, operations, materials, arrangements, or the like, are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. Other components, values, operations, materials, arrangements, or the like, are contemplated. For example, the formation of a first feature over or on a second feature in the description that follows may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed between the first and second features, such that the first and second features may not be in direct contact. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.
(Optional, use when applicable) Further, spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. The spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. The apparatus may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein may likewise be interpreted accordingly.
Data storage system 100 includes a cluster 101 of servers 102. Each of the servers 102 is operably connected to databases 104. A cluster 101 of servers 102 is a group of servers 102 that operate as a logical entity. To do this, servers 102 in the cluster 101 are connected to a network switch 118, which administers and manages commands, messaging, and other types of communications to the individual servers 102 in the cluster 101. The network switch 118 is connected to a network 104 and thus the servers 102 are connected to the network 104 through the network switch 118. The servers 102 are configured to manage the writing and reading of data 106 to non-transitory computer readable media 108 in the databases 104. In some embodiments, the network 104 includes a wide area network (WAN) (i.e., the internet), a wireless WAN (WWAN) (i.e., a cellular network), a local area network (LAN), and/or the like. To manage the writing and reading of data 106 in the databases 104 and to perform other functionality, the servers 102 implement include computer executable instructions 112. In some embodiments, the computer executable instructions 112 are organized as different software applications that are implemented by one or more processors 114 in each of the servers 102. The computer executable instructions 112 are stored on non-transitory computer readable medium 116 within each of the servers 102. In some embodiments, non-transitory computer-readable media 108, 116 include a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer. Also, in
In
The cluster 101 of the servers 102 implement monitoring agents (examples of which is discussed below with respect to
In
Monitoring agents 202 are implemented by any software application that gathers cluster operation data regarding the performance of the cluster 101 and/or the servers 102 and transmits this data to a cluster monitoring application. By way of a non-limiting example, in some embodiments, the monitoring agents 202 are configured to collect, transfer and store performance data related to the servers 102 and other network equipment, gathers metrics from various sources (e.g., the operating system, applications, logfiles and external devices), and gather statistics used to system monitoring and to find performance bottlenecks. For example, the monitoring agents 202 are daemons such as collected.
In some embodiments, the monitoring agents 202 are configured as lightweight shippers for forwarding and centralizing log data. The monitoring agents 202 monitor log files or specified locations, collect log events, and forward this information to indexing applications such as Elasticsearch or Logstash.
In some embodiments, the monitoring agents 202 are configured as open-source light-weight utilities used as a collective to monitor the cluster 101. In some embodiments, the monitoring agents 202 reports the state of objects by listening to an application programming interface (API), such as a Kubernetes API.
The client monitoring device 120 implements a management application 204, an orchestrator application 206, a vault system 208, and a cluster monitoring application 210. The management application 204 is configured to provide life cycle management of hardware and software components on the cluster 101 of servers. In some embodiments, the management application 204 provides life cycle management to hardware components in computer devices, storage devices, and network devices. In some embodiments, the management application 204 provides life-cycle management to software components such as firmware, kernels, operating systems, drivers, services, libraries, and robin clusters.
The orchestrator application 206 automatically configures the setup of the monitoring agents 202 with the cluster monitoring application 210. The vault system 208 is an application that stores usernames, passwords in authentication tokens in a secure locations and/or in an encrypted format. The vault system 208 is sometimes referred to as a password manager. In
The management application 204, the orchestrator application 206, the cluster monitoring application 210 communicates with the monitoring agents 202 through the network switch 118, which manages traffic through the cluster 101. The management application 204 communicates certain registration data regarding the cluster 101 with the orchestrator application 206, as detailed below. The orchestrator application 206 stores an access token to the cluster 101 in the vault system 206 and provides cluster configuration data to the cluster monitoring application 210 so that the cluster monitoring application 210 is set up to communicate with the monitoring agents 202 in the cluster 101, as detailed below.
In some embodiments, the method described by the flowchart 300 in
At block 302, the cluster monitoring device 120 creates the cluster 101 of the servers 102 with the cluster management application 204. In some embodiments, the cluster management application 120 is configured to generate registration data with registration information associated with the cluster 101 of the servers 102. In some embodiments, the registration data includes information related to a data center that houses the cluster 101 of servers 102, network addresses and/or identification data that identifies the cluster of servers 102 on the network 104, the readiness status of the cluster 101 of servers 102, codes that identify the cluster 101 of servers 102, and/or the like. Flow then proceeds to block 304.
At block 304, the cluster monitoring device 120 registers the cluster 101 of servers 102 with the orchestrator application 206. To register the cluster 101 of servers 102, the management application 204 sends the registration data with registration information associated with the cluster 101 of servers 102 to the orchestrator application 206. In this manner, the orchestrator application 206 obtains the registration information used to identify and communicate with the cluster 101 of servers 102. In some embodiments, the orchestrator application 206 is configured to use the registration data to also determine the cluster monitoring application 210 that the monitoring agents 202 are to be set up with. In some embodiments, the cluster monitoring device 120 is configured to implement various cluster monitoring applications simultaneously. In some embodiments, there are various cluster monitoring devices implementing cluster monitoring applications. Thus, in some embodiments, the particular cluster monitoring application that is to communicate with the monitoring agents 202 in the cluster 101 are identified by the registration data. Flow then proceeds to block 306.
At block 306, the cluster monitoring device 120 is configured to install one or more of the monitoring agents 202 on the cluster 101 of servers 102 with the orchestrator application 206. The orchestrator application 206 is configured to generate agent configuration data in response to installing the monitoring agent(s) 202. In some embodiments, the agent configuration data identifies where the monitoring agent(s) 202 are deployed, details regarding a data center having the cluster 101 of servers 102, identifiers of the cluster 102, endpoints of the monitoring agent(s) 202, and/or the like. Note that the agent configuration data is safely within the cluster monitoring device 120 and does not have to be sent in an unsecure manner to other devices for setup. Flow then proceeds to block 308.
At block 308, the orchestrator application 206 stores an access token in the vault system 208 in response to installing the monitoring agent(s) 202 on the cluster 101 of the servers 102. The access token is usable to permit access to the cluster 101 of the servers 102. Thus, the cluster 101 of servers 102 do not allow any type of setup with the monitoring agent(s) 202 unless the appropriate access token is provided. Flow then proceeds to block 310.
At block 310, the cluster monitoring device 120 requests that the cluster monitoring application 210 configure the monitoring agent(s) 202 with the orchestrator application 206. In some embodiments, the orchestrator application 206 sends a request message to the cluster monitoring application 210 that the cluster monitoring device 120 initiate set up with the monitoring agent(s) 202. Flow then proceeds to block 312.
At block 312, the cluster monitoring application 210 obtains the access token from the vault system 208 in response to the cluster monitoring device 120 requesting that the cluster monitoring application 210 configure the monitoring agent(s) 202. Flow then proceeds to block 314.
At block 314, the cluster monitoring application 210 gains access to the cluster 101 of servers 102 with the access token. In some embodiments, this involves security handshaking between the cluster monitoring application 210 and the cluster 101 of servers 102 so that the cluster monitoring application gains access to the cluster 101 with the access token. In some embodiments, the access toke in a cryptographic key, password, and/or hash. Flow then proceeds to block 316.
At block 316, the orchestrator application 206 sends the agent configuration data to the cluster monitoring application 210 in response to installing the monitoring agent(s) 202. In this manner, the cluster monitoring application 210 has the information that is to be used to set up communication between endpoints in the cluster monitoring application 210 and endpoints of the monitoring agent(s) 202. Flow then proceeds to block 318.
At block 318, the cluster monitoring application 210 configures the monitoring agent(s) 202 to transmit cluster operation data to the cluster monitoring application 210 based on the sent agent configuration data. In this manner, the cluster monitoring application 210 is set up to begin monitoring the operational performance of the cluster 101 of the servers 102. In some embodiments, the cluster monitoring application 210 configures the monitoring agent(s) 202 to transmit cluster operation data to the cluster monitoring application 210 through wired network communications. In some embodiments, the cluster monitoring application 210 configures the monitoring agent(s) 202 to transmit cluster operation data to the cluster monitoring application 210 through wirelessly. Flow then proceeds to block 320.
At block 320, the cluster monitoring program 210 is configured to receive a configuration outcome message from the monitoring agent 202. The configuration outcome message indicates whether configuring the monitoring agent was a success. In this manner, the cluster monitoring agent 210 receive confirmation the monitoring operations are ready to begin.
In
In some embodiments, the registration data 400 includes parent data center information (labeled “parentDataCenterInfo”), which is a subdata structure. The parent data center information include a “name” field, which in this example is filled with the name Kasumigasaki, a “type” field, which in this example is filled in with the type RDC, a “subtype” field, which in this example is filled in with the subtype large, a “code” field, which in this example is filled in with the code RDC01, and a “status” field, which this example is filled with the status of active.
In some embodiments, the registration data 400 includes backup data center information (labeled “backupDataCenterInfo”), which is a subdata structure. The backup data center information include a “name” field, which in this example is filled with the name Totsuka, a “type” field, which in this example is filled in with the type CDC, a “subtype” field, which in this example is filled in with the subtype D, a “code” field, which in this example is filled in with the code RDCO2, and a “status” field, which this example is filled with the status of active. In some embodiments, the orchestrator application 206 is configured to find out the client monitoring application being implemented by the data center, the parent data center, and the backup datacenter.
In
In
In
In
The cluster monitoring application 210 is configured to receive the agent configuration data 500, login to the cluster 101, and configure the monitoring agent 202 associated with the agent configuration data 500 to transmit cluster operation data to the cluster monitoring application based on the sent agent configuration data 500, in accordance with block 318 in
In
In
In
In
The cluster monitoring application 700 receives a request from the orchestrator application 206 (See
The foregoing outlines features of several embodiments so that those skilled in the art may better understand the aspects of the present disclosure. Those skilled in the art should appreciate that they may readily use the present disclosure as a basis for designing or modifying other processes and structures for carrying out the same purposes and/or achieving the same advantages of the embodiments introduced herein. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions, and alterations herein without departing from the spirit and scope of the present disclosure.