zoukankan      html  css  js  c++  java
  • ganglia-gmond.conf配置文件

    运行下列命令可以生成gmond默认配置文件:

    User@host:$ gmond -t

    配置文件由大括弧括起来的几个section组成。这些section可以粗略划分为两个逻辑分类。第一类中的section处理主机和集群的配置;第二类中的section处理指标数据收集和调度的特定问题。

    所有section名和属性不区分大小写,例如下列属性是等价的:

    name NAME Name NaMe

    有些section是可选的,而有些则是必需的;有些section在配置文件中可能多次出现,而有些section可能只出现一次;有些section还可能包含subsection。

    在需要大型复杂配置的情况下,include指令可以将gmond.conf文件划分为多个文件。include指令支持typeglob的使用。例如下列命令表示gmond可以加载/etc/ganglia/confd./中所有以“.conf”结尾的文件:

    include('/etc/ganglia/conf.d/*.conf')

    注意: gmond.conf快速启动

    为了快速启动和运行gmond,只需要设置默认配置文件中“cluster”section的name属性。

    配置文件由第三方API——libconfuse进行语法分析。一般规则适用于libconfuse文件格式。尤其是,在表示布尔值时,可以使用yes、true和on表示正值,用no、false和off表示负值。布尔值不区分大小写。

    有8个section处理主机自身配置。

    section:globals。globals这一section配置守护进程本身的通用特性,它在配置文件中只出现一次。下面是Ganglia 3.3.1中的默认globals section。
    globals {
      daemonize = yes
       setuid = yes
       user = nobody
       debug_level = 0
       max_udp_msg_len = 1472
       mute = no
       deaf = no
       allow_extra_data = yes
       host_dmax = 86400 /*secs. Expires (removes from web interface) hosts in 1 day */
       host_tmax = 20 /*secs */
       cleanup_threshold = 300 /*secs */
       gexec = no
       send_metadata_interval = 0 /*secs */
     }

    daemonize(布尔类型)

    当值为true时,gmond将在后台分散运行。当在守护进程管理器(如daemontool)下运行gmond时,将此值设置为false。

    setuid(布尔类型)

    当值为true时,gmond将user属性指定的特定用户的UID作为有效UID;当值为false时,gmond将不会改变其有效用户。

    debug_level(整数值)

    当值为0时,gmond将正常运行。当debug_level大于0时,gmond将在前台运行并输出调试信息。debug_level值越大,输出越详细。

    max_udp_msg_len(整数值)

    该值是gmond发送包所能包含的最大长度。一般情况下该值默认不变。

    mute(布尔类型):

    当值为true时,不管其他配置指令如何,gmond将不能发送数据。“单收”(mute)gmond节点只不向其他gmond守护进程发送数据,但仍然会响应诸如gmetad的外部轮询器。

    deaf(布尔类型):

    当值为true时,不管其他配置指令如何,gmond将不能接收数据。在每个集群内拥有成千上万节点的大型网格中,或者在细致优化的HPC网格中(例如充分利用CPU的空闲周期),为减少汇聚集群状态的相关开销,经常将普通的计算节点设置为单发。在这些情形下,某些特点的节点被预置为单收,此时这些节点的性能指标将不会被测量,因为这些节点将不会用作网格的运算。因为这些节点的任务是汇聚,所以它们的性能数据会“污染”集群内其他的功能部分。

    allow_extra_data(布尔类型)

    当值为false时,gmond将不会发送XML的EXTRA_ELEMENT和EXTRA_DATA部分。该值主要应用于用户使用自己的前端并希望节省带宽时。

    host_dmax(以秒为单位的整数值)

    dmax是delete max的缩写。当值为0时,即使远程主机停止报告,gmond也不会从列表里删除该主机。如果host_dmax设置为正值,当gmond在“host_dmax”秒内接收不到某台主机的数据,gmond将删除该主机。

    host_tmax(以秒为单位的整数值)

    tmax是timeout max的缩写,代表gmond等待一台主机更新的最长时间。因为消息可能在网络中丢失,所以如果在4倍的host_tmax时间内接收不到某台主机的任何消息,gmond就认为该主机已经崩溃。

    cleanup_threshold(以秒为单位的整数值)

    gmond清除过期数据的最小时间间隔。

    gexec(布尔类型)

    当值为true时,gmond将允许主机运行gexec任务。这种方式需要运行gexecd并安装合适的验证码。

     override_hostname = "192.168.0.43"   指定本节点显示的名称

    send_metadata_interval(以秒为单位的整数值)

    该值设置gmond两次发送元数据包的时间间隔。元数据包是用来描述所有激活指标的数据包。该指令默认设置为0,表示gmond只有在初始启动和收到其他远程运行的gmond节点请求时才会发送元数据包。如果向集群内添加一台运行gmond的主机,则该主机节点需要向其他节点公布自身信息,并告知目前支持的指标标准。在多播模式下,由于任何一个节点都可以向集群内的其他节点请求发送元数据,因此该问题并不存在。然而,在单播模式下必须设置重发间隔。间隔值是两次重发之间的最少秒数。

    module_dir(路径;可选)

    该指令用来标识已找到的指标收集模块的路径。如果省略,则默认为编译时选项值:--with-moduledir。该选项值即为libganglia安装目录下名为Ganglia的子目录。为了在特定gmond中找到该指令的默认值,可以通过下面命令生成一个简单配置文件:

      # gmond -t

    例如,在32位兼容英特尔的Linux主机上,默认值通常是/usr/lib/ganglia。

    section:cluster。每个gmond守护进程会使用在cluster section中定义的属性来报告它所属集群的信息。默认值为字符串“unspecified”。使用默认值系统即可正常工作。该section在配置文件中可能只出现一次,下面为该section的默认配置:
    cluster {
       name = "unspecified"
       owner = "unspecified"
       latlong = "unspecified"
       url = "unspecified"
     }

    注意: cluster section中的属性和gmond中以XML格式输出的CLUSTER标识符的属性相对应。

    name(文本格式)

    指定集群名称。当轮询节点的集群状态的XML集合时,把该名称插入CLUSTER元素内。轮询该节点的gmetad会使用该值来命名存储集群数据的RRD文件。该指令将取代gmetad.conf配置文件中指定的集群名称。

    owner(文本格式)

    指定集群管理员。

    latlong(文本格式)

    指定该集群在地区上的GPS坐标的经纬度。

    url(文本格式)

    指定携带集群特定信息(如集群用途和使用细节)的URL。

    注意: cluster section指定的name属性将该主机置于一个集群内。多播地址和UDP端口指定一个主机是否在某个集群内。name属性只是充当轮询时的标识符。

    section: host。host section提供运行gmond主机的相关信息。目前只支持地址字符串属性。默认host section为:
    host {
       location = "unspecified"
     }

    location(文本格式)

    用来标识主机位置,描述的格式一般与站点位置有关, 经常使用rack,U[,blade]的标识方式。

    section: UDP channels。UDP发送和接收通道确定gmond节点间的交互方式。集群是由UDP通信通道所定义的,也就是说,集群只不过是共享同样发送或接收通道的一些gmond节点。

    gmond集群内每个节点默认通过UDP将自身指标数据多播至其他节点,同时侦听其他节点的类似UDP多播。这种方式很容易设置和维护:集群内每个节点共享多播地址,而且每个新节点可自动被发现。然而,正如在之前章节对单发和单收节点的介绍,有时需要通过单播地址指定某些节点。

    出于这种原因, 任意数量的gmond发送和接收通道可以独立配置以满足特定环境需求。每个发送通道都可以定义gmond发布自己指标数据的一种新方式,而且每个接收通道都可以定义gmond接收其他节点指标数据的一种方式,可能是单播,也可能是多播;可能是IPv4,也可能是IPv6。

    请注意gmond节点不能配置为向多个Ganglia集群发送指标数据,也不应该尝试从多个集群接收指标数据。

    UDP通道是通过udp_(send|receive)_channel section创建的。下面给出默认的UDP发送通道:
    udp_send_channel {
       #bind_hostname = yes
       mcast_join = 239.2.11.71
       port = 8649
       ttl = 1
     }

    bind_hostname(布尔类型;可选;多播或单播)

    通知gmond使用源地址解析主机名。

    mcast_join(IP;可选;仅多播)

    当指定该选项时,gmond将创建UDP套接字并加入由IP地址指定的多播组。该选项创建一个多播通道,并与host相互排斥。

    mcast_if(文本格式;可选;仅多播)

    当指定该选项时,gmond将发送来自指定接口(例如eth0)的数据。

    host(文本格式或IP;可选;仅单播)

    当指定该选项时,gmond将向已命名主机发送数据。该选项创建一个单播通道,并与mcast_join相互排斥。

    port(数字;可选;多播或单播)

    该选项指定gmond发送数据的端口号。如果未指定,则默认为端口8649。

    ttl(数字;可选;多播或单播)

    time-to-live的缩写。该设置在多播环境中尤其重要,因为该值限制了指标数据所允许传播的跃点(hop)数。当该值设置得比实际所需的更大时,指标数据将能够通过WAN连接传输到多个站点,甚至跳出WAN进入全局Internet。

    下面是默认的UDP接收通道:
    udp_recv_channel {
       mcast_join = 239.2.11.71
       port = 8649
       bind = 239.2.11.71
     }

    mcast_join(IP;可选;仅多播)

    当指定该选项时,gmond将侦听指定IP的多播组所发送的多播数据包。如果未指定多播属性,gmond将在指定端口创建单播UDP服务器。

    mcast_if(文本格式;可选;仅多播)

    当指定该选项时,gmond将侦听指定接口(例如eth0)的数据。

    bind(IP;可选;多播或单播)

    当指定该选项时,gmond将捆绑到指定的本地地址。

    port(数字;可选;多播或单播)

    该选项指定gmond接收数据的端口号。如果未指定,则默认使用端口8649。

    family(inet4|inet6;可选;多播或单播)

    默认IP版本为inet4。如果用户想要将该端口绑定到inet6端口,请指定family属性为inet6。Ganglia不允许IPv6=>IPv4的映射(出于便捷性和安全性考虑)。如果用户想同时对一个特殊端口进行inet4和inet6侦听,请为该端口定义两个分离的接收通道。

    acl(ACL定义;可选;多播或单播)

    通过指定接入控制列表(Access Control Line,ACL)可以对接收通道进行精细地接入控制。 详见后面对ACL语法的详细解释。

    section: TCP Accept Channel。TCP接收通道(TCP Accept Channel)是gmond节点创建向gmetad或其他外部轮询器汇报集群状态的通道。用户可以配置任意多选项。默认TCP接收通道为:
    tcp_accept_channel {
      port = 8649
    }

    bind(IP;可选)

    当指定该选项时,gmond将捆绑到指定的本地地址。

    port(数字)

    gmong接收连接的端口号。

    family(inet4|inet6;可选;多播或单播)

    默认IP版本为inet4。如果用户想要将该端口绑定到inet6端口,请指定family属性为inet6。Ganglia不允许IPv6=>IPv4的映射(出于便捷性和安全性考虑)。如果用户想同时对一个特殊端口进行inet4和inet6侦听,请为该端口定义两个分离的接收通道。

    interface(文本格式;可选)

    当指定该选项时,gmond将侦听指定接口(例如eth0)数据。

    acl(ACL定义;可选;多播或单播)

    通过指定接入控制列表(ACL)可以对接收通道进行精细地接入控制。

    Access control。udp_recv_channel指令和tcp_accept_channel指令可以包含一个接入控制列表(ACL)。该列表允许用户指定gmond接收或拒绝连接的地址和地址范围。下面是ACL的一个示例:
    acl {
         default = "deny"
         access {
           ip = 192.168.0.0
           mask = 24
           action = "allow"
         }
         access {
           ip = ::ff:1.2.3.0
           mask = 120
           action = "deny"
         }
     }

    对接入控制概念稍有认识的人都应该能够读懂该语法。default属性为整个ACL定义了默认方式。任意的access块可以指定列表主机或IP地址,以及这些地址的相应allow或deny行为。mask属性以CIDR记法定义了子网掩码,允许用户指定地址范围,而非一个个的具体地址。注意,当ACL冲突时,以第一个匹配项为准。

    optional section: sFlow。sFlow是用于监测高速路由网络的工业标准技术。sFlow聚合器最初定位为嵌入式网络硬件,现在服务于通用操作系统和诸如Tomcat、memcached和Apache Web Server等流行应用。gmond可以通过配置来充当网络中sFlow代理的聚合器,收集sFlow代理的数据并实现对gmetad的透明传输。第8章将提供更多关于sFlow互操作性的信息。整个sFlow section是可选的。下面是sFlow的默认配置:
    #sflow {
     # udp_port = 6343
     # accept_vm_metrics = yes
     # accept_jvm_metrics = yes
     # multiple_jvm_instances = no
     # accept_http_metrics = yes
     # multiple_http_instances = no
     # accept_memcache_metrics = yes
     # multiple_memcache_instances = no
     #}

    udp_port(数字;可选)

    gmond接收sFlow数据的端口。

    其他剩余配置参数用来处理特定应用的sFlow数据类型,详见第8章。

    section: modules。该section包含了加载指标模块的必要参数。指标模块是动态可加载的共享目标文件,用于扩展gmond可收集的指标。第5章将更为详细地介绍如何使用模块来扩展gmond。

    每个modules section必须至少包含一个module subsection。module subsection由5个属性组成。默认配置包含了默认安装中所有可用模块(module),如果不添加新模块则无需更改该节。下面给出假设的模块example_module的配置示例:
    modules {
          module {
            name = "example_module"
            language = "C/C++"
            enabled = yes
            path = "modexample.so"
            params = "An extra raw parameter"
            param RandomMax {
              value = 75
            }
            param ConstantValue {
              value = 25
            }
        }
     }

    name(文本格式)

    如果模块由C/C++开发,则模块名由模块结构所决定。如果模块由诸如Python的解释型语言开发完成,则模块名与源文件名相同。

    language(文本格式,可选)

    如果未指定开发模块的源代码语言,则默认为C/C++。目前只支持C、C++和Python

    enabled(布尔类型,可选)

    通过配置文件设置模块可用或不可用。如果enabled指令不包含在模块配置中,则默认为yes。

    注意: 如果一个模块已经被禁用,但是它包含的指标仍存在于当前指标收集组的列表中时,gmond将发出警告信息,但是将忽略该指标继续正常运行。

    path(文本格式)

    指示gmond预设的加载模块路径(只支持C/C++编译的动态可加载模块)。如果path值不以正斜线开头,则该值将附加到globals section的module_path属性上。

    param(文本格式;可选)

    用来将字符串参数传送到模块初始化函数(只支持C/C++)。通过包含多个param section,可以将多个参数传送到模块初始化函数。每个param section必须命名,并包含一条value指令。

    section: collection_group。collection_group实体指定了gmond包含的指标及gmond收集和广播这些指标的周期。用户可以定义任意多的收集组,每个收集组必须包含至少一种metric section。

    这些逻辑指标分组基于相同的收集间隔。这些在gmond.conf中定义的分组并不影响用于Web接口中的分组,也不能用这种方式来指定Web接口的分组名称。节选部分默认配置如下:
    collection_group {
       collect_once = yes
       time_threshold = 1200
       metric {
         name = "cpu_num"
         title = "CPU Count"
       }
     }
     collection_group {
       collect_every = 20
       time_threshold = 90
       /* CPU status */
       metric {
         name = "cpu_user"
         value_threshold = "1.0"
         title = "CPU User"
       }
       metric {
         name = "cpu_system"
         value_threshold = "1.0"
         title = "CPU System"
       }
     }

    collect_once(布尔类型)

    有些指标“不变”,也就是说在两次重启时不变化。这些指标包括OS类型和系统CPU数量等,只在初始启动时收集一次,并将其collect_once属性设置为yes。该属性与collect_every相互排斥。

    collect_every(秒)

    该值指定了收集组的轮询间隔。在上例中,cpu_user和cpu_system指标的收集间隔是20秒。
    time_threshold(秒)

    gmond发送collection_group所指定的指标数据到所有已配置的udp_send_channels的最大时间。

    name(文本格式)

    指标收集模块定义的单个指标标准名称。每个加载模块一般定义好几种单独的指标。name可以由name_match参数替换。使用name_match可以通过单个定义来配置多个符合某个正则表达式的指标,如Perl兼容的正则表达式(pcre)的语法: name_match = “multicpu_([a-z]+)([0-9]+)”。

    注意: 通过在gmond上运行一个–m转换(switch )可以获得可用指标名列表。

    value_threshold(数字)

    每次收集到指标数据时,会将新值与上一次的数值进行比较。当二者差别大于value_threshold时,整个收集组被发送至已定义的udp_send_channels。在不同的指标模块中该值表示不同的指标单位,例如,对于CPU统计,该值代表百分比,网络统计则将该值理解为原始字节数。

    注意: 当收集组中的任意一个指标超过value_threshold时,该收集组内的所有指标将发送到UDP接收通道。

    title(文本格式)

    一种用户化的用于Web前端的指标名称





  • 相关阅读:
    【Codechef】Chef and Bike(二维多项式插值)
    USACO 完结的一些感想
    USACO 6.5 Checker Challenge
    USACO 6.5 The Clocks
    USACO 6.5 Betsy's Tour (插头dp)
    USACO 6.5 Closed Fences
    USACO 6.4 Electric Fences
    USACO 6.5 All Latin Squares
    USACO 6.4 The Primes
    USACO 6.4 Wisconsin Squares
  • 原文地址:https://www.cnblogs.com/pycode/p/9495862.html
Copyright © 2011-2022 走看看