docker image 实践之容器化 ganglia
基礎(chǔ)鏡像
單播模式下檢測(cè)效果
使用centos:6作為基礎(chǔ)鏡像,因?yàn)閏entos:7沒(méi)有使用systemd作為系統(tǒng)服務(wù)管理工具.這在后面啟動(dòng)ganglia進(jìn)程的時(shí)候會(huì)帶來(lái)很多麻煩,但是有解決方案(由dockone社區(qū)微信群大神給出的解決方案,個(gè)人并未嘗試):
使用supervisor來(lái)統(tǒng)一管理進(jìn)行
runt管理進(jìn)程
Dockerfile
FROM centos:6 MAINTAINER wlu wlu@linkernetworks.comRUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmRUN yum install -y php-common php-cli php-gb php# install ganglia server RUN yum install -y rrdtool rrdtool-devel ganglia-web ganglia-gmetad \ganglia-gmond ganglia-gmond-python httpd apr-devel zlib-devel \libconfuse-devel expat-devel pcre-devel# install ganglia client #RUN yum install -y ganglia-gmondRUN mkdir -p /var/lib/ganglia && \chown nobody:nobody /var/lib/ganglia && \chmod 777 /var/lib/gangliaADD supervisord.conf /etc/supervisord.conf RUN yum install -y python-setuptools && \easy_install supervisor && \yum clean allRUN yum install -y vim && \ln -f -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeCMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]注意:這里可以把多個(gè)指令合并以減少鏡像層數(shù).
ganglia的配置
原理圖:
ganglia可以監(jiān)控整個(gè)集群的信息.這里有兩個(gè)概念:
ganglia 中央機(jī)器...對(duì)應(yīng)gmetad進(jìn)程.對(duì)應(yīng)配置信息在/etc/ganglia/gmetad.conf(centos6下)
ganglia client...對(duì)應(yīng)gmond進(jìn)程.對(duì)應(yīng)配置信息在/etc/ganglia/gmond.conf(centos6下)
有點(diǎn)類似于master和slave的關(guān)系.
在集群中需要有一個(gè)中央機(jī)器來(lái)統(tǒng)一接收其它機(jī)器上收集到的監(jiān)控信息(也可以包括中央機(jī)器自身),在這個(gè)中央機(jī)器上運(yùn)行gmetad進(jìn)程.
在其它機(jī)器上運(yùn)行gmond進(jìn)程,用來(lái)收集機(jī)器上的監(jiān)控信息.
ganglia的兩種模式
單播模式
這種模式下client上的數(shù)據(jù)會(huì)發(fā)送給中央機(jī)器,下面看下client(即gmond)的配置(只摘取部分需要的配置項(xiàng)):
gmond.conf
...... cluster {name = "unspecified"owner = "unspecified"latlong = "unspecified"url = "unspecified" } ...... 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.71port = 8649ttl = 1 } ...... /* You can specify as many udp_recv_channels as you like as well. */ udp_recv_channel {mcast_join = 239.2.11.71port = 8649bind = 239.2.11.71retry_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 } ......cluster name,這個(gè)必須指定并且相同集群使用相同的name
udp_send_channel,因?yàn)閱尾ツJ较赂鱾€(gè)client把數(shù)據(jù)以u(píng)dp協(xié)議發(fā)給中央機(jī)器,所以需要配置中央機(jī)器的ip,配置后的結(jié)果:
這條需要注釋:#mcast_join = 239.2.11.71,ganglia默認(rèn)是多播.
注釋掉多播的配置:
note:這里注釋掉多播和綁定的ip.我還不是太明白,詳情參考這里
配置好后就可以通過(guò)service gmond start來(lái)啟動(dòng)client上的gmond進(jìn)程了.
gmetad.conf
data_source "my cluster" localhost改為
data_source "your cluster name" host_ip #host_ip指中央機(jī)器的配置配置好后就可以通過(guò)service gmetad start來(lái)啟動(dòng)中央機(jī)器上的gmetad進(jìn)程了.
多播模式
多播的特點(diǎn):
集群中的每個(gè)client把自己的數(shù)據(jù)發(fā)送給集群中的其它c(diǎn)lient
中央機(jī)器指定一個(gè)client作為數(shù)據(jù)源.
個(gè)人覺(jué)得這種方式很浪費(fèi),因?yàn)閱尾ツJ较聰?shù)據(jù)傳輸次數(shù)要少
參考連接
reference 1
reference 2
本項(xiàng)目對(duì)應(yīng)的GitHub地址
httpd訪問(wèn)控制問(wèn)題
ps
南京docker meetup已經(jīng)于2015年3月份成立,將于2016年開(kāi)始舉辦線下技術(shù)分享.誠(chéng)摯歡迎各位對(duì)docker及容器技術(shù)感興趣的同學(xué)加入Docker Nanjing meetup
總結(jié)
以上是生活随笔為你收集整理的docker image 实践之容器化 ganglia的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [cocos2d-x][apk打包][F
- 下一篇: Pascal's Triangle 2(