GangLia搭建使用

需求: 采集多个节点中的负载情况,多个节点划分为多个集群监控

ganglia的简单角色划分
   	   	ganglia-web :
                   web展示
  	    ganglia-gmetad
                  数据收集处理
       ganglib-gmond
                  数据采集发送
这里不再详细介绍:查看文末的参考博客

计划的集群分布:

node1(监控节点)
    web
    gmetad
    gmond(可以不安装,如果不用监控node1信息,这里不安装)

cluster1(只安装配置gmond)
    node2
    node3
cluster2(只安装配置gmond)
    node4
    node5
node1 部署:
			web
		    gmetad
			gmond(可以不安装,因为我不需要监node1 信息)
yum install -y ganglia-web.x86_64
yum install -y ganglia-gmetad.x86_64 
yum install -y nginx php-fpm

配置文件:
/etc/nginx/conf.d/default.conf(不存在则新建)

server {
    listen       8081 default_server;
    server_name  _;
    root         /usr/share/ganglia;
    index   index.php;
    include /etc/nginx/default.d/*.conf;
    location / {
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
        }
    error_page 404 /404.html;
        location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

端口号什么的根据自己的需要配置。

启动服务:

 service nginx start
service gmetad start 
service gmond start (未安装配置则不需要开启)

根据centos版本: 可以使用systemctl restart gmetad ...

如果是内网配置,会发现页面显示异常,f12 调试发现,有一些js需要下载。
这里看到 ganglia的web目录是 /usr/share/ganglia

此时打开
/usr/share/ganglia

grep -rn xxx.js(加载不到的js文件名) --include=*.php

尝试查找包含了需要外部下载的js,在conf_default.php 中发现这些js需要从外网下载, (下面文件为已经修改过的版本)
所以手动下载,然后改为本地路径指向。
我打开了git bash 使用

curl www.xxxx.js   > xxx.js

下载之后再传到 /usr/share/ganglia/js

#By default we'll just download Jquery, Cubism and D3 required libraries from a CDN that offers
#that for free. If that is undesirable you can override this in conf.php by putting
#downloading the asset and putting relative path or absolute paths to it e.g.
#$conf['cubism_js_path'] = "js/cubism.v1.min.js";
$conf['jquery_js_path'] = "js/jquery.min.js";
$conf['jquerymobile_js_path'] = "js/jquery.mobile.min.js";
$conf['jqueryui_js_path'] = "js/jquery-ui.min.js";
$conf['rickshaw_js_path'] = "js/rickshaw.min.js";
$conf['cubism_js_path'] = "js/cubism.v1.min.js";
$conf['d3_js_path'] = "js/d3.min.js";
$conf['protovis_js_path'] = "js/protovis.min.js";

这里的话,web显示应已经可以了。

下一步添加监控节点集群 。

首先需要在 node1 节点 配置
/etc/ganglia 目录下
gmetad.conf

这里贴一下更改的地方

data_source "cluster1"  node2  node3
data_source "cluster2"  node4:8650  node5:8650
#不填写端口号的话,默认就是 8649 。这个端口号要与后面的gmond端配置一致,多个host只会从一个host获取。获取失败,则会再找一个获取。每一个host都包含了所有的信息。

其他节点部署gmond即可

yum install ganglia-gmond.x86_64 -y
配置 /etc/ganglia 下gmond.conf

cluster1 gmond 配置 node2 node3

cluster {
  name = "cluster1"  
#这个是node1上的datasource 配置 
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
  location = "unspecified"
}
/* Feel free to specify as many udp_send_channels as you like.  Gmond
   used to only support having a single channel */
udp_send_channel {
  #bind_hostname = yes # Highly recommended, soon to be default.
                       # This option tells gmond to use a source address
                       # that resolves to the machine's hostname.  Without
                       # this, the metrics may appear to come from any
                       # interface and the DNS names associated with
                       # those IPs will be used to create the RRDs.
  mcast_join = 239.2.11.71
  port = 8649
  ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
  mcast_join = 239.2.11.71
  port = 8649
  retry_bind = true
  #Size of the UDP buffer. If you are handling lots of metrics you really
  #should bump it up to e.g. 10MB or even higher.
  #buffer = 10485760
}
/* You can specify as many tcp_accept_channels as you like to share
   an xml description of the state of the cluster */
tcp_accept_channel {
  port = 8649
  #If you want to gzip XML output
  gzip_output = no
}
cluster2 gmond 配置 node2 node3节点上(要注意一下端口号)


cluster {
  name = "cluster2"  
#这个是node1上的datasource 配置
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
  location = "unspecified"
}
/* Feel free to specify as many udp_send_channels as you like.  Gmond
   used to only support having a single channel */
udp_send_channel {
  #bind_hostname = yes # Highly recommended, soon to be default.
                       # This option tells gmond to use a source address
                       # that resolves to the machine's hostname.  Without
                       # this, the metrics may appear to come from any
                       # interface and the DNS names associated with
                       # those IPs will be used to create the RRDs.
  mcast_join = 239.2.11.71
  port = 8650
  ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
  mcast_join = 239.2.11.71
  port = 8650
  retry_bind = true
 #Size of the UDP buffer. If you are handling lots of metrics you really
 #should bump it up to e.g. 10MB or even higher.
  #buffer = 10485760
}
/* You can specify as many tcp_accept_channels as you like to share
   an xml description of the state of the cluster */
tcp_accept_channel {
  port = 8650
  #If you want to gzip XML output
  gzip_output = no
}

问题:

yum install ganglia-gmond.x86_64 -y

如果报错

"Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7"

解决:
打开epel仓库参数更改为: gpgcheck=0

参考 blog:
简单介绍 : http://blog.sina.com.cn/s/blog_eb0636d10102v3gt.html
部署: https://www.cnblogs.com/marility/p/9444357.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值