在OpenStack集群中安装Ganglia监控

1、Ganglia简介

Ganglia由gmond、gmetad和gweb三部分组成

gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。

gmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。

gweb(Ganglia Web)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。




2、安装Ganglia,本人OpenStack集群是Ubuntu16.04

首先,在Controller节点上安装Apache、PHP、Ganglia服务。在其它节点Compute、Storage节点上安装Gmond就可以了。Controller节点已经安装好Apache了,这里就不要再安装了。

三个节点

Controller  192.168.13.244

compute 192.168.13.243

storage 192.168.13.245


Ganglia 由两个所谓主要守护进程 gmond(Ganglia 监测守护进程)和 gmetad(Ganglia 元守护进程),一个基于 PHP 的 Web 前端和其他一些小的实用程序。


在主节点上安装ganglia-webfrontend和ganglia-monitor。在其他监视节点上,只需要安装ganglia-monitor即可,将ganglia的文件链接到apache的默认目录下


3、在Controller节点上安装

# apt install php php-gd rrdtool  ganglia-webfrontend ganglia-monitor -y 

# apt-get install ganglia-webfrontend ganglia-monitor -y

# apt-get install libapache2-mod-php7.0 php7.0-xml -y


4、复制 Ganglia webfrontend Apache 配置

 #cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf



5、因为ganglia-webfront这个包默认将Web相关的代码安装在”/usr/share/ganglia-webfrontend/”路径下,这样apache访问不到。可以使用软链接,或者直接将目录移到”/var/www/”目录下。

#ln -s /usr/share/ganglia-webfrontend /var/www/ganglia


6、编辑 Ganglia 元守护程序的配置文件

root@controller:~# vim /etc/ganglia/gmetad.conf

data_source "OpenStack" 192.168.13.244:8649 192.168.13.243:8649 192.168.13.245

列出机器服务的数据源,IP:端口或服务器名称:端口。如果未指定端口号8649(默认gmond端口)。

gridname "OpenStack"

 setuid_username "nobody"

 rrd_rootdir "/var/lib/ganglia/rrds"



7、编辑主节点的配置文件:

# vim /etc/ganglia/gmond.conf

cluster {

  name = " unspecified"

  owner = "unspecified"

  latlong = "unspecified"

  url = "unspecified"

}

修改为

cluster {

  name = "OpenStack"

  owner = "unspecified"

  latlong = "unspecified"

  url = "unspecified"

}

udp_send_channel {

  mcast_join = 239.2.11.71

  port = 8649

  ttl = 1

}

修改为

udp_send_channel {

#  mcast_join = 239.2.11.71      #注释掉

  host = 192.168.13.244            #设置为服务端IP

  port = 8649

  ttl = 1

}

udp_recv_channel {

  mcast_join = 239.2.11.71

  port = 8649

  bind = 239.2.11.71

}

修改为

udp_recv_channel {

#  mcast_join = 239.2.11.71     #注释掉

  port = 8649

#  bind = 239.2.11.71               #注释掉

}


8、启动服务

# /etc/init.d/ganglia-monitor start

Starting Ganglia Monitor Daemon: 

# /etc/init.d/gmetad start

Starting Ganglia Monitor Meta-Daemon: 

# /etc/init.d/apache2 start

[ ok ] Starting apache2 (via systemctl): apache2.service.


9、查看服务状态

# ps aux | grep ganglia

ganglia   68442  0.0  0.0 146112 62400 ?        Ssl  10:51   0:00 /usr/sbin/gmond --pid-file /var/run/gmond.pid


# ps aux | grep gmetad

nobody    74365  0.2  0.0 185024 16192 ?        Sl   10:53   0:02 /usr/sbin/gmetad --pid-file /var/run/gmetad.pid


# ps aux | grep apache2

root      68286  0.0  0.0  12864 10240 ?        Ss   10:51   0:00 /usr/sbin/apache2 -k start

www-data  68289  0.0  0.0 303360 13120 ?        Sl   10:51   0:00 /usr/sbin/apache2 -k start

www-data  68290  0.0  0.0 303360 13120 ?        Sl   10:51   0:00 /usr/sbin/apache2 -k start




10、被监控节点compute和Storage安装配置gmond

root@compute:~# apt-get install ganglia-monitor -y


配置gmod.conf,将controller节点复制过来

root@controller:~# scp /etc/ganglia/gmond.conf 192.168.13.243:/etc/ganglia/

root@controller:~# scp /etc/ganglia/gmond.conf 192.168.13.245:/etc/ganglia/


启动monitor

root@node1:~# /etc/init.d/ganglia-monitor restart

Stopping Ganglia Monitor Daemon: gmond.

Starting Ganglia Monitor Daemon: gmond.



11、登录Ganglia监控平台

http://192.168.13.244/ganglia/

在OpenStack集群中安装Ganglia监控



本文转自 OpenStack2015 51CTO博客,原文链接:http://blog.51cto.com/andyliu/1891368,如需转载请自行联系原作者

上一篇:MySQL:关于Bug #81119


下一篇:Docker 监控实战