实战ganglia分布式的监控系统(2)——集成nagios报告Ganglia指标

简介:

本次实验紧接上次实验,ganglia节点需要开启,且已经安装Nagios,Nagios安装可参考我前面关于nagios的博客:实战Nagios网络监控(1)——监控本机运行状态和Mysq主机

注:ganglia与nagios可以部署在不同的主机


主机nagios状态如下:

wKioL1gSp9KAHjdHAAKfKFi_oNU988.png

主机ganglia状态如下:


server1

wKioL1gSqk7iFdV3AAEd9BZdVhA356.png

server2

wKioL1gSqnKTTPl0AAERibGH19U241.png



        nagios监控远程主机的方式为nagios+nrpe,而ganglia可以使用客户端daemon(Ganglia Monitoring Daemon(gmond))监控远程主机,本次实验为server1上只装有nagios,server1和server2上没有装nrpe服务,服务端server1无法获取server2的主机资源。添加ganglia服务,ganglia集群资源中有server1和server2服务。利用server1上的nagios集成ganglia服务从而让server1上的nagios监控远程主机server2上的资源。


1.ganglia配置

[root@server1 html]# cp /root/ganglia-3.4.0/contrib/check_ganglia.py   /usr/local/nagios/libexec/

[root@server1 html]# cd /usr/local/nagios/libexec/

[root@server1 libexec]# chown nagios.nagios check_ganglia.py 

    注:check_ganglia.py 命令仅在阈值过高时发出警告。如果希望在阈值过低时发出警告(在disk_free 中是这样),则需要修改代码。我更改了文件的最后部分,如下所示:

[root@server1 libexec]# vim check_ganglia.py 


89 if critical > warning:

 90   if value >= critical:

 91     print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)

 92     sys.exit(2)

 93   elif value >= warning:

 94     print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)

 95     sys.exit(1)

 96   else:

 97     print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)

 98     sys.exit(0)

 99 else:

100   if critical > value:

101     print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)

102     sys.exit(2)

103   elif warning >= value:

104     print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)

105     sys.exit(1)

106   else:

107     print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)

108     sys.exit(0)


[root@server1 libexec]# /usr/local/nagios/libexec/check_ganglia.py -h server2.example.com -m disk_free -w 20 -c 10

CHECKGANGLIA CRITICAL: disk_free is 6.36


2.nagios配置

[root@server1 ~]# cd /usr/local/nagios/etc/objects/

[root@server1 objects]# vim commands.cfg 

添加如下内容:

# 'check_ganglia' command definition

                    define command {

                            command_name check_ganglia

                            command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w                              $ARG2$ -c $ARG3$

                    }

[root@server1 objects]# vim templates.cfg 

添加如下内容:

define service {

use generic-service

name ganglia-service

hostgroup_name ganglia-servers

service_groups ganglia-metrics

}

[root@server1 objects]# vim hosts.cfg

添加如下内容:

define host{

        use                     linux-server       

        host_name               server2.example.com

        alias                   server2

        address                 172.25.254.2

        icon_image              switch.gif

        statusmap_image         switch.gd2

        2d_coords               400,100

        3d_coords               400,200,100

        }


define hostgroup {

        hostgroup_name ganglia-servers

        alias ganglia-servers

        members server2.example.com

}

[root@server1 objects]# vim services.cfg 

添加如下内容:

define servicegroup {

        servicegroup_name       ganglia-metrics

        alias                   Ganglia Metrics

}


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

}

[root@server1 objects]# /etc/init.d/nagios restart


浏览器端刷新查看,servre2端的资源被监控:


wKiom1gSrNmx9bM-AAHWREVYg-g491.png


等一段时间,状态都变成了OK:



wKioL1gSrZSRqigmAAGxd3yq6O4346.png



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

相关文章
|
29天前
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
48 3
|
3天前
|
存储 监控 Java
一文看懂分布式链路监控系统
本文通过阿里的Eagleeye(鹰眼)和开源的Skywalking,从数据模型、数据埋点以及数据存储三个方面介绍分布式链路监控系统的实现细节,其中将重点介绍Skywalking字节码增强的实现方案。
|
7天前
|
Prometheus 监控 Cloud Native
Golang深入浅出之-Go语言中的分布式追踪与监控系统集成
【5月更文挑战第4天】本文探讨了Go语言中分布式追踪与监控的重要性,包括追踪的三个核心组件和监控系统集成。常见问题有追踪数据丢失、性能开销和监控指标不当。解决策略涉及使用OpenTracing或OpenTelemetry协议、采样策略以及聚焦关键指标。文中提供了OpenTelemetry和Prometheus的Go代码示例,强调全面可观测性对微服务架构的意义,并提示选择合适工具和策略以确保系统稳定高效。
33 5
|
9天前
|
监控 NoSQL 算法
探秘Redis分布式锁:实战与注意事项
本文介绍了Redis分区容错中的分布式锁概念,包括利用Watch实现乐观锁和使用setnx防止库存超卖。乐观锁通过Watch命令监控键值变化,在事务中执行修改,若键值被改变则事务失败。Java代码示例展示了具体实现。setnx命令用于库存操作,确保无超卖,通过设置锁并检查库存来更新。文章还讨论了分布式锁存在的问题,如客户端阻塞、时钟漂移和单点故障,并提出了RedLock算法来提高可靠性。Redisson作为生产环境的分布式锁实现,提供了可重入锁、读写锁等高级功能。最后,文章对比了Redis、Zookeeper和etcd的分布式锁特性。
111 16
探秘Redis分布式锁:实战与注意事项
|
2月前
|
缓存 应用服务中间件 数据库
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
42 1
|
2月前
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
45 0
|
2月前
|
缓存 监控 负载均衡
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
35 2
|
2月前
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据更新场景策略和方案分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据更新场景策略和方案分析)
14 0
|
2月前
|
存储 缓存 安全
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(存穿透、缓存击穿和缓存雪崩)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(存穿透、缓存击穿和缓存雪崩)
51 1
|
14天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
该文是一系列关于从零开始手写实现 Apache Tomcat 的教程概述。作者希望通过亲自动手实践理解 Tomcat 的核心机制。文章讨论了 Spring Boot 如何实现直接通过 `main` 方法启动,Spring 与 Tomcat 容器的集成方式,以及两者生命周期的同步原理。文中还提出了实现 Tomcat 的启发,强调在设计启动流程时确保资源的正确加载和初始化。最后提到了一个名为 mini-cat(嗅虎)的简易 Tomcat 实现项目,开源于 [GitHub](https://github.com/houbb/minicat)。