设为首页 收藏本站
查看: 2459|回复: 1

Nagios插件化之ganglia插件

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-1 08:48:53 | 显示全部楼层 |阅读模式
架构:  nagios跟ganglia一样可以都是监控软件,但是两个也有不同之处,Ganglia的优势在于实时对监控集群中的机器的各项指标,比如CPU、内存、磁盘、温度等数据,汇总成各种图形化界面,并提供可调用数据。而在出现问题的时候报警提示功能,相对较弱。
Nagios的优势在于出现问题之时可以提供强大的报警提示功能,但是在时间监控上,功能比较弱,即使使用NRPE插件也不足以提供强大的机器监控,所以此处将两者结合起来。实现监控、报警功能。
环境介绍:
1.服务器中已经安装好了Ganglia,安装过程参考:http://www.iyunv.com/thread-184682-1-1.html

2.服务器中已经安装好了Nagios,安装过程详见:http://www.iyunv.com/thread-184683-1-1.html
安装思路:
通过Nagios调用Ganglia的接口,获取整个服务器的监控指标。如果超过设定的指标,则予以报警。
安装过程:

1.Ganglia与naios的结合
1
2
3
# 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监控数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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



spacer.jpg

3.增加检测ganglia的命令
1
2
3
4
5
6
# 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模板
1
2
3
4
5
6
7
8
# 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.定义主机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[iyunv@cjx 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.定义服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[iyunv@cjx 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主配置文件里面
1
2
3
4
[iyunv@cjx objects]# cd ..
# vim /etc/nagios/nagios.cfg
cfg_file=/etc/nagios/objects/hosts.cfg
cfg_file=/etc/nagios/objects/service.cfg



7.验证配置正确性
1
# /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg



8.重启nagios服务
1
# service nagios restart



9.打开nagios-web页面可以看到相关信息
QQ截图20160301084830.png
QQ截图20160301084839.png
        这个时候就静静的看着web页面吧。

运维网声明 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-184686-1-1.html 上篇帖子: nagios的安装搭建以及添加监控主机 下篇帖子: Nagios无法登录Internal Server Error
累计签到:17 天
连续签到:1 天
发表于 2016-5-17 16:45:02 | 显示全部楼层
python check_ganglia.py -h wgcl -m load_one -w 10 -c 100
CHECKGANGLIA UNKNOWN: Error while getting value "Host/value not found"
wgcl 是我自定义的组名  
  这个具体该怎么弄啊      请联系:312968869   谢谢了

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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