设为首页 收藏本站
查看: 924|回复: 0

ganglia运维监控解决方案及与nagios监控整合

[复制链接]

尚未签到

发表于 2019-1-14 06:35:38 | 显示全部楼层 |阅读模式
Ganglia UC Berkeley发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为gmond的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得Ganglia 可以实现良好的扩展。gmond带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。
  所有这些数据收集会多次影响节点性能。网络中的
“抖动(Jitter)”
发生在大量小消息同时出现时。我们发现通过将节点时钟保持一致,就可以避免这个问题。
  

  
RRDTool 表示:轮循数据库工具(Round
Robin Database Tool)。它是由Tobias Oetiker创建的,并且为许多高性能监视工具提供了引擎。Ganglia是其中之一,但是Cacti 和Zenoss 是另外两个。

  要安装 Ganglia,首先需要让RRDTool 运行在监视服务器上。RRDTool将提供其他程序使用的两个非常优秀的功能:

  •   它将在轮循数据库中存储数据。随着捕捉的数据变得越来越旧,解析的精确性将变得越来越低。这将占用很少的内存并且在大多数情况下仍然有用。
      

  •   它可以通过使用命令行实参根据捕捉的数据生成图形。
  


工作原理图



  Ganglia的核心包含gmetad、gmond以及一个Web前端。主要是用来监控系统性能,如:cpu、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
  

  gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。
  每台计算机都运行一个收集和发送度量数据的名为gmond(带来的系统负载非常少)的守护进程。
  由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端。
  



  安装软件包依赖性
  yum install -y libart_lgpl_devel gcc gcc-c++ python-devel
pcre-devel expat-devel rrdtool-devel apr-devel rpm-build
  

  rpm -ivh libconfuse-2.6-3.el6.x86_64.rpm
libconfuse-devel-2.6-3.el6.x86_64.rpm
rpmbuild -tb ganglia-3.3.7.tar.gz
cd /root/rpmbuild/RPMS/x86_64           //放有ganglia源码包rpmbuild的包5个
ganglia-devel-3.6.0-1.x86_64.rpm
ganglia-gmetad-3.6.0-1.x86_64.rpm
ganglia-gmond-3.6.0-1.x86_64.rpm
ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm
libganglia-3.6.0-1.x86_64.rpm  

  rpm -ivh *
vi /etc/ganglia/gmond.conf
cluster {
name = "my cluster"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}  

  service gmetad start
  service gmond start
  

  rpmbuild -tb ganglia-web-3.4.2.tar.gz
  cd /root/rpmbuild/RPMS/noarch
  ganglia-web-3.5.10-1.noarch.rpm
  yum localinstall ganglia-web-3.5.10-1.noarch.rpm
(默认安装路径是/var/www/html/ganglia)
  

  /etc/init.d/httpd restart     
//现在就可以用打开ganglia-web(http://ip/ganglia)查看本机检测信息
  此时本机是server+client,若想再监测其他主机,须在其上安装以下包:
  ganglia-gmond-3.6.0-1.x86_64.rpm
  ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm
  libganglia-3.6.0-1.x86_64.rpm
  libconfuse-2.6-3.el6.x86_64.rpm
  vi /etc/ganglia/gmond.conf         //和上边修改一样
  /etc/init.d/gmond start
  

  现在可以重新启动 gmetad,刷新Web 浏览器,然后应当会看到节点现在出现在列表中
  进入/var/lib/ganglia/rrds目录,可以看到每个主机的度量指标,生成了易于查看的图形.
  


  -------------------------------------------------------------
  

  ganglia+nagios整合:

  Ganglia 和Nagios,这是两个用于监视数据中心的工具。这两个工具被大量用于高性能计算(HPC)环境中,但是它们对于其他环境也具有很大的吸引力(例如云、呈
现集群和托管中心)。此外,两者对监视的定义也采取了不同的侧重点。Ganglia更多地与收集度量数据并随时跟踪这些数据有关,而Nagios 一直致力于成为一种报警机制。

  

  tar zxf ganglia-3.6.0.tar.gz
  cd ganglia-3.6.0/contrib
  ./check_ganglia.py -h ip -m disk_free -w 20 -c 10
//-h后根检测主机的ip或hostname,-m后跟要监测的对象,-w、-c指定警告和紧急的阀值
  

  cp /ganglia-3.1.7/contrib/check_ganglia.py
/usr/local/nagios/libexec 注:ganglia与nagios可以部署在不同的主机
vi /usr/local/nagios/libexec/check_ganglia.py   //注意此处格式要求严格
if critical > warning:
  if value >= critical:
    print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric,value)
    sys.exit(2)
  elif value >= warning:
    print "CHECKGANGLIA WARNING: %s is %.2f" % (metric,value)
    sys.exit(1)
  else:
    print "CHECKGANGLIA OK: %s is %.2f" % (metric,value)
    sys.exit(0)
else:
  if critical >= value:
    print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric,value)
    sys.exit(2)
  elif warning >= value:
    print "CHECKGANGLIA WARNING: %s is %.2f" % (metric,value)
    sys.exit(1)
  else:
    print "CHECKGANGLIA OK: %s is %.2f" % (metric,value)
    sys.exit(0)  

  chown nagios.nagios check_ganglia.py
  

  配置nagios:
  vi /usr/local/nagios/etc/objects/commands.cfg
  define command {
  command_name check_ganglia
  command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w
$ARG2$ -c $ARG3$
  }
  

  vi /usr/local/nagios/etc/objects/templates.cfg
  define service {
  use generic-service
  name ganglia-service
  hostgroup_name ganglia-servers
  service_groups ganglia-metrics
  }
  

  vi /usr/local/nagios/etc/objects/hosts.cfg
  define host {
  use linux-server
  host_name ty2.org
  address   192.168.0.21
  }
  define hostgroup {
  hostgroup_name ganglia-servers
  alias ganglia-servers
  members ty2.org                 //hostgroup中的members必须要有host定义匹配
  }
  

  vi services.cfg
  define service{
  use                      ganglia-service
  service_description      根分区
  check_command           
check_ganglia!disk_free_percent_rootfs!20!10
  }
  

  define service{
  use                      ganglia-service
  service_description      系统负载
  check_command            check_ganglia!load_one!4!5
  }
  

  define service{
  use                      ganglia-service
  service_description      内存空闲
  check_command            check_ganglia!mem_free!50000!30000
  }
  

  define servicegroup {
  servicegroup_name ganglia-metrics
  alias Ganglia Metrics
  }
  

  /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  /etc/init.d/nagios reload
  监控成功,nagios下就可以看见ganglia监测主机的信息
  








运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-662898-1-1.html 上篇帖子: nagios 报警统计 下篇帖子: 搭建Nagios监控平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表