Ganglia Monitoring core
Switch branches/tags
test start release_0_3_4 release_0_2_2 release_0_2_1 preGmetricMessageUpdate@611 preGmetricMessageUpdate monitor-core-3.1.7 monitor-core-3.1.6 monitor-core-3.1.5 monitor-core-3.1.4 monitor-core-3.1.3 monitor-core-3.1.2 monitor-core-3.1.1 monitor-core-3.1.0 monitor-core-3.0.7 monitor-core-3.0.6 monitor-core-3.0.5 monitor-core-3.0.4 monitor-core-3.0.3 monitor-core-3.0.2 monitor-core-3.0.1 monitor-core-3.0.0 monitor-core-3.0-beta monitor-core-2.5.7 monitor-core-2.5.6 monitor-core-2.5.4 monitor-core-2.5.3 monitor-core-2.5.2 monitor-core-2.5.1 monitor-core-2.5.0 monitor-core-2.5.0-update monitor-core-2.4.1 massie_3_0_0_fixed_darwin_gstat_bug@542 massie_3_0_0_fixed_darwin_gstat_bug massie_3_0_0_IPv6_to_IPv4_mapping_removed_for_security@537 massie_3_0_0_IPv6_to_IPv4_mapping_removed_for_security massie_2_6_0_updated_protocol_for_HPUX_solaris_now_complete@492 massie_2_6_0_updated_protocol_for_HPUX_solaris_now_complete massie_2_6_0_updated_darwin_metric_altered_default_gmond_conf@523 massie_2_6_0_updated_darwin_metric_altered_default_gmond_conf massie_2_6_0_tcp_accept_channels_functional@466 massie_2_6_0_tcp_accept_channels_functional massie_2_6_0_protocol_definition_contains_2_5_compat@461 massie_2_6_0_protocol_definition_contains_2_5_compat massie_2_6_0_near_beta@487 massie_2_6_0_near_beta massie_2_6_0_multicast_support_added@454 massie_2_6_0_multicast_support_added massie_2_6_0_gmond_tmax_values_corrected@475 massie_2_6_0_gmond_tmax_values_corrected massie_2_6_0_gmond_now_listens_saves_all_udp_data@472 massie_2_6_0_gmond_now_listens_saves_all_udp_data massie_2_6_0_gmond_nearly_complete_send_metrics@478 massie_2_6_0_gmond_nearly_complete_send_metrics massie_2_6_0_gmond_host_and_gmetric_cleanup_added_feature_complete@508 massie_2_6_0_gmond_host_and_gmetric_cleanup_added_feature_complete massie_2_6_0_gmond_gmetric_support_added@490 massie_2_6_0_gmond_gmetric_support_added massie_2_6_0_gmetric_complete_now_parses_config@503 massie_2_6_0_gmetric_complete_now_parses_config massie_2_6_0_config_convertion_code_complete@530 massie_2_6_0_config_convertion_code_complete massie_2_6_0_all_metrics_available_add_bandwidth_metric_commandline_flags@484 massie_2_6_0_all_metrics_available_add_bandwidth_metric_commandline_flags massie_2_6_0_added_xdr_protocol_file_apache_runtime@436 massie_2_6_0_added_xdr_protocol_file_apache_runtime massie_2_6_0_added_webfrontend_gmond_based_on_apr@454 massie_2_6_0_added_webfrontend_gmond_based_on_apr massie_2_6_0_added_code_to_convert_25_config_files@525 massie_2_6_0_added_code_to_convert_25_config_files massie_2_6_0_access_control_lists_added@518 massie_2_6_0_access_control_lists_added massie_2_5_8_tested_on_solaris_freebsd_linux@399 massie_2_5_8_tested_on_solaris_freebsd_linux massie_2_5_8_new_gmond_conf_daemonize_flag_foreground@416 massie_2_5_8_new_gmond_conf_daemonize_flag_foreground massie_2_5_8_major_code_cleanup@396 massie_2_5_8_major_code_cleanup massie_2_5_8_libmetrics_cygwin_windows_native_api@416 massie_2_5_8_libmetrics_cygwin_windows_native_api massie_2_5_8_fixed_rpmspec_libtool_for_libganglia@407 massie_2_5_8_fixed_rpmspec_libtool_for_libganglia massie_2_5_8_cygwin_support@411 massie_2_5_8_cygwin_support massie_2_5_8_cleaned_up_libganglia@405 massie_2_5_8_cleaned_up_libganglia gweb-2.0.0 gexec-0.3.9@1383 gexec-0.3.9 gexec-0.3.4 gexec-0.2.2 gexec-0.2.1 Release_06192002_2_4_1 Release_30_01_2003_Version_2-5-2@172 Release_30_01_2003_Version_2-5-2 Release_12_10_2004_Version-2-5-7@242 Release_12_10_2004_Version-2-5-7 Release_09-20-2002_Version_2-5-0@142 Release_09-20-2002_Version_2-5-0
Nothing to show
Pull request Compare This branch is 460 commits behind ganglia:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Using Ganglia on AIX

This version has been tested on the following AIX levels:
- AIX5L V5.1 ML 04
- AIX5L V5.2 ML 01
- AIX5L V5.3 ML 01
- AIX5L V5.3 TL 07
- AIX V6.1 TL 00
- AIX V6.1 TL 03


1. You can compile Ganglia on AIX either with the IBM XLC/C++ or GNU GCC.

2. Ganglia should be compiled with shared libraries to enable DSOs.
   For DSOs to work you need to set the "-Wl,-brtl" flag to $LDFLAGS.

3. To compile Ganglia you will need some additional tools, all of which
   you can obtain from
   As a minimum the following additional tools are required to compile:
   - gmond only
     * apr
     * expat
     * libconfuse
     * pcre (can be disabled with "--with-libpcre=no")
   - gmetad
     * requirements of gmond
     * rrdtool

   Please note that no package of the IBM AIX Toolbox for Linux Applications
   currently provides the required functionality to compile Ganglia.

4. In order to speed up the configure process under AIX you should install
   bash and use the following environment settings:

   export CONFIG_SHELL=/opt/freeware/bin/bash
   export CONFIG_ENV_ARGS=/opt/freeware/bin/bash

Recommended settings for IBM XLC/C++ (tested with V7 and V9):
export CC=xlc_r
export CFLAGS="-qmaxmem=16384 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include"
export LD=ld
export LDFLAGS="-L/opt/freeware/lib -Wl,-bmaxdata:0x80000000 -Wl,-brtl"

Recommended settings for GNU GCC (tested with V4.2.3):
export CC=gcc
export CFLAGS="-DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include"
export LD=ld
export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000 -Wl,-brtl"

In case you are running a higher AIX level then V5.1 you should add the following
defines to $CFLAGS depending on your AIX level:

-D_AIX52 -D_AIX53 -D_AIX61

For example, for AIX V6.1 you would set $CFLAGS for XLC/C++ as follows:
export CFLAGS="-qmaxmem=16384 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include"

Known problems and Limitations

- No IBM Power metrics are included.
  If you want those you can get them from
- Python support was not tested up to now, therefore you should use the
  "--disable-python" configure flag.
- When compiling a new version of Ganglia please make sure no earlier
  versions are installed in the default paths (-I/opt/freeware/include,
- On AIX V6.1 TL 03 using GNU GCC the compilation of gmond runs into an
  error with the system include file /usr/include/netinet/in6_var.h
  The only solution at the moment is to comment out the offending line
  in /usr/include/netinet/in6_var.h
  Compilation with IBM XLC/C++ is fine though.

Recommended configure setup:
Using the environment settings above depending whether you are using
IBM XLC/C++ or GNU GCC you should use the following "./configure" command
to set up and compile Ganglia on AIX:

./configure \
    --prefix=<PREFIX> \
    --sysconfdir=<SYSCONFDIR> \
    --enable-shared --enable-static \
    --with-gmetad \

where <PREFIX> is your preferred prefix, the default is "/usr/local" whereas
you *have* to set the value for <SYSCONFDIR> (recommended "/etc/ganglia/").

Upgrading to 3.1 from 3.0

Starting with 3.1, the disk metrics units had changed from MB to GB for
consistency with other platforms, therefore when upgrading a system you
should expect to see a step function in the graphs from the time that the
new version starts reporting.

If you would rather avoid that jump, you could then prepare before upgrading
to normalize your disk metrics rrd to store instead values in the new units
which are 1/1000th smaller (ex: 1.5660300000e+05 to 1.5660300000e+02) for all
stored values, using rrdtool's dump/restore functionality :

1) stop gmond in the node to upgrade (ex:
2) locate the directory in the gmetad server where the metrics for that node
   are being stored (ex: /var/lib/ganglia/rrds/unspecified/
3) locate the rrd metric files for the disk metrics that will be affected
   (ex: disk_free.rrd and disk_total.rrd)
4) stop gmetad
5) dump the data to an XML file that can then be edited
   (ex: rrdtool dump disk_free.rrd > disk_free.xml)
6) edit all values to reflect the new metric unit
   (ex: perl -pi -e "s/e\+05/e+02/g" disk_total.xml)
7) restore the "normalized" data back into the RRD
   (ex: rm -f disk_free.rrd && rrdtool restore -f disk_free.xml disk_free.rrd)
8) remove the temporary files and be sure that permissions are correct and
   start gmetad (ex: rm -f disk_free.xml && chown nobody disk_free.rrd)
9) upgrade ganglia and start gmond in the node that was going to be updated