Ganglia (software): Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>Pgallert
m Ganglia Monitoring Daemon (gmond): rm rendering white space
 
imported>Jerryobject
Ganglia: Small WP:COPYEDIT WP:EoS WP:TERSE: clarifys, fix needless section MOS:HEADing article WP:TITLE MOS:NOBACKREF word repeat. Cut needless whitespace character carriage return in section: to standardize, aid work via small screens. WP:LINKs: 1st instances add.
 
Line 1: Line 1:
{{Short description|Distributed monitoring tool software}}
{{Short description|Distributed monitoring tool software}}
{{Use dmy dates|date=January 2021}}
{{Use dmy dates|date=January 2021}}
{{refimprove|date=April 2014}}
{{More citations needed|date=April 2014}}
{{Infobox software
{{Infobox software
| name = Ganglia
| name = Ganglia
| logo =
| logo =
| screenshot = [[File:ScalableGridEngineGanglia2.png|300px|Screenshot]]
| screenshot = ScalableGridEngineGanglia2.png
| caption =
| screenshot size = 300px
| caption = Screenshot
| author =
| author =
| developer =
| developer =
| released =
| released =
| latest release version = {{wikidata|property|preferred|references|edit@end|Q1193169|P348|P548=Q2804309}}
| latest release version = {{wikidata|property|preferred|references|edit@end|Q1193169|P348|P548=Q2804309}}
| latest release date = {{Release date and age|{{wikidata|qualifier|preferred|single|Q1193169|P348|P548=Q2804309|P577}}}}
| latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|Q1193169|P348|P548=Q2804309|P577}}}}
| latest preview version =
| latest preview version =
| latest preview date =
| latest preview date =
| programming language = [[C (programming language)|C]], [[Perl]], [[PHP]], [[Python (programming language)|Python]]
| programming language = [[C (programming language)|C]], [[Perl]], [[PHP]], [[Python (programming language)|Python]]
| operating system = [[Cross-platform]]
| operating system = [[Cross-platform software|Cross-platform]]
| platform =
| platform =
| language = English
| language = English
| genre = Distributed monitoring
| genre = Distributed monitoring
| license = [[BSD license]]
| license = [[BSD licenses|BSD]]
| website = {{URL|http://www.ganglia.info/}}
| website = {{URL|www.ganglia.info}}
}}
}}
'''Ganglia''' is a scalable, distributed [[system monitor|monitoring]] tool for high-performance computing systems, clusters and networks. The software is used to view either live or recorded statistics covering metrics such as [[Central processing unit|CPU]] load averages or network utilization for many nodes.
'''Ganglia''' is a scalable, distributed [[system monitor]]ing tool for high-performance computing systems, clusters and networks. The software is used to view either live or recorded statistics covering metrics such as [[central processing unit]] (CPU) load averages or network utilization for many nodes.


Ganglia software is bundled with enterprise-level Linux distributions such as Red Hat Enterprise Linux (RHEL) or the CentOS repackaging of the same. Ganglia grew out of requirements for monitoring systems by Berkeley (University of California) but now sees use by commercial and educational organisations such as Cray, MIT, NASA and Twitter.
Ganglia software is bundled with enterprise-level Linux distributions such as Red Hat Enterprise Linux (RHEL) or the CentOS repackaging of the same. Ganglia grew out of requirements for monitoring systems by the [[University of California, Berkeley]] but now is used by commercial and educational organisations such as [[Cray]], [[Massachusetts Institute of Technology]] (MIT), [[NASA]], and [[Twitter]].


==Ganglia==
==Design==
It is based on a hierarchical design targeted at federations of clusters. It relies on a [[multicast]]-based listen/announce protocol to monitor state within clusters and uses a tree of point-to-point connections amongst representative cluster nodes to federate clusters and aggregate their state. It leverages widely used technologies such as [[XML]] for data representation, [[External Data Representation]] (XDR) for compact, portable data transport, and [[RRDtool]] for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on over 500 clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes.<ref>[http://ganglia.info/ Ganglia Monitoring System]</ref>


It is based on a hierarchical design targeted at federations of clusters. It relies on a [[multicast]]-based listen/announce protocol to monitor state within clusters and uses a tree of point-to-point connections amongst representative cluster nodes to federate clusters and aggregate their state. It leverages widely used technologies such as [[XML]] for data representation, [[External Data Representation|XDR]] for compact, portable data transport, and [[RRDtool]] for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on over 500 clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes.<ref>[http://ganglia.info/ Ganglia Monitoring System]</ref>
The ganglia system comprises two unique [[Daemon (computing)|daemons]]: a [[PHP]]-based web [[Frontend and backend|front-end]], and a few other small [[utility software]] programs.
 
The ganglia system comprises two unique daemons, a [[PHP]]-based web front-end, and a few other small utility programs.


=== Ganglia Monitoring Daemon (gmond) ===
=== Ganglia Monitoring Daemon (gmond) ===
Line 46: Line 46:


===Ganglia Meta Daemon (gmetad)===
===Ganglia Meta Daemon (gmetad)===
Federation in Ganglia is achieved using a tree of point-to-point connections amongst representative cluster nodes to aggregate the state of multiple clusters. At each node in the tree, a Ganglia Meta Daemon (gmetad) periodically polls a collection of child data sources, parses the collected XML, saves all numeric, volatile metrics to round-robin databases and exports the aggregated XML over a TCP socket to clients. Data sources may be either gmond daemons, representing specific clusters, or other gmetad daemons, representing sets of clusters. Data sources use source [[IP address]]es for access control and can be specified using multiple IP addresses for failover. The latter capability is natural for aggregating data from clusters since each gmond daemon contains the entire state of its cluster.
Federation in Ganglia is achieved using a tree of point-to-point connections amongst representative cluster nodes to aggregate the state of multiple clusters. At each node in the tree, a Ganglia Meta Daemon (gmetad) periodically polls a collection of child data sources, parses the collected XML, saves all numeric, volatile metrics to round-robin databases and exports the aggregated XML over a TCP socket to clients. Data sources may be either gmond daemons, representing specific clusters, or other gmetad daemons, representing sets of clusters. Data sources use source [[IP address]]es for access control and can be specified using multiple IP addresses for failover. The latter ability is natural for aggregating data from clusters since each gmond daemon contains the entire state of its cluster.


===Ganglia PHP Web Front-end===
===Ganglia PHP Web front-end===
The Ganglia web front-end provides a view of the gathered information via real-time dynamic web pages. Most importantly, it displays Ganglia data in a meaningful way for system administrators and computer users. Although the web front-end to ganglia started as a simple [[HTML]] view of the XML tree, it has evolved into a system that keeps a colorful history of all collected data.
The Ganglia web front-end provides a view of the gathered information via real-time dynamic web pages. Most importantly, it displays Ganglia data in a meaningful way for system administrators and computer users. Although the web front-end to ganglia began as a simple [[HTML]] view of the XML tree, it has evolved into a system that keeps a colorful history of all collected data.


The Ganglia web front-end caters to [[system administrator]]s and users. For example, one can view the [[Central processing unit|CPU]] utilization over the past hour, day, week, month, or year. The web front-end shows similar graphs for memory usage, disk usage, network statistics, number of running processes, and all other Ganglia metrics.
The Ganglia web front-end caters to [[system administrator]]s and users. For example, one can view the [[Central processing unit|CPU]] utilization over the past hour, day, week, month, or year. The web front-end shows similar graphs for memory usage, disk usage, network statistics, number of running processes, and all other Ganglia metrics.
Line 55: Line 55:
The web front-end depends on the existence of the gmetad which provides it with data from several Ganglia sources. Specifically, the web front-end will open the local port 8651 (by default) and expects to receive a Ganglia XML tree. The web pages themselves are highly dynamic; any change to the Ganglia data appears immediately on the site. This behavior leads to a very responsive site, but requires that the full XML tree be parsed on every page access. Therefore, the Ganglia web front-end should run on a fairly powerful, dedicated machine if it presents a large amount of data.
The web front-end depends on the existence of the gmetad which provides it with data from several Ganglia sources. Specifically, the web front-end will open the local port 8651 (by default) and expects to receive a Ganglia XML tree. The web pages themselves are highly dynamic; any change to the Ganglia data appears immediately on the site. This behavior leads to a very responsive site, but requires that the full XML tree be parsed on every page access. Therefore, the Ganglia web front-end should run on a fairly powerful, dedicated machine if it presents a large amount of data.


The Ganglia web front-end is written in [[PHP]], and uses graphs generated by gmetad to display history information. It has been tested on many flavours of [[Unix]] (primarily [[Linux]]) with the [[Apache HTTP Server|Apache webserver]] and the PHP5 module.
The Ganglia web front-end is written in [[PHP]], and uses graphs generated by gmetad to display history information. It has been tested on many flavours of [[Unix]] (mostly [[Linux]]) with the [[Apache HTTP Server|Apache webserver]] and the PHP5 module.


==References==
==References==
{{Reflist}}
{{Reflist}}


Line 65: Line 64:
{{Portal|Free and open-source software}}
{{Portal|Free and open-source software}}
* {{Official website}}
* {{Official website}}
* {{sourceforge|ganglia}}
* {{SourceForge|ganglia}}
* {{Freshmeat|ganglia|Ganglia}}
* {{Freecode|ganglia|Ganglia}}
* [https://web.archive.org/web/20140731004411/http://ganglia.wikimedia.org/latest/ Wikimedia Ganglia instance]
* [https://web.archive.org/web/20140731004411/http://ganglia.wikimedia.org/latest/ Wikimedia Ganglia instance]



Latest revision as of 07:02, 21 June 2025

Template:Short description Template:Use dmy dates Template:More citations needed Script error: No such module "Infobox".Template:Template otherScript error: No such module "Check for unknown parameters".Template:Main other Ganglia is a scalable, distributed system monitoring tool for high-performance computing systems, clusters and networks. The software is used to view either live or recorded statistics covering metrics such as central processing unit (CPU) load averages or network utilization for many nodes.

Ganglia software is bundled with enterprise-level Linux distributions such as Red Hat Enterprise Linux (RHEL) or the CentOS repackaging of the same. Ganglia grew out of requirements for monitoring systems by the University of California, Berkeley but now is used by commercial and educational organisations such as Cray, Massachusetts Institute of Technology (MIT), NASA, and Twitter.

Design

It is based on a hierarchical design targeted at federations of clusters. It relies on a multicast-based listen/announce protocol to monitor state within clusters and uses a tree of point-to-point connections amongst representative cluster nodes to federate clusters and aggregate their state. It leverages widely used technologies such as XML for data representation, External Data Representation (XDR) for compact, portable data transport, and RRDtool for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on over 500 clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes.[1]

The ganglia system comprises two unique daemons: a PHP-based web front-end, and a few other small utility software programs.

Ganglia Monitoring Daemon (gmond)

Gmond is a multi-threaded daemon which runs on each cluster node you want to monitor. Installation does not require having a common NFS filesystem or a database back-end, installing special accounts or maintaining configuration files.

Gmond has four main responsibilities:

  1. Monitor changes in host state.
  2. Announce relevant changes.
  3. Listen to the state of all other ganglia nodes via a unicast or multicast channel.
  4. Answer requests for an XML description of the cluster state.

Each gmond transmits information in two different ways:

Ganglia Meta Daemon (gmetad)

Federation in Ganglia is achieved using a tree of point-to-point connections amongst representative cluster nodes to aggregate the state of multiple clusters. At each node in the tree, a Ganglia Meta Daemon (gmetad) periodically polls a collection of child data sources, parses the collected XML, saves all numeric, volatile metrics to round-robin databases and exports the aggregated XML over a TCP socket to clients. Data sources may be either gmond daemons, representing specific clusters, or other gmetad daemons, representing sets of clusters. Data sources use source IP addresses for access control and can be specified using multiple IP addresses for failover. The latter ability is natural for aggregating data from clusters since each gmond daemon contains the entire state of its cluster.

Ganglia PHP Web front-end

The Ganglia web front-end provides a view of the gathered information via real-time dynamic web pages. Most importantly, it displays Ganglia data in a meaningful way for system administrators and computer users. Although the web front-end to ganglia began as a simple HTML view of the XML tree, it has evolved into a system that keeps a colorful history of all collected data.

The Ganglia web front-end caters to system administrators and users. For example, one can view the CPU utilization over the past hour, day, week, month, or year. The web front-end shows similar graphs for memory usage, disk usage, network statistics, number of running processes, and all other Ganglia metrics.

The web front-end depends on the existence of the gmetad which provides it with data from several Ganglia sources. Specifically, the web front-end will open the local port 8651 (by default) and expects to receive a Ganglia XML tree. The web pages themselves are highly dynamic; any change to the Ganglia data appears immediately on the site. This behavior leads to a very responsive site, but requires that the full XML tree be parsed on every page access. Therefore, the Ganglia web front-end should run on a fairly powerful, dedicated machine if it presents a large amount of data.

The Ganglia web front-end is written in PHP, and uses graphs generated by gmetad to display history information. It has been tested on many flavours of Unix (mostly Linux) with the Apache webserver and the PHP5 module.

References

Template:Reflist

External links

Template:Sister project Script error: No such module "Portal".