| #!/bin/sh |
| |
| #/* |
| # * Licensed to the Apache Software Foundation (ASF) under one |
| # * or more contributor license agreements. See the NOTICE file |
| # * distributed with this work for additional information |
| # * regarding copyright ownership. The ASF licenses this file |
| # * to you 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. |
| # */ |
| |
| cd `dirname ${0}`; |
| |
| # Slurp in all our user-customizable settings. |
| source ./gangliaEnv.sh; |
| |
| # Get access to Ganglia-wide constants etc. |
| source ./gangliaLib.sh; |
| |
| GMETAD_BIN=/usr/sbin/gmetad; |
| GMETAD_CONF_FILE=${GANGLIA_CONF_DIR}/gmetad.conf; |
| GMETAD_PID_FILE=${GANGLIA_RUNTIME_DIR}/gmetad.pid; |
| |
| function getGmetadLoggedPid() |
| { |
| if [ -e "${GMETAD_PID_FILE}" ] |
| then |
| echo `cat ${GMETAD_PID_FILE}`; |
| fi |
| } |
| |
| function getGmetadRunningPid() |
| { |
| gmetadLoggedPid=`getGmetadLoggedPid`; |
| |
| if [ -n "${gmetadLoggedPid}" ] |
| then |
| echo `ps -o pid=MYPID -p ${gmetadLoggedPid} | tail -1 | awk '{print $1}' | grep -v MYPID`; |
| fi |
| } |
| |
| function generateGmetadConf() |
| { |
| now=`date`; |
| |
| cat <<END_OF_GMETAD_CONF_1 |
| #################### Generated by ${0} on ${now} #################### |
| # |
| #------------------------------------------------------------------------------- |
| # Setting the debug_level to 1 will keep daemon in the forground and |
| # show only error messages. Setting this value higher than 1 will make |
| # gmetad output debugging information and stay in the foreground. |
| # default: 0 |
| # debug_level 10 |
| # |
| #------------------------------------------------------------------------------- |
| # What to monitor. The most important section of this file. |
| # |
| # The data_source tag specifies either a cluster or a grid to |
| # monitor. If we detect the source is a cluster, we will maintain a complete |
| # set of RRD databases for it, which can be used to create historical |
| # graphs of the metrics. If the source is a grid (it comes from another gmetad), |
| # we will only maintain summary RRDs for it. |
| # |
| # Format: |
| # data_source "my cluster" [polling interval] address1:port addreses2:port ... |
| # |
| # The keyword 'data_source' must immediately be followed by a unique |
| # string which identifies the source, then an optional polling interval in |
| # seconds. The source will be polled at this interval on average. |
| # If the polling interval is omitted, 15sec is asssumed. |
| # |
| # If you choose to set the polling interval to something other than the default, |
| # note that the web frontend determines a host as down if its TN value is less |
| # than 4 * TMAX (20sec by default). Therefore, if you set the polling interval |
| # to something around or greater than 80sec, this will cause the frontend to |
| # incorrectly display hosts as down even though they are not. |
| # |
| # A list of machines which service the data source follows, in the |
| # format ip:port, or name:port. If a port is not specified then 8649 |
| # (the default gmond port) is assumed. |
| # default: There is no default value |
| # |
| # data_source "my cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655 |
| # data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651 |
| # data_source "another source" 1.3.4.7:8655 1.3.4.8 |
| END_OF_GMETAD_CONF_1 |
| |
| # Get info about all the configured Ganglia clusters. |
| getGangliaClusterInfo | while read gangliaClusterInfoLine |
| do |
| # From each, parse out ${gmondClusterName}, ${gmondMasterIP} and ${gmondPort}... |
| read gmondClusterName gmondMasterIP gmondPort <<<`echo ${gangliaClusterInfoLine}`; |
| # ...and generate a corresponding data_source line for gmetad.conf. |
| echo "data_source \"${gmondClusterName}\" ${gmondMasterIP}:${gmondPort}"; |
| done |
| |
| cat <<END_OF_GMETAD_CONF_2 |
| # |
| # Round-Robin Archives |
| # You can specify custom Round-Robin archives here (defaults are listed below) |
| # |
| # RRAs "RRA:AVERAGE:0.5:1:244" "RRA:AVERAGE:0.5:24:244" "RRA:AVERAGE:0.5:168:244" "RRA:AVERAGE:0.5:672:244" \ |
| # "RRA:AVERAGE:0.5:5760:374" |
| # |
| #------------------------------------------------------------------------------- |
| # Scalability mode. If on, we summarize over downstream grids, and respect |
| # authority tags. If off, we take on 2.5.0-era behavior: we do not wrap our output |
| # in <GRID></GRID> tags, we ignore all <GRID> tags we see, and always assume |
| # we are the "authority" on data source feeds. This approach does not scale to |
| # large groups of clusters, but is provided for backwards compatibility. |
| # default: on |
| # scalable off |
| # |
| #------------------------------------------------------------------------------- |
| # The name of this Grid. All the data sources above will be wrapped in a GRID |
| # tag with this name. |
| # default: unspecified |
| gridname "HDP_GRID" |
| # |
| #------------------------------------------------------------------------------- |
| # The authority URL for this grid. Used by other gmetads to locate graphs |
| # for our data sources. Generally points to a ganglia/ |
| # website on this machine. |
| # default: "http://hostname/ganglia/", |
| # where hostname is the name of this machine, as defined by gethostname(). |
| # authority "http://mycluster.org/newprefix/" |
| # |
| #------------------------------------------------------------------------------- |
| # List of machines this gmetad will share XML with. Localhost |
| # is always trusted. |
| # default: There is no default value |
| # trusted_hosts 127.0.0.1 169.229.50.165 my.gmetad.org |
| # |
| #------------------------------------------------------------------------------- |
| # If you want any host which connects to the gmetad XML to receive |
| # data, then set this value to "on" |
| # default: off |
| # all_trusted on |
| # |
| #------------------------------------------------------------------------------- |
| # If you don't want gmetad to setuid then set this to off |
| # default: on |
| # setuid off |
| # |
| #------------------------------------------------------------------------------- |
| # User gmetad will setuid to (defaults to "nobody") |
| # default: "nobody" |
| setuid_username "${GMETAD_USER}" |
| # |
| #------------------------------------------------------------------------------- |
| # Umask to apply to created rrd files and grid directory structure |
| # default: 0 (files are public) |
| # umask 022 |
| # |
| #------------------------------------------------------------------------------- |
| # The port gmetad will answer requests for XML |
| # default: 8651 |
| # xml_port 8651 |
| # |
| #------------------------------------------------------------------------------- |
| # The port gmetad will answer queries for XML. This facility allows |
| # simple subtree and summation views of the XML tree. |
| # default: 8652 |
| # interactive_port 8652 |
| # |
| #------------------------------------------------------------------------------- |
| # The number of threads answering XML requests |
| # default: 4 |
| # server_threads 10 |
| # |
| #------------------------------------------------------------------------------- |
| # Where gmetad stores its round-robin databases |
| # default: "/var/lib/ganglia/rrds" |
| # rrd_rootdir "/some/other/place" |
| # |
| #------------------------------------------------------------------------------- |
| # In earlier versions of gmetad, hostnames were handled in a case |
| # sensitive manner |
| # If your hostname directories have been renamed to lower case, |
| # set this option to 0 to disable backward compatibility. |
| # From version 3.2, backwards compatibility will be disabled by default. |
| # default: 1 (for gmetad < 3.2) |
| # default: 0 (for gmetad >= 3.2) |
| case_sensitive_hostnames 1 |
| END_OF_GMETAD_CONF_2 |
| } |