Scales to Thousands of Servers
vFabric Hyperic’s specialty is enormous web app infrastructures, and it monitors some of the world’s largest. The system is designed to scale dependably from the ground up— to more than 2,000 monitored servers, sending a total one million metrics every minute to a single Hyperic Server.
Massive Monitoring Capacity
vFabric Hyperic’s architecture delivers extreme scalability via the following techniques:
- Industrial-strength persistence and data management. Hyperic uses the Hibernate persistence and query service to provide a high-concurrency architecture without resource contention. To meet the full spectrum of scalability requirements, Hyperic supports a range of robust database servers including Oracle, MySQL and PostgreSQL.
- Optimized data retention and storage. Hyperic stores the minimum amount of measurement data required and retains limited historical data in the production environment. The data is compressed and uses secondary, longer-term storage to support trend analysis.
- Highly scalable front end. The Hyperic user interface is based on Spring Framework and Apache Tomcat servlet containers, two proven open-source frameworks for creating highly scalable AJAX web applications in Java.
Network efficiency and resiliency. Hyperic's agent-based architecture uses network resources much more sparingly than high-traffic agent-less systems, batching up metrics once per minute and then communicating them using a small payload. At scale, agent-less systems can take 20 minutes or longer to poll all systems, while Hyperic’s agents continuously collect data every minute. If network connectivity is lost, Hyperic agents spool metrics locally and “catch up” transmission once connectivity is restored. This stands in sharp contrast to agentless systems, where network outages cause performance data to be lost forever.
Robust Server Architecture
vFabric Hyperic Server receives inventory and metric data from Hyperic Agents and stores it in the Hyperic database. The Server manages your software assets via the Hyperic inventory and access model, grouping resources in ways that simplify monitoring and management. The Server detects alerts when they are triggered, handles notifications and escalation processes you define, and executes actions you initiate from the user interface or Hyperic’s web services API. The Server also performs authentication tasks, using an internal engine or external authentication service.
Robust Server Architecture
Included in the Hyperic Server are a vFabric tc Server application server and PostgreSQL database that can serve for small or evaluation deployments. For production deployments, external MySQL and Oracle databases are supported. Written in Java and portable C code, Hyperic is compatible with Windows and a range of *nix operating systems. Hyperic Server subsystems include:
- Inventory and application model and grouping to provide the functionality for storing and retrieving inventory data in the Hyperic database.
- Securitywith authenticated logins via an LDAP repository, Microsoft Active Directory, any SQL data store, or its own data repository.
- Auto-Discovery processes incoming reports , manages the approval process for merging auto-discovery data into Hyperic inventory and maintains the auto-discovery scan schedule.
- Monitoringincoming data and trigger events for inbound measurement reports to determine whether alert criteria have been met.
- Control Actions: The Hyperic Server can contact the Agents to execute control actions on behalf of end-users.
- Events, Alerts and Escalation: Operates the Hyperic event bus which serves as the central messaging mechanism for monitoring, inventory, and control events. Manages the triggers and actions that implement alerting and alert escalation functionality.
- High Availability subsystem manages distributed object caches and ensures data consistency across the cluster, via a lightweight broadcast messaging framework among all its members.
- Hyperic API: Spans the subsystems, aggregating all subsystem-specific functionality under one umbrella to provide a simple programmatic interface for all Hyperic features.
Demo video: Scaling Infrastructure with Hyperic
High-Performance Agent Architecture
A Hyperic Agent is run on each machine you want to manage. Upon first startup, the agent auto-discovers the software resources residing on the machine, and periodically re-scans for configuration changes. Hyperic Agents gather availability, utilization, performance, and throughput metrics; perform log and event tracking; and let you initiate software control actions—for example, starting and stopping web and application servers. Agents send their inventory and metrics data to the central Hyperic Server.
The Agent’s resource-specific functionality is enabled by a Plug-in Framework. Hyperic ships with plug-ins that provide monitoring and control for more than 70 technologies. Additional resources can be monitored with supplementary plug-ins created by Hyperic and the Hyperic Community, using the Hyperic Plug-in Development Kit (PDK).
Implemented primarily in Java with small portions of portable C code, vFabric Hyperic Agents run on Windows and a range of *nix operating systems. Featuring a compact memory and small CPU utilization footprint, the Hyperic Agent has proven its exceptional performance and airtight security in some of the world’s most demanding IT environments. Agent components include:
- Command Processor: Loads the individual subsystems and plug-ins, and delegates incoming requests to the appropriate subsystem
- Agent Subsystems: Measurement, Control, Auto-Discovery, Event Tracking
- Plugin Layer: Plug-ins interact with the assets they support using standards-based interfaces such as JMX, SNMP, and JDBC. Communication happens on the local machine so no sensitive information travels over the network
Other agent features include:
- Fault tolerance: Should the Hyperic Server become temporarily unavailable, the Agent continues collect data and spools it to disk, transmitting to the Server once the connection is re-established.
- Distributed management: Deploy agents to hundreds of machines from a single console through a platform-independent implementation of the SSH protocol.
- Smart Plugin configuration: Each Hyperic plug-in enables a set of default metrics that immediately provide the appropriate level of visibility for that resource and defines an inventory hierarchy specific to the technology it manages.
- Built-in efficiency: Each technology-specific Hyperic plug-in is built to interact with the APIs and monitoring mechanisms employed by that vendor’s own management and administration tools. This guarantees that Hyperic can manage the resource with the same efficiency.
Demo video: Overview of Hyperic Plugin Architecture