1、cacti
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开拓的网络流量监测图形剖析工具。
大略的说Cacti 便是一个PHP 程序。它通过利用SNMP 协议获取远端网络设备和干系信息,(实在便是利用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来。我们利用它可以展现出监控工具一段韶光内的状态或者性能趋势图。

2、nagios
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交流机路由器等网络设置,打印机等。在系统或做事状态非常时发出邮件或短信报警第一韶光关照网站运维职员,在状态规复后发出正常的邮件或短信关照。
3、zabbix
zabbix是一个基于WEB界面的供应分布式系统监视以及网络监视功能的企业级的开源办理方案。zabbix能监视各种网络参数,担保做事器系统的安全运营;并供应优柔的关照机制以让系统管理员快速定位/办理存在的各种问题。
zabbix由2部分构成,zabbixserver与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法供应对远程做事器/网络状态的监视,数据网络等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
4、ganglia
Ganglia是一款为HPC(高性能打算)集群而设计的可扩展的分布式监控系统,它可以监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的gmond守护进程来采集CPU 、内存、硬盘利用率、I/O负载、网络流量情形等方面的数据,然后汇总到gmetad守护进程下,利用rrdtool存储数据,末了将历史数据以曲线办法通过PHP页面呈现。
Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend。
5、centreon
Centreon是一款功能强大的分布式IT监控系统,它通过第三方组件可以实现对网络、操作系统和运用程序的监控:首先,它是开源的,我们可以免费利用它;其次,它的底层采取nagios作为监控软件,同时nagios通过ndoutil模块将监控到的数据定时写入数据库中,而Centreon实时从数据库读取该数据并通过Web界面展现监控数据;,末了,我们可以通过Centreon管理和配置nagios,或者说Centreon便是nagios的一个管理配置工具,通过Centreon供应的Web配置界面,可以轻松完成nagios的各种繁琐配置。
6、比拟图
二、 统一运维监控平台设计思路
构建一个智能的运维监控平台,必须以运行监控和故障报警这两个方面为重点,将所有业务系统中所涉及的网络资源、硬件资源、软件资源、数据库资源等纳入统一的运维监控平台中,并通过肃清管理软件的差别,数据采集手段的差别,对各种不同的数据来源实现统一管理、统一规范、统一处理、统一展现、统一用户登录、统一权限掌握,终极实现运维规范化、自动化、智能化的大运维管理。
智能的运维监控平台,设计架构从低到高可以分为6层,三大模块,如下图:
运维监控平台实现拓扑图,请看下图:
三、Ganglia的安装
1、ganglia的常用架构
Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend,如下图所示:
同时,Ganglia支持多种监控架构,这是由gmetad的特性决定的,gmetad可以周期性地去多个gmond节点网络数据,这便是ganglia的两层架构。同时,gmetad不但可以从gmond网络数据,也可以从其他的gmetad得到数据,这就形成了Gnaglia的三层架构。多种架构办法也表示了Ganglia作为分布式监控系统的灵巧性和扩展性。
2、yum办法安装ganglia
CentOS系统中默认的yum源并没有包含Ganglia,以是我们必须安装扩展的yum源。从下面这个地址下载Linux附加软件包(EPEL),然后安装扩展yum源:
[root@node1 ~]#wgethttp://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm[root@node1 ~]# rpm -ivhepel-release-5-4.noarch.rpm完成yum源安装,就可以直接通过yum办法安装Ganglia了。Ganglia的安装分为两个部分,分别是gmetad和gmond,gmetad安装在监控管理端,gmond安装在须要监控的客户端主机,对应的yum包名称分别为ganglia-gmetad和ganglia-gmond。下面先容通过yum办法安装Ganglia的过程。以下操作是在监控管理端进行的,首先通过yum命令查看下可用的Ganglia安装信息:[root@monitor ~]#yum list ganglia安装gmetad须要rrdtool的支持,而通过yum办法,会自动查找gmetad依赖的安装包,自动完成安装,这也是yum办法安装的上风。末了在须要监控的所有客户端主机上安装gmond做事:[root@node1 ~]# yum -y install ganglia-gmond.x86_64这样,Ganglia监控系统就安装完成了。通过yum办法安装的Ganglia默认配置文件位于/etc/ganglia中。
3、Ganglia监控管理端配置
监控管理真个配置文件是gmetad.conf,这个配置文件内容比较多,但是须要修正的配置仅有如下几个:
data_source \"大众Cluster1\"大众 cloud0cloud2gridname \公众IIVEYGrid\"大众xml_port 8651interactive_port 8652rrd_rootdir\公众/var/lib/ganglia/rrds\"大众 data_source:此参数定义了集群名字,以及集群中的节点。Cluster1便是这个集群的名称,cloud0和cloud2指明了从这两个节点网络数据,Cluster1后面指定的节点名可以是IP地址,也可以是主机名,由于采取了multicast模式,每个gmond节点都有本Cluster1集群节点所有监控数据,因此不须要把所有节点都写入data_source中。但是建议写入不低于2个,这样,在cloud0节点涌现故障的时候,gmetad会自动到cloud2节点采集数据,这样就担保了Ganglia监控系统的高可用性。上面通过data_source参数定义了一个做事器集群Cluster1,对付要监控多个运用系统的情形,还可以对不同用场的主机进行分组,定义多个做事器集群,分组办法可以通过下面的方法定义:data_source \"大众my cluster\"大众 10localhost my.machine.edu:8649 1.2.3.5:8655data_source \公众my grid\"大众 501.3.4.7:8655 grid.org:8651 grid-backup.org:8651data_source \"大众another source\"大众1.3.4.7:8655 1.3.4.8可以通过定义多个data_source来实现监控多个做事器集群,而每个做事器集群在定义集群节点的时候,可以采取主机名或IP地址等形式,也可以加端口,如果不加端口,默认端口是8649,同时可以设定采集数据的频率,如上面的“10 localhost、50 1.3.4.7:8655”等,分别表示每隔10秒钟、50秒钟采集一次数据。 gridname:此参数是定义一个网格名称。一个网格有多个做事器集群组成,每个做事器集群由“data_source”选项来定义。 xml_port:此参数定义了一个网络数据汇总的交互端口,如果不指定,默认是8651,可以通过telnet这个端口得到监控管理端网络到的客户真个所有数据。 interactive_port:此参数定义了Web端获取数据的端口,这个端口在配置Ganglia的Web监控界面时须要指定。 rrd_rootdir:此参数定义了rrd数据库的存放路径,gmetad在网络到监控数据后会将其更新到该目录下的对应的rrd数据库中。
4、Ganglia的客户端配置
Ganglia监控客户端gmond安装完成后,配置文件位于Ganglia安装路径的etc目录下,名称为gmond.conf,这个配置文件轻微繁芜,如下所示:
globals {daemonize = yes #是否后台运行,这里表示往后台的办法运行setuid = yes #是否设置运行用户,在Windows中须要设置为false user = nobody #设置运行的用户名称,必须是操作系统已经存在的用户,默认是nobodydebug_level = 0 #调试级别,默认是0,表示不输出任何日志,数字越大表示输出的日志越多max_udp_msg_len = 1472 mute = no #是否发送监控数据到其他节点,设置为no表示本节点将不再广播任何自己网络到的数据到网络上 deaf = no #是否接管其他节点发送过来的监控数据,设置为no表示本节点将不再吸收任何其他节点广播的数据包allow_extra_data = yes#是否发送扩展数据host_dmax = 0 /secs /#是否删除一个节点,0代表永久不删除,0之外的整数代表节点的不相应韶光,超过这个韶光后,Ganglia就会刷新集群节点信息进而删除此节点cleanup_threshold = 300 /secs / #gmond清理过期数据的韶光gexec = no #是否利用gexec来奉告主机是否可用,这里不启用send_metadata_interval = 0#在单播协议中,新添加的节点在多永劫光内相应一下以表示自己的存在,0代表仅在gmond启动时关照一次,单位秒}cluster {name = \"大众Cluster1\公众 #集群的名称,是区分此节点属于某个集群的标志,必须和监控做事端data_source中的某一项名称匹配owner = \"大众junfeng\"大众 #节点的拥有者,也便是节点的管理员latlong = \公众unspecified\"大众 #节点的坐标,经度、纬度等,一样平常无需指定url = \"大众unspecified\"大众 #节点的URL地址,一样平常无需指定} host { location = \公众unspecified\"大众 #节点的物理位置,一样平常无需指定 }udp_send_channel { #udp包的发送通道mcast_join = 239.2.11.71 #指定发送的多播地址,个中239.2.11.71是一个D类地址。如果利用单播模式,则要写host = host1,在单播模式下也可以配置多个udp_send_channel port = 8649 #监听端口ttl = 1}udp_recv_channel { #吸收udp包配置mcast_join = 239.2.11.71 #指定吸收的多播地址,同样也是239.2.11.71这个D类地址 port = 8649 #监听端口 bind = 239.2.11.71 #绑定地址}tcp_accept_channel { port = 8649 #通过tcp协议监听的端口,在远端可以通过连接到8649端口得到监控数据} 在一个集群内,所有客户真个配置是一样的。完成一个客户端配置后,将配置文件复制到此集群内的所有客户端主机上即可完成客户端主机的配置。
5、Ganglia web端配置
Ganglia的web监控界面是基于PHP的,因此须要安装PHP环境。
有两种办法安装Ganglia的web监控界面,一种是yum直接安装,另一种是通过源码安装。PHP环境的安装这里不做先容,大家可以在http://sourceforge.net/projects/ganglia/files/下载ganglia-web的最新版本,然后将ganglia-web程序放到Apche Web的根目录即可,这里我们下载的版本是ganglia-web-3.7.1。
配置Ganglia的Web界面比较大略,只须要修正几个php文件即可。首先是conf_default.php,可以将conf_default.php重命名为conf.php,也可以保持不变,Ganglia的Web默认先找conf.php,找不到会连续找conf_default.php,须要修正的内容如下:
$conf['gweb_confdir'] = \"大众/var/www/html/ganglia\"大众; #ganglia web的根目录$conf['gmetad_root'] = \"大众/opt/app/ganglia\公众; # ganglia程序安装目录$conf['rrds'] = \公众${conf['gmetad_root']}/rrds\"大众; #gangliaweb读取rrd数据库的路径,这里是/opt/app/ganglia/rrds$conf['dwoo_compiled_dir'] =\公众${conf['gweb_confdir']}/dwoo/compiled\公众; #须要“777”权限$conf['dwoo_cache_dir'] =\公众${conf['gweb_confdir']}/dwoo/cache\公众; #须要“777”权限$conf['rrdtool'] =\公众/opt/rrdtool/bin/rrdtool\"大众; #指定rrdtool的路径$conf['graphdir']= $conf['gweb_root'] .'/graph.d'; #天生图形模板目录$conf['ganglia_ip'] =\"大众127.0.0.1\"大众; #gmetad做事所在做事器的地址$conf['ganglia_port'] = 8652; #gmetad做事器的交互式供应监控数据端口发布 这里须要解释的是:“$conf['dwoo_compiled_dir']”和“$conf['dwoo_cache_dir']”指定的路径在默认情形下可能不存在,因此须要手动建立compiled和cache目录,并付与Linux下“777”的权限。其余,rrd数据库的存储目录/opt/app/ganglia/rrds一定要担保rrdtool可写,因此须要实行授权命令: Chown–R nobody:nobody /opt/app/ganglia/rrds 这样rrdtool才能正常读取rrd数据库,进而将数据通过Web界面展示出来。实在ganglia-web的配置还是比较大略的,一旦配置出错会给出提示,根据缺点提示进行问题排查,一样平常都能找到办理方法。
四、扩展Ganglia监控功能
1、通过gmetric接口扩展Ganglia监控
gmetric是Ganglia的一个命令行工具它可以将数据直接发送到卖力网络数据的gmond节点,或者广播给所有gmond节点。
在Ganglia安装完成后,会在bin目录下天生gmetric命令。下面通过一个实例先容一下gmetric的利用方法:
[root@cloud1 ~]#/opt/app/ganglia/bin/gmetric\>-n disk_used -v 40 -t int32 -u '% test'-d 50 -S '8.8.8.8:cloud1'个中: -n,表示要监控的指标名。 -v,表示写入的监控指标值。 -t,表示写入监控数据的类型。 -u,表示监控数据的单位。 -d,表示监控指标的存活韶光。 -c,用于指定ganglia配置文件的位置。 -S,表示伪装客户端信息,8.8.8.8代表伪装的客户端地址,cloud1代表被监控主机的主机名。