有什么监控Linux服务器的工具吗?

有什么监控Linux服务器的工具吗?,第1张

1、Ganglia

是一个集群监控软件,可以监视和显示集群中的节点的各种状态信息,比如:CPU、mem、硬盘利用率、I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现,此软件主要是用来监控系统性能的软件,通过曲线可以很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

它是分布式的监控系统,有两个Daemon,是一个Linux下图形化监控系统运行性能的软件,界面美观、丰富,功能强大。

RRDtool是系统存放和显示time-series (即网络带宽、温度、人数、服务器负载等) 。并且它提出有用的图表由处理数据强制执行有些数据密度。

2、Cacti

是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具,通过snmpget来获取数据,使用RRDTool绘画图形,提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结 构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。

cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。

3、Zenoss

是一款智能监控软件,允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。

Zenoss提供功能丰富的产品,以监测整个IT基础设施:

网络 -路由器,交换机,防火墙,接入点

服务器 -微软的Windows , Linux , Unix系统,惠普, NetApp,戴尔

虚拟化 -完整虚拟机虚拟化基础架构( VI3 )管理, XenSource监测

应用领域 -Process(程序),Port,网络应用服务, Web服务,数据库,中间件,商业企业应用方案

4、Argus

是一个网络连接监控器,可以利用它来定制监控网络中符合某种条件的计算机,例如网络空闲、断开等。

5、Monit

是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于UNIX平台,可以自动修复那些已经停止运行的程序,适合处理那些由于多种原因导致的软件错误。

6、Nagios

是一个监视系统运行状态和网络信息的监视系统,能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

Nagios的主要功能特点:

监视网络服务(SMTP、POP3、HTTP、NNTP、PING等)

监视主机资源(进程、磁盘等)

简单的插件设计可以轻松扩展Nagios的监视功能

服务等监视的并发处理

错误通知功能(通过email、pager或其他用户自定义的方法)。

看看下面这个脚本(注意要用英文的标点符号):

#!/bin/bash

partion_list=( 'df -h | awk ‘NF>3&&NR>1{sub(/%/,””,$(NF-1))print $NF,$(NF-1)}’' )

critical=90

notification_email()

{

emailuser='user@qq.com' “发送邮件地址”

emailpasswd='password'“成功开启POP3/SMTP服务,在第三方客户端登录时,密码框请输入的授权码”

emailsmtp='smtp.qq.com'

sendto='user2@qq.com' “接收邮箱地址”

title='Disk Space Alarm' “邮件标题”

/usr/local/bin/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd -m $emailmessage

}

crit_info=””

for (( i=0i<${#partition_list[@]}i+=2 ))

do

if [ “${partition_list[ ((i+1)) ]}” -lt “$critical” ]then

echo “ok! ${partition_list[i]} used ${partition_list[ ((i+1)) ]}%”

else

if [ “${partition_list[ ((i+1)) ]}” -gt “$critical” ]then

crit_info=$crit_info”Warning!!! ${partition_list[i]}

used ${partition_list[ ((i+1) ] }%\n”

fi

fi

done

if [ “$crit_info” != ”” ]then

echo -e $crit_info | notification_email

fi

上面脚本的功能是监控每个磁盘分区,当磁盘分区使用空间超过90%时,就通过sendEmail来发送邮件告警。sendEmail是个开源工具,可以从http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz下载;

解压后把sendEmail拷贝到/usr/local/bin下即可。

一、监控windows系统:

1、监视连接前的准备工作

1)进入被监视windows系统,开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service (开始—)运行 中输入services.msc,开启对应服务即可)。

2)在被监视的WINDOWS机器上:右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹 (要是没有自己手动加上)。

3)在安装LR的机器上,开始—》运行,输入 \\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了。(LR要连接WINDOWS机器进行监视要有管理员帐号和密码才行。)

问题:在执行步骤3)时,输入 \\被监视机器IP\C$,出现不能以administrator身份访问被监控系统(若采用这种方式用LR对其监控的话,会提示:“找不到网络路径”)的情况,现象就是用户名输入框是灰色的,并且默认用户是guest。

解决办法:这是安全策略的设置问题(管理工具 ->本地安全策略 ->安全选项 ->“网络访问:本地帐户的共享和安全模式”)。默认情况下,XP的访问方式是“仅来宾”的方式,如果你访问它,当然就固定为Guest来访问,而guest账户没有监控的权限,所以要把访问方式改为“经典”模式,这样就可以以administrator的身份登陆了。修改后,再次执行步骤3),输入管理员用户名和密码,就可以访问被监控机器C盘了。

若这样都不行的话(可能是其它问题引起的),那只好采取别的方法了。在服务器的机子上,通过windows自带的“性能日志和警报”下的“计数器日志”中新增加一个监控日志(管理工具—)性能—)性能日志和警报),配置好日志,也能监控服务器的cpu、memory、disk等计数器。当然,这种方法就不是用LR来监控了。

2、用LR监视windows的步骤

在controller 中,Windows Resources窗口中右击鼠标选择Add Measurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控了。

二、监控linux

1 准备工作

可以通过两种方法验证服务器上是否配置了rstatd守护程序:

①使用rup命令,它用于报告计算机的各种统计信息,其中就包括rstatd的配置信息。使用命令rup 10.130.61.203,此处10.130.61.203是要监视的linux/Unix服务器的Ip,如果该命令返回相关的统计信息。则表示已经配置并且激活了rstatd守护进程;若未返回有意义的统计信息,或者出现一条错误报告,则表示rstatd守护进程尚未被配置或有问题。

②使用find命令

#find / -name rpc.rstatd,该命令用于查找系统中是否存在rpc.rstatd文件,如果没有,说明系统没有安装rstatd守护程序。

如果服务器上没有安装rstatd程序(一般来说LINUX都没有安装),需要下载一个包才有这个服务,包名字是rpc.rstatd-4.0.1.tar.gz. 这是一个源码,需要编译,下载并安装rstatd(可以在[url]http://sourceforge.net/projects/[/url]rstatd<wbr>这个地址下载)

下载后,开始安装,安装步骤如下:

tar -xzvf rpc.rstatd-4.0.1.tar.gz

cd rpc.rstatd-4.0.1/

./configure —配置 *** 作

make —进行编译

make install —开始安装

rpc.rstatd —启动rstatd进程

2)安装完成后配置rstatd 目标守护进程xinetd,它的主配置文件是/etc/xinetd.conf,它里面内容是一些如下的基本信息:

#

# xinetd.conf

#

# Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany.

# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.

#

defaults

{

log_type = FILE /var/log/xinetd.log

log_on_success = HOST EXIT DURATION

log_on_failure = HOST ATTEMPT

#only_from = localhost

instances = 30

cps = 50 10

#

# The specification of an interface is interesting, if we are on a firewall.

# For example, if you only want to provide services from an internal

# network interface, you may specify your internal interfaces IP-Address.

#

# interface = 127.0.0.1

}

includedir /etc/xinetd.d

我们这里需要修改的是/etc/xinetd.d/下的三个conf文件 rlogin,rsh,rexec这三个配置文件,打这三个文件里的disable = yes都改成 disable = no ( disabled 用在默认的 {} 中 禁止服务)或是把# default: off都设置成 on 这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!

说明:我自己在配置时,没有disable = yes这项,我就将# default: off改为:default: on,重启后(cd /etc/init.d/ ./xinetd restart)通过netstat -an |grep 514查看,没有返回。然后,我就手动在三个文件中最后一行加入disable = no,再重启xinetd,再使用netstat -an |grep 514查看,得到tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN结果,表明rsh服务器已经启动。

只要保证Linux机器上的进程里有rstatd和xinetd这二个服务就可以用LR去监视了。

两点小的技巧:

①检查是否启动: rsh server 监听的TCP 是514。

[root@mg04 root]# netstat -an |grep 514

tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN

如果能看到514在监听说明rsh服务器已经启动。

②检查是否启动: rstatd

输入命令: rpcinfo -p

如果能看到类似如下信息:

程序 版本 协议 端口

100001 5 udp 937 rstatd

100001 4 udp 937 rstatd

100001 3 udp 937 rstatd

100001 2 udp 937 rstatd

100001 1 udp 937 rstatd

那就说明rstatd服务启动了,(当然这里也可以用ps ax代替)

③重起xinetd方法:

在suse linux如下 *** 作:

cd /etc/init.d/

./xinetd restart

看到网上有的地方说使用如下命令:

# service xinetd reload

# /sbin/service xinetd rstart

不知道是在什么系统用的。

④安装rsh,和rsh-server两个服务包方法

a. 卸载rsh

# rpm –q rsh----------查看版本号

# rpm -e 版本号---------卸载该版本。

b.安装

# rpm –ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm

⑤在启动rpc.rstatd时,会报错“Cannot register service: RPC: Unable to receive;errno = Ction refused”。

解决方法如下:

# /etc/init.d ./portmap start

# /etc/init.d ./nfs start

然后再次启动rpc.rstatd就好了。

最后,在controller中,将UNIX resources拖放到右边窗口里面,右击鼠标选择Add Measurements,添加被监控linux的IP地址,然后选择需要监控的指标就可以了。

三、监控UNIX

lr监控UNIX,UNIX先启动一rstatd服务

以下是在IBM AIX系统中启动rstatd服务的方法:

1、 使用telnet以root用户的身份登录入AIX系统

2、 在命令行提示符下输入:vi/etc/inetd.conf

3、 查找rstatd,找到

#rstatd sunrpc_udp udp wait root /usr/sbin/rpc.rstatd rstatd 100001 1-3

4、将#去掉

5、:wq保存修改结果

6、命令提示符下输入:refresh –s inetd 重新启动服务。

这样使用loadrunner就可以监视AIX系统的性能情况了。

注:在HP UNIX系统上编辑完inetd.conf后,重启inetd服务需要输入inetd -c

UNIX上也可以用rup命令查看rstatd程序是否被配置并激活

若rstatd程序已经运行,重启时,先查看进程ps -ef |grep inet,然后杀掉进程,再refresh –s inetd进行重启。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8688630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存