Nagios插件化之ganglia插件

架构:

nagios跟ganglia一样可以都是监控软件,但是两个也有不同之处,Ganglia的优势在于实时对监控集群中的机器的各项指标,比如CPU、内存、磁盘、温度等数据,汇总成各种图形化界面,并提供可调用数据。而在出现问题的时候报警提示功能,相对较弱。

Nagios的优势在于出现问题之时可以提供强大的报警提示功能,但是在时间监控上,功能比较弱,即使使用NRPE插件也不足以提供强大的机器监控,所以此处将两者结合起来。实现监控、报警功能。

环境介绍:

1.服务器中已经安装好了Ganglia,安装过程参考:http://9480860.blog.51cto.com/9470860/1746122

2.服务器中已经安装好了Nagios,安装过程详见:http://9480860.blog.51cto.com/9470860/1746124

安装思路:

通过Nagios调用Ganglia的接口,获取整个服务器的监控指标。如果超过设定的指标,则予以报警。

安装过程:

1.Ganglia与naios的结合

# cp ganglia-3.6.0/contrib/check_ganglia.py  /usr/local/nagios/libexec/
# chown nagios.nagios check_ganglia.py 
# /usr/local/nagios/libexec/check_ganglia.py

2.修改gmetad配置,使其shared监控数据

# vim /usr/local/ganglia/etc/gmetad.conf 
 trusted_hosts 127.0.0.1 192.168.235.138 cjx
## vim check_ganglia.py   修改报警脚本
try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ganglia_host,ganglia_port))
        parser = GParser(host, metric)
        value = parser.parse(s.makefile("r"))
        s.close()
except Exception, err:
        print "CHECKGANGLIA UNKNOWN: Error while getting value \"%s\"" % (err)
        sys.exit(3)
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) 
 //报警脚本需要特别注意格式,否则会显示错误提示
# python check_ganglia.py -h cjx -m load_one -w 10 -c 100

3.增加检测ganglia的命令

# vim /etc/nagios/objects/commands.cfg 
# ‘check_ganglia‘ command definition
define command{
        command_name    check_ganglia
        command_line    $USER1$/check_ganglia.py -h $HOSTADDRESS$ -m $ARG1$ -w $ARG2$ -c $ARG3$
        }

4.定义ganglia模板

# vim templates.cfg 
define service{
        name                            ganglia-service                 ; The name of this service template
        use                             generic-service
        hostgroup_name                  gangliaservers
        service_groups                  gangliametrics
        register                        0
        }

5.定义主机

[[email protected] objects]# vim hosts.cfg 
define host{
    use linux-server
    host_name cjx
    alias Manager
    address 127.0.0.1
    icon_image server.gif
    statusmap_image server.gd2
    2d_coords 200,300
    3d_coords 200,300,100
    }
define hostgroup{
            hostgroup_name  ganglia-servers ; The name of the hostgroup 
            alias            ganglia servers ; Long name of the group 
            members         *;
     }
~

5.定义服务

[[email protected] objects]# vim service.cfg 
define servicegroup {
#servicegroup_name ganglia-metrics
servicegroup_name gangliametrics
alias Ganglia Metrics
}
define service {
use ganglia-service
host_name cjx
hostgroup_name ganglia-servers
service_description load_one
check_command check_ganglia!load_one!4!5
}
 
define service{
host_name cjx
hostgroup_name ganglia-servers
use ganglia-service
service_description disk_free
check_command check_ganglia!disk_free!0.2!0.1
}
//定义服务时一定要定义好主机、主机组、服务组,否则会出现error、warning错误提示,且 网上不好找到答案

6.把文件路径加入到nagios主配置文件里面

[[email protected] objects]# cd ..
# vim /etc/nagios/nagios.cfg 
cfg_file=/etc/nagios/objects/hosts.cfg
cfg_file=/etc/nagios/objects/service.cfg

7.验证配置正确性

# /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg

8.重启nagios服务

# service nagios restart

9.打开nagios-web页面可以看到相关信息

这个时候就静静的看着web页面吧。

时间: 2024-08-06 11:31:17

Nagios插件化之ganglia插件的相关文章

android插件化-安装apkplug插件-04

本节我们将练习怎样安装(更新)一个插件.本文章基于v1.6.7版本进行说明,最新的方式以官网为准 可下载最新的apkplugdemo源码http://git.oschina.net/plug/apkplugDemos 一 apkplug插件 apkplug插件是一个apk文件,它与普通的android APP基本相同(开发方式),本节只讲插件安装接口而插件开发将在后面的章节详细讲解 二 apkplug 插件安装服务 apkplug内嵌一个OSGI服务,所以框架大部分接口都是通过OSGI服务发布的

Android 插件化原理解析——插件加载机制

上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务:通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制. 但是我们启动的『没有在AndroidManifet.xml中显式声明』的Activity和宿主程序存在于同一个Apk中:通常情况下,插件均以独立的文件存在甚至通过网络获取,这时候插件中的Activity能否成功启动呢? 要启动

360手机卫士插件化RePlugin今日开源

写在前面 "RePlugin将在6月底开源,这将是我们献给安卓世界最好的礼物."当我们宣布这一消息时,心中的激动,无以言表.是的,三年的"厚积",如今的"薄发",看似平凡的话,实际上却饱含了我们太多的激动.辛酸与泪. 那么今天,我们就来详细的和您聊一聊,这个从2014年中旬,正式在手机卫士上启用,并即将开源的360 RePlugin,究竟能为我们,更为您能带来什么. GitHub地址:https://github.com/Qihoo360/ReP

Android基于代理的插件化思路分析

前言 正常的App开发流程基本上是这样的:开发功能-->测试--->上线,上线后发现有大bug,紧急修复---->发新版本---->用户更新----->bug修复.从发现bug到修复bug花了很长时间.我们希望bug的修复是立马生效的,用户无感知就能自动修复bug.当然,Android端的动态修复bug已经有不少框架了,不过我们今天讲的是另一个话题:Android的插件化.Android插件化有很多好处:热插拔.静默升级.bug动态修复.代码解耦等.正是因为如此,才有越来越多

Android组件化和插件化开发

http://www.cnblogs.com/android-blogs/p/5703355.html 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发.插件化开发和组件化开发略有不用,插件化开发时将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件化的每个模块是个lib),最终

罗列几个Android插件化开发框架

携程插件化框架 ACDD插件化框架 360插件化框架 Android-Plugin-Framework DL APK动态加载框架 部分框架对比 DynamicLoadApk 迁移成本很重:需要使用『that』而不是『this』,所有activity都需要继承自proxy avtivity(proxy avtivity负责管理所有activity的生命周期). 无法启动apk内部的activity. 不支持Service和BroadcastReceiver. AndroidDynamicLoade

Android插件化框架

1.   dynamic-load-apk/DL动态加载框架 是基于代理的方式实现插件框架,对 App 的表层做了处理,通过在 Manifest 中注册代理组件,当启动插件组件时,首先启动一个代理组件,然后通过这个代理组件来构建,启动插件组件. 需要按照一定的规则来开发插件 APK,插件中的组件需要实现经过改造后的 Activity.FragmentActivity.Service 等的子类. 优点如下: 动态升级, 高效并行开发(编译速度更快) 按需加载,内存占用更低等等DynamicLoad

Android 插件化框架 DynamicLoadApk 源码解析

1. 功能介绍 1.1 简介 DynamicLoadApk 是一个开源的 Android 插件化框架. 插件化的优点包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开发(编译速度更快) (4) 按需加载,内存占用更低等等. DynamicLoadApk 提供了 3 种开发方式,让开发者在无需理解其工作原理的情况下快速的集成插件化功能. 宿主程序与插件完全独立 宿主程序开放部分接口供插件与之通信 宿主程序耦合插件的部分业务逻辑 三种开发模式都可以在 demo 中看到. 1.2 核心概念

插件化兼容性调研

一.机型兼容 对市场主流厂商的主流机型进行验证,除MI Pad没有通过验证,其他的机型都通过了验证,说明VirtualAPK基本能适应当前主流机型及主要安卓版本. 表1 机型兼容调研 编号 厂商 机型 系统版本 Android版本 DEMO验证 1 谷歌 Pixel 8.0 ? 2 小米 Mix 2 MIUI 9.1 7.1 ? 3 小米 MI Pad MIUI 9.2 4.4.4KTU84P × 4 小米 Note 5A MIUI 9.1 7.1 ? 5 华为 Nova 2s 8.0 ? 6