zoukankan      html  css  js  c++  java
  • ubuntu下ganglia3.7.2编译安装

    一、介绍

    ganglia主要包括gmond和gmeta

    1、gmond用于收集监测数据,可以发送也可以接收在同一个组播或单播通道上的统计信息。gmond有两个角色,一个是发送者,另一个是接收者。当mute=no时,gmond是发送者,会收集本节点上的基本指标,比如系统负载(load_one)、cpu和memory利用率等,也可以发送用户通过添加C/Python模块来自定义的指标。当deaf=no是接收者,主要用来聚合所有从别的节点上发来的指标(如flume agent发来的metrics信息),并把他们都保存在内存缓冲区中。gmond节点之间通过UDP收集数据,gmetad通过TCP从gmond节点获取数据

    2、gmeta定期检查gmond,拉取gmond上的数据,并将他们的指标存储在RRD存储引擎中。

    3、除此之外还有个web组件用于显示监控图,ganglia-web(或者ganglia-webfrontend)

    二、编译先决条件
    apt-get install make gawk gcc g++ pkg-config python-libxml2 libcogl-pango-dev libxml2-dev libxslt-dev libaprutil1-dev libpcre*
    apt-get install pkg-config -y
    apt-get install pkgconf -y
    apt-get install libapr1-dev -y
    apt-get install libconfuse-dev -y
    apt-get install expat -y
    apt-get install libexpat-dev -y
    apt-get install zlib1g-dev -y
    apt-get install librrds-perl python-dev libpcre3-dev -y
    可能不全,但也差不多
    上面的依赖包都安装之后还需要confuse和rrdtool,这两个需要编译安装,所以单独说明下
    1、安装confuse
    wget http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
    tar -zxvf confuse-2.7.tar.gz
    cd confuse-2.7
    ./configure CFLAGS=-fPIC --disable-nls --prefix=/home/hadoop/confuse-2.7
    make && make install #root用户执行


    2、安装rrdtool
    wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.6.0.tar.gz
    ./configure --prefix=/usr/local # 貌似安装到别的目录,需要将bin下的命令加到环境变量中,否则后面编译ganglia会报错
    make && make install #root用户执行


    三、依赖安装完毕,进入ganglia-3.7.2.tar.gz的解压目录中
    1、执行编译命令 
    ./configure --prefix=/usr/local/ganglia --with-gmetad --with-librrd=/usr/local/lib --sysconfdir=/etc/ganglia --enable-gexec --enable-status
    --prefix用于指定ganglia编译之后的目录,--with-gmetad包含gmeta组件,--with-librrd=/usr/local/lib包含rrd数据库,--sysconfdir=/etc/ganglia将gmeta
    和gmond的配置文件放在此目录。
    成功之后就可以执行
    2、安装
    make && make install

    四、还需要安装
    apt-get install ganglia-modules-linux ganglia-monitor ganglia-monitor-python ganglia-webfrontend libganglia1 libganglia1-dev
    要不然无法收集机器的基础属性,也不能正常显示图片(ganglia-webfrontend不安装无法正常显示图片)。


    五、安装ganglia-web
    下面来编译ganglia-web,其实下载的ganglia-web-3.7.2.tar.gz已经是编译好的,直接执行安装命令(make && make install)就行了。但是ganglia-web需要依赖
    apache作为服务器,则还需要安装依赖
    apt-get install apache2.2-bin apache2.2-common apache2 libapache2-mod-php5 php5
    这里也可以对ganglia-web的安装目录进行稍许的配置,配置在Makefile中

    主要改的配置选项如下:
    # Location where gweb should be installed to (excluding conf, dwoo dirs).
    # web页面文件,需要放在apache web文件夹里
    GDESTDIR = /usr/share/ganglia-webfrontend
    # Location where default apache configuration should be installed to.
    GCONFDIR = /etc/ganglia-web
    # Gweb statedir (where conf dir and Dwoo templates dir are stored)
    GWEB_STATEDIR = /var/lib/ganglia-web
    # Gmetad rootdir (parent location of rrd folder)
    GMETAD_ROOTDIR = /var/lib/ganglia

    上面的目录配置的有点散,可以对其进行修改,使其便于管理,修改如下:
    GDESTDIR = /var/lib/ganglia/web
    # Location where default apache configuration should be installed to.
    GCONFDIR = /var/lib/ganglia/etc/
    #GCONFDIR = /etc/ganglia-web
    # Gweb statedir (where conf dir and Dwoo templates dir are stored)
    GWEB_STATEDIR = /var/lib/ganglia
    # Gmetad rootdir (parent location of rrd folder)
    GMETAD_ROOTDIR = /var/lib/ganglia
    # 可改可不改,默认是www-data
    APACHE_USER = hadoop_portal
    之所以选择/var/lib/ganglia这个目录,是因为rrd在此目录中。如果你用的版本和我一样,可能会遇到个小bug,将GDESTDIR和GWEB_STATEDIR路径中的第一个/去掉


    六、部署
    修改两个配置文件就行,分别是gmond.conf和gmeta.conf,在目录/etc/ganglia(此路径是在编译ganglia时指定的)中。
    gmeta.conf中只需添加数据源和gmod节点就可以了

    # 说明:这里的 "flume" 表示的是集群的名称,与gmod中的cluster名字一样,后面的内容是这个集群中所包含的主机信息,也就是要监控的主机ip
    # 这里采用单播方式,则只有一个节点,并配上端口,如果不指定端口,默认是8649
    data_source "flume" 127.0.0.1:8666
    # 由于setuid默认是开启的,而setuid_username默认是nobody,可能会遇到权限问题,则改为启动用户hadoop
    setuid_username "hadoop"

    启动之前需要改下rrd所在目录的权限,改为启动gmeta的用户,命令chown -R hadoop:hadoop /var/lib/ganglia(如果rrds目录不存在,则新建/var/lib/ganglia/rrds目录)

    七、启动gmeta
    /usr/local/ganglia/sbin/gmetad start
    (/usr/local/ganglia/是在编译时由–prefix=指定的)
    然后通过ps -ef | grep gm查看是否有gmeta进程,如果没有就代表没有启动成功,
    可以使用gmetad --debug=4(或者gmeta debug=10 log message)进来debug启动

    gmond.conf文件修改
    globals {
    daemonize = yes
    setuid = yes
    # 与gmeta中setuid_username相同,启动gmond的用户
    user = hadoop
    debug_level = 0
    max_udp_msg_len = 1472
    # 发送者开关
    mute = no
    # 接收者开关
    deaf = no
    host_dmax = 0 /*secs */
    cleanup_threshold = 300 /*secs */
    gexec = no
    send_metadata_interval = 0
    }
    cluster {
    # gmeta中data_source中的cluster名字
    name = "flume"
    owner = "unspecified"
    latlong = "unspecified"
    url = "unspecified"
    }
    #发送者channel
    # 如果不用监视本节点基础指标则不用配置,并设置mute为yes
    udp_send_channel {
    # 多播方式
    /*mcast_join = 239.2.11.71 */
    host = 127.0.0.1
    port = 8666
    ttl = 1
    }
    # 接收者channel
    udp_recv_channel {
    /* mcast_join = 239.2.11.71 */
    port = 8666
    bind = 127.0.0.1
    }
    tcp_accept_channel {
    port = 8666
    }


    八、启动gmond
    /usr/local/ganglia/sbin/gmond start
    没有启动则用上面介绍的debug模式启动,查找错误原因

    九、启动ganglia-web
    只需要将GDESTDIR所指定的目录放到/var/www目录中就可以了。我在这建了个软连
    cd /var/www/html
    ln -s /usr/share/ganglia-webfrontend ganglia
    启动apache就可以访问了,apache启动命令
    service apache2 start

    十、查看显示结果
    输入127.0.0.1/ganglia就可以查看监控指标了

    十一、排错
    如果服务器在本地不能访问,可以使用telnet localhost 8651来验证下gmeta是否成功(gmeta默认是8651端口)。

    其他
    更改Apache的默认端口
    在debian系统下apache默认安装目录是/etc/apache2/
    更改默认端口需要修改两个配置文件,分别为/etc/apache2/ports.conf和/etc/apache2/sites-available/default
    更改内容如下:
    #ports.conf
    NameVirtualHost *:8001
    Listen 8001
    #default
    VirtualHost *:8001
    #ports.conf
    NameVirtualHost *:8001
    Listen 8001
    #default
    VirtualHost *:8001
    然后重启就ok了。可以使用命令netstat -lnp |grep apache查看配置是否生效。显示内容如下则表示生效
    tcp6 0 0 :::8001 :::* LISTEN 8647/apache2

    删除一个节点
    删掉rrd对应节点后,reload下gmetad

  • 相关阅读:
    OpenGL学习之路(四)
    OpenGL学习之路(三)
    ajax请求成功后新开窗口window.open()被拦截解决方法
    Mysql日志解析
    Kibana+Logstash+Elasticsearch 日志查询系统
    谈谈Redis的SETNX
    常用前端开发工具合集
    Media Queries 详解
    启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
    找不到mysql.sock,mysql.sock丢失问题解决方法
  • 原文地址:https://www.cnblogs.com/wclwcw/p/7170899.html
Copyright © 2011-2022 走看看