Ganglia image rebuild

ganglia image rebuild
feat : add env GANGLIA_HOST

主要实现目的

为了部署方便,直接通过配置环境变量GANGLIA_HOST,将部署的主机ip写入配置文件gmetad.conf和gmond.conf

目录结构

├── Dockerfile
├── gmetad.conf
├── gmond.conf
└── start.sh

DOCKERFILE

DOCKER FILE COME FROM:https://hub.docker.com/r/wookietreiber/ganglia/dockerfile

    FROM centos:centos6
    
    MAINTAINER wookietreiber
    
    # base system upgrade and system dependencies
    RUN yum upgrade -y && \
        yum install -y \
          gcc-c++ automake make \
          apr-devel expat-devel rrdtool-devel zlib-devel \
          httpd php rsync wget tar && \
        yum clean all
    
    # pcre dependency
    RUN cd /usr/src && \
        wget -q http://sourceforge.net/projects/pcre/files/pcre/8.33/pcre-8.33.tar.gz/download -O pcre-8.33.tar.gz && \
        tar xzf pcre-8.33.tar.gz && \
        cd pcre-8.33 && \
        ./configure --prefix=/usr && \
        make && make install && ldconfig && \
        rm -rf /usr/src/pcre-8.33*
    
    # confuse dependency
    RUN cd /usr/src && \
        wget -q http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz && \
        tar xzf confuse-2.7.tar.gz && \
        cd confuse-2.7 && \
        ./configure --prefix=/usr --enable-shared && \
        make && make install && ldconfig && \
        rm -rf /usr/src/confuse-2.7*
    
    # ganglia-core
    RUN cd /usr/src && \
        wget -q http://downloads.sourceforge.net/ganglia/ganglia-3.6.0.tar.gz && \
        tar xzf ganglia-3.6.0.tar.gz && \
        cd /usr/src/ganglia-3.6.0 && \
        ./configure --prefix=/usr --sysconfdir=/etc/ganglia/ --sbindir=/usr/sbin/ --with-gmetad --enable-gexec --enable-status && \
        make && make install && ldconfig && \
        rm -rf /usr/src/ganglia-3.6.0*
    
    # ganglia-web
    RUN cd /usr/src && \
        wget -q http://downloads.sourceforge.net/ganglia/ganglia-web-3.5.10.tar.gz && \
        tar xzf ganglia-web-3.5.10.tar.gz && \
        mv ganglia-web-3.5.10 /var/www/html/ganglia && \
        cd /var/www/html/ganglia && \
        make install && \
        rm -rf /usr/src/ganglia-web-3.5.10*
    
    # add the ganglia user and group
    RUN useradd -r -U -d /var/lib/ganglia -s /bin/false ganglia
    
    # create the default gmond config file, with the default gmetad cluster name
    RUN gmond -t \
        | sed 's/name = "unspecified"/name = "dc-flume"/' \
        > /etc/ganglia/gmond.conf
    
    # add the start script
    ADD start.sh start.sh
    
    copy . /etc/ganglia
    # entrypoint is the start script
    ENTRYPOINT ["bash","start.sh"]
    
    # default is with gmond for seeing something
    CMD ["--with-gmond"]

gmetad.conf

data_source "dc-flume" GANGLIA_HOST

gmond.conf (只贴出修改的部分)

cluster {
  name = "dc-flume"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
udp_send_channel {
  # mcast_join = 239.2.11.71
  port = 8649
  ttl = 1
}

udp_recv_channel {
  port = 8649
  bind = GANGLIA_HOST
  retry_bind = true
}

start.sh (只贴出新增的内容)

sed -i "s#GANGLIA_HOST#${GANGLIA_HOST}#g" /etc/ganglia/gmetad.conf
sed -i "s#GANGLIA_HOST#${GANGLIA_HOST}#g" /etc/ganglia/gmond.conf

部署

运行默认配置
docker run -p 0.0.0.0:80:80 ganglia

查看运行帮助
docker run ganglia --help

替换自己的配置文件运行
docker run -v /path/to/conf:/etc/ganglia -p 0.0.0.0:80:80 ganglia

一般最基础的运行命令如下
docker run -rm \
  -name ganglia \
  -h my.fqdn.org \
  -v /path/to/conf:/etc/ganglia \
  -v /path/to/ganglia:/var/lib/ganglia \
  -p 0.0.0.0:80:80 \
  ganglia
  --timezone Continent/City

总结

修改比较顺利,一遍就通过。

Life is more than the present.