實戰ganglia分佈式的監控系統(2)——集成nagios報告Ganglia指標

本次實驗緊接上次實驗,ganglia節點須要開啓,且已經安裝Nagios,Nagios安裝可參考我前面關於nagios的博客:實戰Nagios網絡監控(1)——監控本機運行狀態和Mysq主機html

注:ganglia與nagios能夠部署在不一樣的主機linux


主機nagios狀態以下:ios

wKioL1gSp9KAHjdHAAKfKFi_oNU988.png

主機ganglia狀態以下:vim


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上的資源。ide


1.ganglia配置ui

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

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

[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_p_w_picpath              switch.gif

        statusmap_p_w_picpath         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

相關文章
相關標籤/搜索