阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ganglia快速开始向导(翻译自官方wiki)

111次阅读
没有评论

共计 7543 个字符,预计需要花费 19 分钟才能阅读完成。

把 Ganglia 官方的快速开始向导翻译了~ 水平有限,多多包涵。

快速开始向导

介绍

Ganglia 监控套件包括三个主要部分:gmond,gmetad,和网页接口,通常被称为 ganlia-web

* gmond 是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息
* 如果他是一个发送者(mute=no) 他会收集基本指标,比如系统负载(load_one),CPU 利用率。他同时也会发送用户通过添加 C /Python 模块来自定义的指标。
* 如果他是一个接收者(deaf=no)他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。
* gmetad 也是一个守护进程,他定期检查 gmonds,从那里拉取数据,并将他们的指标存储在 RRD 存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的 web 前端。
* ganglia-web 顾名思义,他应该安装在有 gmetad 运行的机器上,以便读取 RRD 文件。

集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA 等,他们都是完全分开的,你需要为每个集群运行单独的 gmond 实例。
一般来说每个集群需要一个接收的 gmond,每个网站需要一个 gmetad。

安装

最简单的方法来安装就是使用二进制包。在 Ubuntu/Debian 上,你可以用 apt-get 来安装。

apt-get install ganglia-monitor gmetad

补充:我做实验是用 CentOS,在 centos 上只需要添加 epel 和 rpmfusion 库即可使用以下命令分别安装上述三个组件

yum install ganglia-gmond
yum install ganglia-gmetad
yum install ganglia-web

防火墙规则

默认情况下 gmond 使用 UDP 协议的 8649 端口(在 udp_send_channel 和 udp_rec_channel 中被指定),gmetad 下载统计数据通过 TCP 的 8649 端口(在 tcp_accept_channel 中被指定)。
如果你的防火墙有任何的规则阻止这些端口上的通信,那么你的统计信息就不会被显示了。

单个集群配置

如果你只有少数主机需要处理,我们推荐使用单个集群,因为这是最容易启用和配置的。唯一你需要做的是决定是否要启用单播或者组播传输。
组播模式 是默认的设置,也是最简单的使用方式,并且他提供沉余。对“抖动”敏感的环境可能需要考虑启用 Ganglia 在单播模式下运行,他可以显著的减少主机间喋喋不休的交流,不过就是配置起来复杂一点。像 Amazon’s AWS EC2 产品这样的环境就是不支持组播的,所以单播是惟一可用的设置选项。

组播

如果你正在使用组播传输,那么你没必要改变任何东西,因为这是 Ganglia 包安装默认的。唯一要做的就是把 gmetad 指向一个或几个运行着 gmond 的主机。没有必要列出每一个单个主机,因为 gmond 被设置为接受模式时会包含所有主机的列表以及整个集群的统计信息。

# /etc/gmetad.conf on monhost
data_source "MyCluster" monhost

单播

要配置成为单播你应该指定一个(或者多个)接受的主机,比如我将要挑选 mon1 主机作为接收者。mon1 的 gmond.conf 应该看起来像这样。

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 /* Remove host from UI after it hasn't report for a day */
  cleanup_threshold = 300 /*secs */
  gexec = no
  send_metadata_interval = 30 /*secs */
}

cluster {
  name = "Production"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

host {location = "unspecified"}

udp_send_channel {
  host = mon1
  port = 8649
  ttl = 1
}
udp_recv_channel {port = 8649}

tcp_accept_channel {port = 8649}

在其他的所有主机上,你只需要配置这个

globals {
  daemonize = yes
  setuid = yes
  user = nobody
  debug_level = 0
  max_udp_msg_len = 1472
  mute = no
  deaf = yes
  allow_extra_data = yes
  host_dmax = 86400 /* Remove host from UI after it hasn't report for a day */
  cleanup_threshold = 300 /*secs */
  gexec = no
  send_metadata_interval = 30 /*secs */
}

cluster {
  name = "Production"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

host {location = "unspecified"}

udp_send_channel {
  host = mon1
  port = 8649
  ttl = 1
}

请注意 send_metadata_interval 被设置为 30 秒。Ganglia 的度量指标从他的元数据间隔发送得到的。元数据包含诸如度量分组,类型等等。假如你重启了接收的 gmond 主机,那么元数据就会丢失,gmond 就不知道如何处理度量数据,因此会把他们抛弃。这会导致生成空白的图表。在组播模式下,gmonds 可以和其他任意一台主机通信,在元数据丢失情况请求重新获取。但这在单播模式下是不可能的,因此你需要命令 gmond 定期的发送元数据。

现在在你的 gmetad.conf 中放置

# /etc/gmetad.conf on mon1
data_source "Production" mon1

重启所有,应该会生效了

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92747p2.htm

相关阅读

使用 Ganglia 监控 Hadoop 集群 http://www.linuxidc.com/Linux/2012-05/61349.htm

在 VMware Workstation 的 Ubuntu 下安装和配置 Hadoop 与 Ganglia http://www.linuxidc.com/Linux/2013-06/85856.htm

Ganglia 安装部署之一建立 Grid http://www.linuxidc.com/Linux/2013-05/83673.htm

Ganglia 极其简单安装教程 yum 版 http://www.linuxidc.com/Linux/2012-12/76536.htm

Hadoop 2.0 安装向导 (0.23.x) http://www.linuxidc.com/Linux/2012-05/61463.htm

多个集群配置

Ganglia 快速开始向导(翻译自官方 wiki)

就像你在上面的图表中看到的,有三个集群在同一个广播域上,我们并不需要部署三个分开的 Ganglia 网页接口和 gmetad 收集器,我们只需要在 node0.c1 节点上部署一个就可以了,他并会从三个不同的组播通道上收集统计数据。
那么在服务器上需要的组件有:
* 在每个节点上都需要 ganglia-gmond
* 在 node0.c1 上需要 ganglia- d 和 ganglia-web(假设我们指定节点 0.c1 作为 ganglia 网页接口和统计数据接收器)。

下面是配置文件的部分设置:
在集群一完全相同的 /etc/gmond.conf。我列举最重要的部分:

# /etc/gmond.conf - on ClusterOne
cluster {
  name = "ClusterOne"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

udp_send_channel {
  mcast_join = 239.2.11.71
  port = 8661
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71
  port = 8661
  bind = 239.2.11.71
}

tcp_accept_channel {port = 8661}

在集群二所有的节点都相同的 /etc/gmond.conf

# /etc/gmond.conf - on ClusterTwo
cluster {
  name = "ClusterTwo"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

udp_send_channel {
  mcast_join = 239.2.11.71
  port = 8662
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71
  port = 8662
  bind = 239.2.11.71
}

tcp_accept_channel {port = 8662}

在集群三上都相同的 /etc/gmond.conf

# /etc/gmond.conf - on ClusterThree
cluster {
  name = "ClusterThree"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

udp_send_channel {
  mcast_join = 239.2.11.71
  port = 8663
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71
  port = 8663
  bind = 239.2.11.71
}

tcp_accept_channel {port = 8663}

只存在于 node0.c1 上的 /etc/gmetad.conf(最重要的部分):

# /etc/gmetad.conf on node0.c1
data_source "ClusterOne" node0.c1:8661 node1.c1:8661
data_source "ClusterTwo" node0.c2:8662 node1.c2:8662
data_source "ClusterThree" node3.c2:8663 node1.c3:8663

注意,我们并没有列出每个集群上所有的节点作为 data sources(假如你的集群拥有数以千计的节点不就悲剧了么)。想象一下现在我们有三个不同的池,他们各种有边界。要发生的事情就是,gmetad 守护进程根据 data source 的配置访问数据,如果其中的一个节点死机了,其他的也可以提供统计数据给 gmetad,因为 gmond 节点会交换数据。
现在你要干的事情就是配置一下在 node0.c1 上的 web 服务器,开启 gmetad(默认的 RRDs 位置在 /var/lib/ganglia/rrds),并开启所有集群上的 gmond 服务。你应该会有一个为三个集群服务的正常工作的监控系统,而他只在一个服务器上。

把 Ganglia 官方的快速开始向导翻译了~ 水平有限,多多包涵。

快速开始向导

介绍

Ganglia 监控套件包括三个主要部分:gmond,gmetad,和网页接口,通常被称为 ganlia-web

* gmond 是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息
* 如果他是一个发送者(mute=no) 他会收集基本指标,比如系统负载(load_one),CPU 利用率。他同时也会发送用户通过添加 C /Python 模块来自定义的指标。
* 如果他是一个接收者(deaf=no)他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。
* gmetad 也是一个守护进程,他定期检查 gmonds,从那里拉取数据,并将他们的指标存储在 RRD 存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的 web 前端。
* ganglia-web 顾名思义,他应该安装在有 gmetad 运行的机器上,以便读取 RRD 文件。

集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA 等,他们都是完全分开的,你需要为每个集群运行单独的 gmond 实例。
一般来说每个集群需要一个接收的 gmond,每个网站需要一个 gmetad。

安装

最简单的方法来安装就是使用二进制包。在 Ubuntu/Debian 上,你可以用 apt-get 来安装。

apt-get install ganglia-monitor gmetad

补充:我做实验是用 CentOS,在 centos 上只需要添加 epel 和 rpmfusion 库即可使用以下命令分别安装上述三个组件

yum install ganglia-gmond
yum install ganglia-gmetad
yum install ganglia-web

防火墙规则

默认情况下 gmond 使用 UDP 协议的 8649 端口(在 udp_send_channel 和 udp_rec_channel 中被指定),gmetad 下载统计数据通过 TCP 的 8649 端口(在 tcp_accept_channel 中被指定)。
如果你的防火墙有任何的规则阻止这些端口上的通信,那么你的统计信息就不会被显示了。

单个集群配置

如果你只有少数主机需要处理,我们推荐使用单个集群,因为这是最容易启用和配置的。唯一你需要做的是决定是否要启用单播或者组播传输。
组播模式 是默认的设置,也是最简单的使用方式,并且他提供沉余。对“抖动”敏感的环境可能需要考虑启用 Ganglia 在单播模式下运行,他可以显著的减少主机间喋喋不休的交流,不过就是配置起来复杂一点。像 Amazon’s AWS EC2 产品这样的环境就是不支持组播的,所以单播是惟一可用的设置选项。

组播

如果你正在使用组播传输,那么你没必要改变任何东西,因为这是 Ganglia 包安装默认的。唯一要做的就是把 gmetad 指向一个或几个运行着 gmond 的主机。没有必要列出每一个单个主机,因为 gmond 被设置为接受模式时会包含所有主机的列表以及整个集群的统计信息。

# /etc/gmetad.conf on monhost
data_source "MyCluster" monhost

单播

要配置成为单播你应该指定一个(或者多个)接受的主机,比如我将要挑选 mon1 主机作为接收者。mon1 的 gmond.conf 应该看起来像这样。

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 /* Remove host from UI after it hasn't report for a day */
  cleanup_threshold = 300 /*secs */
  gexec = no
  send_metadata_interval = 30 /*secs */
}

cluster {
  name = "Production"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

host {location = "unspecified"}

udp_send_channel {
  host = mon1
  port = 8649
  ttl = 1
}
udp_recv_channel {port = 8649}

tcp_accept_channel {port = 8649}

在其他的所有主机上,你只需要配置这个

globals {
  daemonize = yes
  setuid = yes
  user = nobody
  debug_level = 0
  max_udp_msg_len = 1472
  mute = no
  deaf = yes
  allow_extra_data = yes
  host_dmax = 86400 /* Remove host from UI after it hasn't report for a day */
  cleanup_threshold = 300 /*secs */
  gexec = no
  send_metadata_interval = 30 /*secs */
}

cluster {
  name = "Production"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

host {location = "unspecified"}

udp_send_channel {
  host = mon1
  port = 8649
  ttl = 1
}

请注意 send_metadata_interval 被设置为 30 秒。Ganglia 的度量指标从他的元数据间隔发送得到的。元数据包含诸如度量分组,类型等等。假如你重启了接收的 gmond 主机,那么元数据就会丢失,gmond 就不知道如何处理度量数据,因此会把他们抛弃。这会导致生成空白的图表。在组播模式下,gmonds 可以和其他任意一台主机通信,在元数据丢失情况请求重新获取。但这在单播模式下是不可能的,因此你需要命令 gmond 定期的发送元数据。

现在在你的 gmetad.conf 中放置

# /etc/gmetad.conf on mon1
data_source "Production" mon1

重启所有,应该会生效了

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92747p2.htm

相关阅读

使用 Ganglia 监控 Hadoop 集群 http://www.linuxidc.com/Linux/2012-05/61349.htm

在 VMware Workstation 的 Ubuntu 下安装和配置 Hadoop 与 Ganglia http://www.linuxidc.com/Linux/2013-06/85856.htm

Ganglia 安装部署之一建立 Grid http://www.linuxidc.com/Linux/2013-05/83673.htm

Ganglia 极其简单安装教程 yum 版 http://www.linuxidc.com/Linux/2012-12/76536.htm

Hadoop 2.0 安装向导 (0.23.x) http://www.linuxidc.com/Linux/2012-05/61463.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计7543字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中