Version information
Start using this module
Add this module to your Puppetfile:
mod 'jhoblitt-ganglia', '1.2.1'
Learn more about managing modules with a PuppetfileDocumentation
Puppet ganglia Module
Table of Contents
Overview
Manages ganglia gmond & gmetad daemons + web front end
Description
This is a puppet module for installation and configuration of the
ganglia
gmond
& gmetad
daemons + web
front end.
Usage
ganglia::gmond
This class manages the configurtion of the Ganglia gmond
daemon.
# unicast
$udp_recv_channel = [
{ port => 8649, bind => 'localhost' },
{ port => 8649, bind => '0.0.0.0' },
]
$udp_send_channel = [
{ port => 8649, host => 'test1.example.org', ttl => 2 },
{ port => 8649, host => 'test2.example.org', ttl => 2 },
]
$tcp_accept_channel = [
{ port => 8649 },
]
# multicast
$udp_recv_channel = [
{ mcast_join => '239.2.11.71', port => 8649, ttl => 1 }
]
$udp_send_channel = [
{ mcast_join => '239.2.11.71', port => 8649, bind => '239.2.11.71' }
]
$tcp_accept_channel = [
{ port => 8649 },
]
class{ 'ganglia::gmond':
cluster_name => 'example grid',
cluster_owner => 'ACME, Inc.',
cluster_latlong => 'N32.2332147 W110.9481163',
cluster_url => 'www.example.org',
host_location => 'example computer room',
udp_recv_channel => $udp_recv_channel,
udp_send_channel => $udp_send_channel,
tcp_accept_channel => $tcp_accept_channel,
}
-
cluster_name
String
defaults to:unspecified
-
cluster_owner
String
defaults to:unspecified
-
cluster_latlong
String
defaults to:unspecified
-
cluster_url
String
defaults to:unspecified
-
host_location
String
defaults to:unspecified
-
udp_send_channel
Array of Hash
defaults to:[ { mcast_join => '239.2.11.71', port => 8649, ttl => 1 } ]
-
udp_recv_channel
Array of Hash
defaults to:[ { mcast_join => '239.2.11.71', port => 8649, bind => '239.2.11.71' } ]
-
tcp_accept_channel
Array of Hash
defaults to:[ { port => 8659 } ]
ganglia::gmetad
$clusters = [
{
name => 'test',
address => ['test1.example.org', 'test2.example.org'],
},
]
class{ 'ganglia::gmetad':
clusters => $clusters,
gridname => 'my grid',
}
-
clusters
Array of Hash
defaults to:[ { 'name' => 'my cluster', 'address' => 'localhost' } ]
-
gridname
String
defaults to:undef
ganglia::web
class{ 'ganglia::web': }
class{ 'ganglia::web':
$ganglia_ip = '192.168.0.1',
$ganglia_port = 8652,
}
-
ganglia_ip
String
defaults to:127.0.0.1
-
ganglia_port
String
defaults to:8652
Limitations
Tested Platforms
It has been tested on:
- el5.x
- el6.x
- ubuntu 12.04
- ubuntu 13.04
- debian 6.07
$::osfamily == RedHat
and EPEL packages
As of 2012-11-16, the stable EPEL repos for el5 and el6 contain, respectively, packages for ganglia 3.0.7 and 3.1.7. The ganglia UDP protocol for communication between gmond daemons changed incompatibly between 3.0.x and 3.1.x. However, the TCP based protocol gmetad uses to poll gmond agents has remained compatible.
If it's desirable to stick with the EPEL packages, a possible way of dealing with this is divide a group of hosts into two clusters based on $::lsbmajdistrelease (which should imply gmond version without having to install a custom fact). The example below divides the previous "mycluster" into "mycluster_el5" and "mycluster_el6". Note that you will also have to configure gmetad to pull a gmond agent from each of these new clusters.
$udp_recv_channel = [
{ port => 8649, bind => 'localhost' },
{ port => 8649, bind => '0.0.0.0' },
]
case $::lsbmajdistrelease {
5: {
# epel for el5.x has 3.0.x, which will not work with gmond in 3.1.x
$udp_send_channel = [
{ port => 8649, host => 'gmond-3-0_host1.example.org', ttl => 2 },
{ port => 8649, host => 'gmond-3-0_host2.example.org', ttl => 2 },
]
$cluster_name = 'mycluster_el5'
}
6, default: {
# epel for el6.x has 3.1.x
$udp_send_channel = [
{ port => 8649, host => 'gmond-3-1_host1.example.org', ttl => 2 },
{ port => 8649, host => 'gmond-3-1_host2.example.org', ttl => 2 },
]
$cluster_name = 'mycluster_el6'
}
}
$tcp_accept_channel = [
{port => 8649},
]
class{ 'ganglia::gmond':
cluster_name => 'example grid',
cluster_owner => 'ACME, Inc.',
cluster_latlong => 'N32.2332147 W110.9481163',
cluster_url => 'www.example.org',
host_location => 'example computer room',
udp_recv_channel => $udp_recv_channel,
udp_send_channel => $udp_send_channel,
tcp_accept_channel => $tcp_accept_channel,
}
Versioning
This module is versioned according to the Semantic Versioning 2.0.0 specification.
Support
Please log tickets and issues at github
See Also
v0.0.2
Changes since v0.0.1
:
Joshua Hoblitt jhoblitt@cpan.org (4):
* cleanup code to pass puppet-lint and add the 'lint' rake target
* fix gmond template namespace issues with puppet >= 3
* enable travis-ci support
* change license from GPLv2 or later to Apache 2.0
Dependencies
- puppetlabs/stdlib (>= 3.0.0)
Copyright (C) 2012-2013 Joshua Hoblitt <jhoblitt@cpan.org> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.