1gmond.conf(5) Ganglia Monitoring System gmond.conf(5)
2
3
4
6 gmond.conf - configuration file for ganglia monitoring daemon (gmond)
7
9 The gmond.conf file is used to configure the ganglia monitoring daemon
10 (gmond) which is part of the Ganglia Distributed Monitoring System.
11
13 All sections and attributes are case-insensitive. For example, name or
14 NAME or Name or NaMe are all equivalent.
15
16 Some sections can be included in the configuration file multiple times
17 and some sections are singular. For example, you can have only one
18 cluster section to define the attributes of the cluster being moni‐
19 tored; however, you can have multiple udp_recv_channel sections to
20 allow gmond to receive message on multiple UDP channels.
21
22 cluster
23
24 There should only be one cluster section defined. This section con‐
25 trols how gmond reports the attributes of the cluster that it is part
26 of.
27
28 The cluster section has four attributes: name, owner, latlong and url.
29
30 For example,
31
32 cluster {
33 name = "Millennium Cluster"
34 owner = "UC Berkeley CS Dept."
35 latlong = "N37.37 W122.23"
36 url = "http://www.millennium.berkeley.edu/"
37 }
38
39 The name attributes specifies the name of the cluster of machines. The
40 owner tag specifies the administrators of the cluster. The pair
41 name/owner should be unique to all clusters in the world.
42
43 The latlong attribute is the latitude and longitude GPS coordinates of
44 this cluster on earth. Specified to 1 mile accuracy with two decimal
45 places per axis in decimal.
46
47 The url for more information on the cluster. Intended to give purpose,
48 owner, administration, and account details for this cluster.
49
50 There directives directly control the XML output of gmond. For exam‐
51 ple, the cluster configuration example above would translate into the
52 following XML.
53
54 <CLUSTER NAME="Millennium Cluster" OWNER="UC Berkeley CS Dept."
55 LATLONG="N37.37 W122.23" URL="http://www.millennium.berkeley.edu/">
56 ...
57 </CLUSTER>
58
59 NOTE: Currently gmetad cannot process data sources that do not have a
60 cluster tag. This will be remedied in the future.
61
62 host
63
64 The host section provides information about the host running this
65 instance of gmond. Currently only the location string attribute is sup‐
66 ported. Example:
67
68 host {
69 location = "(1,2,3)"
70 }
71
72 globals
73
74 The globals section controls general characteristics of gmond such as
75 whether is should daemonize, what user it should run as, whether is
76 should send/receive date and such. The globals section has the follow‐
77 ing attributes: daemonize, setuid, user, debug_level, mute, deaf,
78 host_dmax, cleanup_threshold, and gexec.
79
80 For example,
81
82 globals {
83 daemonize = true
84 setuid = true
85 user = nobody
86 host_dmax = 3600
87 }
88
89 The daemonize attribute is a boolean. When true, gmond will daemonize.
90 When false, gmond will run in the foreground.
91
92 The setuid attribute is a boolean. When true, gmond will set its
93 effective UID to the uid of the user specified by the user attribute.
94 When false, gmond will not change its effective user.
95
96 The debug_level is an integer value. When set to zero (0), gmond will
97 run normally. A debug_level greater than zero will result in gmond
98 running in the foreground and outputting debugging information. The
99 higher the debug_level the more verbose the output.
100
101 The mute attribute is a boolean. When true, gmond will not send data
102 regardless of any other configuration directives.
103
104 The deaf attribute is a boolean. When true, gmond will not receive
105 data regardless of any other configuration directives.
106
107 The host_dmax value is an integer with units in seconds. When set to
108 zero (0), gmond will never delete a host from its list even when a
109 remote host has stopped responding. If host_dmax is set to a positive
110 number then gmond will flush a host after it has not heard from it for
111 host_dmax seconds. By the way, dmax means "delete max".
112
113 The cleanup_threshold is the minimum about of time before gmond will
114 cleanup and hosts or metrics where tn > dmax a.k.a. expired data.
115
116 The gexec boolean allows you to specify whether gmond will announce the
117 hosts availability to run gexec jobs. Note: this requires the gexecd
118 is running on the host and the proper keys have been installed.
119
120 udp_send_channel
121
122 You can define as many udp_send_channel sections as you like within the
123 limitations of memory and file descriptors. If gmond is configured as
124 mute this section will be ignored.
125
126 The udp_send_channel has a total of five attributes: mcast_join,
127 mcast_if, host, port and ttl.
128
129 For example, the 2.5.x version gmond would send on the following single
130 channel by default...
131
132 udp_send_channel {
133 mcast_join = 239.2.11.71
134 port = 8649
135 }
136
137 The mcast_join and mcast_if attributes are optional. When specified
138 gmond will create the UDP socket and join the mcast_join multicast
139 group and send data out the interface specified by mcast_if.
140
141 If only a host and port are specified then gmond will send unicast UDP
142 messages to the hosts specified. You could specify multiple unicast
143 hosts for redundancy as gmond will send UDP messages to all UDP chan‐
144 nels.
145
146 For example...
147
148 udp_send_channel {
149 host = host.foo.com
150 port = 2389
151 }
152 udp_send_channel {
153 host = 192.168.3.4
154 port = 2344
155 }
156
157 would configure gmond to send messages to two hosts. The host specifi‐
158 cation can be an IPv4/IPv6 address or a resolvable hostname.
159
160 udp_recv_channel
161
162 You can specify as many udp_recv_channel sections as you like within
163 the limits of memory and file descriptors. If gmond is configured deaf
164 this attribute will be ignored.
165
166 The udp_recv_channel section has following attributes: mcast_join,
167 bind, port, mcast_if, family. The udp_recv_channel can also have an
168 acl definition (see ACCESS CONTROL LISTS below).
169
170 For example, the 2.5.x gmond ran with a single udp receive channel...
171
172 udp_recv_channel {
173 mcast_join = 239.2.11.71
174 bind = 239.2.11.71
175 port = 8649
176 }
177
178 The mcast_join and mcast_if should only be used if you want to have
179 this UDP channel receive multicast packets the multicast group
180 mcast_join on interface mcast_if. If you do not specify multicast
181 attributes then gmond will simply create a UDP server on the specified
182 port.
183
184 You can use the bind attribute to bind to a particular local address.
185
186 The family address is set to inet4 by default. If you want to bind the
187 port to an inet6 port, you need to specify that in the family
188 attribute. Ganglia will not allow IPV6=>IPV4 mapping (for portability
189 and security reasons). If you want to listen on both inet4 and inet6
190 for a particular port, explicitly state it with the following:
191
192 udp_recv_channel {
193 port = 8666
194 family = inet4
195 }
196 udp_recv_channel {
197 port = 8666
198 family = inet6
199 }
200
201 If you specify a bind address, the family of that address takes prece‐
202 dence. f your IPv6 stack doesn't support IPV6_V6ONLY, a warning will
203 be issued but gmond will continue working (this should rarely happen).
204
205 Multicast Note: for multicast, specifying a bind address that equals
206 the mcast_join address will prevent unicast UDP messages to the same
207 port from being processed.
208
209 tcp_accept_channel
210
211 You can specify as many tcp_accept_channel sections as you like within
212 the limitations of memory and file descriptors. If gmond is configured
213 to be mute, then these sections are ignored.
214
215 The tcp_accept_channel has the following attributes: bind, port, inter‐
216 face, family and timeout. A tcp_accept_channel may also have an acl
217 section specified (see ACCESS CONTROL LISTS below).
218
219 For example, 2.5.x gmond would accept connections on a single TCP chan‐
220 nel.
221
222 tcp_accept_channel {
223 port = 8649
224 }
225
226 The bind address is optional and allows you to specify which local
227 address gmond will bind to for this channel.
228
229 The port is an integer than specifies which port to answer requests for
230 data.
231
232 The family address is set to inet4 by default. If you want to bind the
233 port to an inet6 port, you need to specify that in the family
234 attribute. Ganglia will not allow IPV6=>IPV4 mapping (for portability
235 and security reasons). If you want to listen on both inet4 and inet6
236 for a particular port, explicitly state it with the following:
237
238 tcp_accept_channel {
239 port = 8666
240 family = inet4
241 }
242 tcp_accept_channel {
243 port = 8666
244 family = inet6
245 }
246
247 If you specify a bind address, the family of that address takes prece‐
248 dence. If your IPv6 stack doesn't support IPV6_V6ONLY, a warning will
249 be issued but gmond will continue working (this should rarely happen).
250
251 The timeout attribute allows you to specify how many microseconds to
252 block before closing a connection to a client. The default is set to 1
253 second (1000000 usecs). If you have a very slow connection you may
254 need to increase this value.
255
256 The interface is not implemented at this time (use bind).
257
258 collection_group
259
260 You can specify as many collection_group section as you like within the
261 limitations of memory. A collection_group has the following
262 attributes: collect_once, collect_every and time_threshold. A collec‐
263 tion_group must also contain one or more metric sections.
264
265 The metric section has the following attributes: name and value_thresh‐
266 old. For a list of available metric names, run the following command:
267
268 % gmond -m
269
270 Here is an example of a collection group for a static metric...
271
272 collection_group {
273 collect_once = yes
274 time_threshold = 1800
275 metric {
276 name = "cpu_num"
277 }
278 }
279
280 This collection_group entry would cause gmond to collect the cpu_num
281 metric once at startup (since the number of CPUs will not change
282 between reboots). The metric cpu_num would be send every 1/2 hour
283 (1800 seconds). The default value for the time_threshold is 3600 sec‐
284 onds if no time_threshold is specified.
285
286 The time_threshold is the maximum amount of time that can pass before
287 gmond sends all metrics specified in the collection_group to all listed
288 udp_send_channels. A metric may be sent before this time_threshold is
289 met if during collection the value surpasses the value_threshold
290 (explained below).
291
292 Here is an example of a collection group for a volatile metric...
293
294 collection_group {
295 collect_every = 60
296 time_threshold = 300
297 metric {
298 name = "cpu_user"
299 value_threshold = 5.0
300 }
301 metric {
302 name = "cpu_idle"
303 value_threshold = 10.0
304 }
305 }
306
307 This collection group would collect the cpu_user and cpu_idle metrics
308 every 60 seconds (specified in collect_every). If cpu_user varies by
309 5.0% or cpu_idle varies by 10.0%, then the entire collection_group is
310 sent. If no value_threshold is triggered within time_threshold seconds
311 (in this case 300), the entire collection_group is sent.
312
313 Each time the metric value is collected the new value is compared with
314 the old value collected. If the difference between the last value and
315 current value is greater than the value_threshold, the entire collec‐
316 tion group is send to the udp_send_channels defined.
317
318 It's important to note that all metrics in a collection group are sent
319 even when only a single value_threshold is surpassed.
320
321 include
322
323 Useful if you want to include another configuration file; for example:
324
325 include("globals.conf")
326
327 udp_send_channel {
328 mcast_join = 239.2.11.71
329 port = 8649
330 }
331
333 The udp_recv_channel and tcp_accept_channel directives can contain an
334 Access Control List (ACL). This ACL allows you to specify exactly
335 which hosts gmond process data from.
336
337 An example of an acl entry looks like
338
339 acl {
340 default = "deny"
341 access {
342 ip = 192.168.0.4
343 mask = 32
344 action = "allow"
345 }
346 }
347
348 This ACL will by default reject all traffic that is not specifically
349 from host 192.168.0.4 (the mask size for an IPv4 address is 32, the
350 mask size for an IPv6 address is 128 to represent a single host).
351
352 Here is another example
353
354 acl {
355 default = "allow"
356 access {
357 ip = 192.168.0.0
358 mask = 24
359 action = "deny"
360 }
361 access {
362 ip = ::ff:1.2.3.0
363 mask = 120
364 action = "deny"
365 }
366 }
367
368 This ACL will by default allow all traffic unless it comes from the two
369 subnets specified with action = "deny".
370
372 The default behavior for a 2.5.x gmond would be specified as...
373
374 udp_recv_channel {
375 mcast_join = 239.2.11.71
376 bind = 239.2.11.71
377 port = 8649
378 }
379 udp_send_channel {
380 mcast_join = 239.2.11.71
381 port = 8649
382 }
383 tcp_accept_channel {
384 port = 8649
385 }
386
387 To see the complete default configuration for gmond simply run:
388
389 % gmond -t
390
391 gmond will print out it default behavior in a configuration file and
392 then exit. Capturing this output to a file can serve as a useful
393 starting point for creating your own custom configuration.
394
395 % gmond -t > custom.conf
396
397 edit custom.conf to taste and then
398
399 % gmond -c ./custom.conf
400
402 The ganglia web site is at http://ganglia.info/.
403
405 Copyright (c) 2005 The University of California, Berkeley
406
407
408
409ganglia/3.0.6 2007-12-14 gmond.conf(5)