# US 9,519,513 B2 · Methods and apparatus to automatically configure monitoring of a virtual machine

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,513 B2
- Document ID: US9519513B2
- Status: Granted
- Kind: B2
- Application number: 14/231,018
- Filed: 2014-03-31
- Published: 2015-06-04
- Granted: 2016-12-13
- Earliest claimed: 2013-12-03
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Dan Zada; Asaf Kariv; Mayan Weiss; Amir Wiener; Ella Rozanov
- Web page: https://patentgrep.com/patent/US9519513B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 8/60: Software deployment
- G06F 8/61: Installation
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 11/30: Monitoring
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 9/451: Execution arrangements for user interfaces
- G06F 11/3409: {for performance assessment}
- G06F 16/10: File systems; File servers
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F 2009/45591: {Monitoring or debugging support}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and apparatus to automatically configure monitoring of a virtual machine are disclosed. An example method includes identifying a virtual machine in an application definition, automatically installing an agent on the virtual machine when the virtual machine is identified as having a designated configuration, automatically identifying, via the agent, a resource associated with the virtual machine and, based on the resource, applying a monitoring policy to the virtual machine to be executed by the agent.

## Claims

### Claim 1

A method, comprising:
identifying, by executing an instruction with a processor, a first virtual machine in a first application definition;
determining, by executing an instruction with the processor, that the first virtual machine identifies a second virtual machine based on configuration information of the first virtual machine, the second virtual machine having an unknown agent status;
comparing, by executing an instruction with the processor, the first application definition to a second application definition, the second application definition including the first virtual machine and the second virtual machine;
in response to determining that the first application definition does not include the second virtual machine, determining, by executing an instruction with the processor, if a configuration of the second virtual machine matches a designated configuration;
automatically installing an agent on the second virtual machine when the second virtual machine is identified as having the designated configuration;
updating the unknown agent status of the second virtual machine to indicate that the installed agent is running; and
based on a resource automatically identified by the agent associated with the second virtual machine, applying a monitoring policy to the second virtual machine, the monitoring policy to be executed by the agent.

### Claim 2 (depends on 1)

A method as defined in claim 1, further including accessing a configuration item associated with the second virtual machine and comparing the configuration item of the second virtual machine to the designated configuration.

### Claim 3 (depends on 1)

A method as defined in claim 1, wherein automatically identifying the resource associated with the second virtual machine includes obtaining a resource report from the agent, the resource report listing the resource.

### Claim 4 (depends on 1)

A method as defined in claim 1, wherein applying the monitoring policy includes sending configuration information to the agent, the configuration information to configure the agent to implement the monitoring policy.

### Claim 5 (depends on 4)

A method as defined in claim 4, wherein the configuration information includes at least one of a monitoring server address, an agent user name, an agent user password, an installation package location, an installation directory, an agent version, a configuration of a service, a configuration of a secure connection to a monitoring server, a performance agent server port, a performance agent port, or a configuration of unidirectional communication.

### Claim 6 (depends on 1)

A method as defined in claim 1, further including determining whether a configuration of the resource matches a condition in the monitoring policy, the applying of the monitoring policy being based on the configuration of the resource matching the condition.

### Claim 7 (depends on 1)

A method as defined in claim 1, wherein installing the agent on the second virtual machine includes instructing the second virtual machine to install the agent or providing a location of an installer for the agent to the second virtual machine.

### Claim 8 (depends on 1)

A method as defined in claim 1, wherein identifying the second virtual machine includes analyzing firth virtual machine to identify at least one of a dependency associated with the second virtual machine, a node cluster including the second virtual machine, a port configuration of the first virtual machine identifying an address of the second virtual machine, or a virtual machine identifier of the second virtual machine.

### Claim 9 (depends on 1)

A method as defined in claim 1, wherein applying the monitoring policy includes determining whether a presence of the resource on the second virtual machine matches a monitoring rule, the applying of the monitoring policy to the second virtual machine occurring based on the presence of the resource matching the monitoring rule.

### Claim 10

A system, comprising:
a service analyzer to:
identify a first virtual machine in a first application definition; and
determine that the first virtual machine identifies a second virtual machine based on configuration information of the first virtual machine, the second virtual machine having an unknown agent status;
a virtual machine analyzer to:
compare the first application definition to a second application definition, the second application definition including the first virtual machine and the second virtual machine; and
in response to a determination that the first application definition does not include the second virtual machine, determine if a configuration of the second virtual machine matches a designated configuration;
an agent installer to install an agent on the second virtual machine based on the virtual machine analyzer identifying that the configuration of the second virtual machine matches a designated configuration, the unknown agent status of the second virtual machine updated to indicate that the installed agent is a running agent; and
an agent monitor to automatically identify a resource associated with the virtual machine and, based on the resource, apply a monitoring policy to the virtual machine, the monitoring policy to be executed by the agent,
at least one of the service analyzer, the virtual machine analyzer, the agent installer and the agent monitor implemented by a logic circuit.

### Claim 11 (depends on 10)

A system as defined in claim 10, further including an application configuration database to store configuration items discovered by the virtual machine analyzer.

### Claim 12 (depends on 10)

A system as defined in claim 10, further including an application rule database to store rules specifying a configuration of the agent based on the resource.

### Claim 13 (depends on 12)

A system as defined in claim 12, wherein the agent monitor is to:
determine the configuration of the agent by comparing the resource to the rules stored in the application rule database; and
enforce a determined configuration at the agent based on the rules associated with the resource.

### Claim 14 (depends on 10)

A system as defined in claim 10, wherein the agent installer is to:
access the configuration of the second virtual machine; and
compare the configuration of the second virtual machine to the designated configuration.

### Claim 15 (depends on 10)

A system as defined in claim 10, wherein the agent monitor is to determine whether a configuration of the resource matches a condition in the monitoring policy, the agent monitor to apply the monitoring policy when the configuration of the resource matches the condition.

### Claim 16 (depends on 10)

A system as defined in claim 10, wherein the resource includes at least one of an operating system executing on the second virtual machine, an application executing on the second virtual machine, or a service implemented using the second virtual machine.

### Claim 17 (depends on 10)

A system as defined in claim 10, wherein the service analyzer is to identify the second virtual machine by analyzing the first virtual machine to identify at least one of a dependency associated with the second virtual machine, a node cluster including the second virtual machine, a port configuration of the first virtual machine identifying an address of the second virtual machine, or a virtual machine identifier of the second virtual machine.

### Claim 18 (depends on 10)

A system as defined in claim 10, wherein the agent monitor is to determine whether the presence of the resource on the second virtual machine matches a monitoring rule, the agent monitor to apply the monitoring policy to the second virtual machine when the presence of the resource matches the monitoring rule.

### Claim 19

A tangible computer readable storage medium comprising computer readable instructions which, when executed, cause a processor to at least:
identify a first virtual machine in a first application definition;
determine that the first virtual machine identifies a second virtual machine based on configuration information of the first virtual machine, the second virtual machine having an unknown agent status;
compare the first application definition to a second application definition, the second application definition including the first virtual machine and the second virtual machine;
determine if a configuration of the second virtual machine matches a designated configuration based on a determination that the first application definition does not include the second virtual machine;
instruct the second virtual machine to install an agent when the second virtual machine is identified as having a designated configuration;
update the unknown agent status of the second virtual machine to indicate that the installed agent is running; and
based on a resource automatically identified by the agent associated with the second virtual machine, apply a monitoring policy to the second virtual machine, the monitoring policy to be executed by the agent.

### Claim 20 (depends on 19)

A storage medium as defined in claim 19, wherein the instructions further cause the processor to access a configuration item associated with the second virtual machine and compare the configuration item to the designated configuration.

### Claim 21 (depends on 19)

A storage medium as defined in claim 19, wherein the instructions further cause the processor to identify the resource associated with the second virtual machine by obtaining a resource report from the agent, the resource report listing the resource.

### Claim 22 (depends on 19)

A storage medium as defined in claim 19, wherein the instructions further cause the processor to apply the monitoring policy by sending configuration information to the agent, the configuration information to configure the agent to implement the monitoring policy.

### Claim 23 (depends on 19)

A storage medium as defined in claim 19, wherein the instructions further cause the processor to determine whether a configuration of the resource matches a condition in the monitoring policy, the applying of the monitoring policy being based on the configuration of the resource matching the condition.

### Claim 24 (depends on 19)

A storage medium as defined in claim 19, wherein the instructions further cause the processor to install the agent on the second virtual machine by instructing the second virtual machine to install the agent or providing a location of an installer for the agent to the second virtual machine.

### Claim 25 (depends on 19)

A storage medium as defined in claim 19, wherein the instructions further cause the processor to identify the second virtual machine by analyzing first virtual machine to identify at least one of a dependency associated with the second virtual machine, a node cluster including the second virtual machine, a port configuration of the first virtual machine identifying an address of the second virtual machine, or a virtual machine identifier of the second virtual machine.

### Claim 26 (depends on 19)

A storage medium as defined in claim 19, wherein the instructions further cause the processor to apply the monitoring policy by determining whether the presence of the resource on the second virtual machine matches a monitoring rule, the applying of the monitoring policy to the second virtual machine occurring when the presence of the resource matches the monitoring rule.
