ganglia安装使用

吐槽、建议、解惑入口网址

ganglia

Ganglia简介

ganglia官网 监控软件对比
   Ganglia是一个可扩展的分布式监视系统,用于高性能计算系统,例如集群和网格。它利用了广泛使用的技术,例如XML用于数据表示,XDR用于紧凑,便携式数据传输以及RRDtool用于数据存储和可视化。它使用精心设计的数据结构和算法来实现非常低的每节点开销和高并发性。它已用于链接大学校园和全球范围内的集群,并且可以扩展以处理具有2000个节点的集群。

伯克利大学的开源服务器监控软件。

ganglia模块结构

ganglia 分为gmond、gmetad、gweb

Centos 安装与使用

PHP+nginx+gweb的安装与使用
Server

安装并启动gmetad:

gmetad展示收集到cpu等服务器性能数据。gmetad通过TCP拉取gmond信息

  • yum install ganglia-gmetad gmetad拉取其他集群或者服务器的rrd数据

  • 自定义设置/etc/ganglia/gmetad.conf

    1
    2
    data_source "dev" localhost   #自定义集群数据源为dev,localhost是指集群数据来自于本机
    gridname "Dev" #自定义表格为Dev

gmetad配置影响元素

  • chkconfig gmetad on centos6开启开机自动启动
  • service gmetad start 启动gmetad程序

安装并启动gweb:

两种方式安装:

  1. 第一种方式自定义编译安装(当时因为担心yum提供的不太完整,所以采用源码ganglia-web包编译安装):
  • 下载安装ganglia-web包
    • 解压ganglia-web的压缩包
    • 创建www-data的用户 useradd www-data
    • 切换至ganglia-web的解压缩包路径下执行: make install 编译安装ganglia-web
  1. 第二种方式安装:
  • yum install ganglia-web

  • /var/lib/ganglia-web/dwoo/compiled/var/lib/ganglia-web/dwoo/cache文件夹写入权限用户组,需要看php-fpm启动用户(默认为:apache)

    • chown -R apache:apache ./

安装nginx代理访问ganglia-web的应用

  1. 创建了一个nginx的 ganglia.conf,并将这个文件 include conf.d/aloha_ganglia.conf;到nginx.conf中。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ganglia.conf
    server {
    listen 80 default_server;

    access_log /data/log/nginx/access_ganglia_http.log main;
    gzip on;

    # root指向/usr/share/ganglia-webfrontend
    root /usr/share/ganglia-webfrontend;
    index index.php;

    location ~ \.php$ {
    fastcgi_pass localhost:9000;
    include fastcgi.conf;
    }
    }
  • yum install php-fpm php-fpm(FastCGI Process Manager)安装php的fastcgi进程管理包

  • chkconfig php-fpm on centos6开启开机自动启动

  • service php-fpm start 启动php-fpm

Client/Node

定义单广播地址、端口和群播的端口,定义gmetad拉取数据端口。
需要配置集群主节点、子节点。子节点负责发送数据到主节点、主节点收集子节点数据,同时开放端口共gmetab提取数据。

  • yum install ganglia-gmond 使用yum安装 ganglia-gmond

  • chkconfig gmond on centos6开启开机自动启动

  • service gmond start 启动gmond

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
cluster {
name = "dev" #指定data_source的名称,集群名称
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

udp_send_channel { #udp包的发送通道
#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
host = 192.168.0.2 # 单播地址
port = 8649 # 单播端口
ttl = 1
}


udp_recv_channel { #接收udp包配置
#mcast_join = 239.2.11.71
port = 8649 #gmond收到广播端口
#bind = 239.2.11.71
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
}

tcp_accept_channel {
port = 8649 #开放gmetad的端口,常用于集群主节点
# If you want to gzip XML output
gzip_output = no
}

send_metadata_interval 30 #改成30秒,一定要改,否则子节点数据不会提交
配置
应用 配置文件 数据文件 命令
ganglia-gmetad /etc/ganglia/gmetad.conf service gmetab start、chkconfig gmetab on
ganglia-gmond /etc/ganglia/gmond.conf service gmond start、chkconfig gmond on
ganglia-web /var/lib/ganglia-web/dwoo/compiled、/var/lib/ganglia-web/dwoo/cache、/usr/share/ganglia-webfrontend
rrdtool /var/lib/ganglia/rrds

参考资料

深入理解 Ganglia 之 Overview
nginx 配置ganglia参考
Ganglia部署实战
Ganglia Quick Start

不曾拥有,所以努力。(坚持原创技术分享,您的支持将鼓励我继续创作!)