服务器运行状态监控系统(服务器硬件状态监控)

如何监控服务器工作状态?

服务器工作状态可以通过不同方式监控。

SNMP和IPMI都是可以的。但是由于很多服务器的数据非常重要,而利用接口的方式监控有被黑客攻击的风险。

现在银行系统、金融等系统很多采用一种称之为“神鹰光眼”的方式监控服务器状态指示灯。用以向监控系统实时报告服务器的运行状态。由于其采用了最新的光纤技术,与服务器之间物理隔绝。因此系统的安全性得以保障。

监控大厅用于

监控大厅是一个用于查看服务器状态的系统,它可以帮助管理员实时监控服务器的状态,以便及时发现问题并采取措施。它可以帮助管理员更好地管理服务器,提高服务器的可用性和安全性。

监控大厅可以显示服务器的硬件信息,如CPU、内存、硬盘等,以及服务器的软件信息,如操作系统、数据库、Web服务器等。它还可以监控服务器的性能,如网络流量、磁盘I/O、内存使用率等。此外,它还可以检测服务器的安全状态,如防火墙、安全日志等。

监控大厅还可以提供预警功能,当服务器出现异常时,它可以发出警报,以提醒管理员及时处理问题。此外,它还可以提供报表功能,用于查看服务器的历史状态,以便更好地分析服务器的运行情况。

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

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或其他用户自定义的方法)。

如何使用Monit部署服务器监控系统

Monit是什么?

Monit是

一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只

有500KB大小),并且不依赖任何第三方程序、插件或者库。然而,Monit可以胜任全面监控、进程状态监控、文件系统变动监控、邮件通知和对核心服务

的自定义动作等场景。易于安装、轻量级的实现以及强大的功能,让Monit成为一个理想的后备监控工具。

已经在一些机器使用Monit几年了,而且我对它的可靠性非常满意。甚至作为全面的监控系统,对任何Linux系统管理员来说Monit也是非常有用和强

大的。在这篇教程中,我会展示如何在一个本地服务器部署Monit(作为后备监控系统)来监控常见的服务。在部署过程中,我只会展示我们用到的部分。

在Linux安装Monit

Monit已经被包含在多数Linux发行版的软件仓库中了。

Debian、Ubuntu或者Linux Mint:

$ sudo aptitude install monit

Fedora或者CentOS/RHEL:

在CentOS/RHEL中,你必须首先启用EPEL或者Repoforge软件仓库.

# yum install monit

Monit

自带一个文档完善的配置文件,其中包含了很多例子。主配置文件在/etc/monit.conf(Fedora/CentOS/RHEL

中),或者/etc/monit/monitrc(Debian/Ubuntu/Mint

中)。Monit配置文件有两部分:“Global”(全局)和“Services”(服务)。

Global Configuration: Web Status Page (全局配置:Web状态页面)

Monit可以使用邮件服务来发送通知,也可以使用HTTP/HTTPS页面来展示。我们先使用如下配置的web状态页面吧:

Monit监听1966端口。

对web状态页面的访问是通过SSL加密的。

使用monituser/romania作为用户名/口令登录。

只允许通过localhost、myhost.mydomain.ro和在局域网内部(192.168.0.0/16)访问。

Monit使用pem格式的SSL证书。

之后的步骤,我会使用一个基于Red Hat的系统。在基于Debian的系统中的步骤也是类似的。

首先,在/var/cert生成一个自签名的证书(monit.pem):

# mkdir /var/certs # cd /etc/pki/tls/certs # ./make-dummy-cert monit.pem # cp monit.pem /var/certs # chmod 0400 /var/certs/monit.pem

现在将下列代码片段放到Monit的主配置文件中。你可以创建一个空配置文件,或者基于自带的配置文件修改。

set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monit.pem allow monituser:romania allow localhost allow 192.168.0.0/16 allow myhost.mydomain.ro

Global Configuration: Email Notification (全局配置:邮件通知)

然后,我们来设置Monit的邮件通知。我们至少需要一个可用的SMTP服务器来让Monit发送邮件。这样就可以(按照你的实际情况修改):

邮件服务器的机器名:smtp.monit.ro

Monit使用的发件人:monit@monit.ro

邮件的收件人:guletz@monit.ro

邮件服务器使用的SMTP端口:587(默认是25)

有了以上信息,邮件通知就可以这样配置:

set mailserver smtp.monit.ro port 587 set mail-format { from: monit@monit.ro subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } set alert guletz@monit.ro

就像你看到的,Monit会提供几个内部变量($DATE、$EVENT、$HOST等),你可以按照你的需求自定义邮件内容。如果你想要从Monit所在机器发送邮件,就需要一个已经安装的与sendmail兼容的程序(如postfix或者ssmtp)。

Global Configuration: Monit Daemon (全局配置:Monit守护进程)

接下来就该配置Monit守护进程了。可以将其设置成这样:

在120秒后进行第一次检测。

每3分钟检测一次服务。

使用syslog来记录日志。

如下代码段可以满足上述需求。

set daemon 120 with start delay 240 set logfile syslog facility log_daemon

我们必须定义“idfile”,Monit守护进程的一个独一无二的ID文件;以及“eventqueue”,当monit的邮件因为SMTP或者网络故障发不出去,邮件会暂存在这里;以及确保/var/monit路径是存在的。然后使用下边的配置就可以了。

set idfile /var/monit/id set eventqueue basedir /var/monit

测试全局配置

现在“Global”部分就完成了。Monit配置文件看起来像这样:

# Global Section # status webpage and acl\'s set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monit.pem allow monituser:romania allow localhost allow 192.168.0.0/16 allow myhost.mydomain.ro # mail-server set mailserver smtp.monit.ro port 587 # email-format set mail-format { from: monit@monit.ro subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } set alert guletz@monit.ro # delay checks set daemon 120 with start delay 240 set logfile syslog facility log_daemon # idfile and mail queue path set idfile /var/monit/id set eventqueue basedir /var/monit

现在是时候验证我们的工作了,你可以通过运行如下命令来验证存在的配置文件(/etc/monit.conf):

# monit -t Control file syntax OK

如果monit提示任何错误,请再检查下配置文件。幸运的是,错误/警告信息是可以帮助你发现问题的,比如:

monit: Cannot stat the SSL server PEM file \'/var/certs/monit.pem\' -- No such file or directory /etc/monit/monitrc:10: Warning: hostname did not resolve \'smtp.monit.ro\'

一旦你确认配置文件没问题了,可以启动monit守护进程,然后等2到3分钟:

# service monit start

如果你使用的是systemd,运行:

# systemctl start monit

现在打开一个浏览器窗口,然后访问;monit_host:1966。将monit_host替换成Monit所在机器的机器名或者IP地址。

如果你使用的是自签名的SSL证书,你会在浏览器中看到一个警告信息。继续访问即可。

你完成登录后,就会看到这个页面。

在这个教程的其余部分,我们演示监控一个本地服务器和常见服务的方法。你会在官方wiki页面看到很多有用的例子。其中的多数是可以直接复制粘贴的!

Service Configuration: CPU/Memory Monitoring (服务配置:CPU、内存监控)

我们先来监控本地服务器的CPU、内存占用。复制如下代码段到配置文件中。

check system localhost if loadavg (1min) 10 then alert if loadavg (5min) 6 then alert if memory usage 75% then alert if cpu usage (user) 70% then alert if cpu usage (system) 60% then alert if cpu usage (wait) 75% then alert

你可以很容易理解上边的配置。最上边的check是指每个监控周期(全局配置里设置的120秒)都对本机进行下面的操作。如果满足了任何条件,monit守护进程就会使用邮件发送一条报警。

如果某个监控项不需要每个周期都检查,可以使用如下格式,它会每240秒检查一次平均负载。

if loadavg (1min) 10 for 2 cycles then alert

Service Configuration: SSH Service Monitoring (服务配置:SSH服务监控)

先检查我们的sshd是否安装在/usr/sbin/sshd:

check file sshd_bin with path /usr/sbin/sshd

我们还想检查sshd的启动脚本是否存在:

check file sshd_init with path /etc/init.d/sshd

最后,我们还想检查sshd守护进程是否存活,并且在监听22端口:

check process sshd with pidfile /var/run/sshd.pid start program \"/etc/init.d/sshd start\" stop program \"/etc/init.d/sshd stop\" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout

们可以这样解释上述配置:我们检查是否存在名为sshd的进程,并且有一个保存其pid的文件存在(/var/run/sshd.pid)。如果任何一个

不存在,我们就使用启动脚本重启sshd。我们检查是否有进程在监听22端口,并且使用的是SSH协议。如果没有,我们还是重启sshd。如果在最近的5

个监控周期(5x120秒)至少重启5次了,sshd就被认为是不能用的,我们就不再检查了。

Service Configuration: SMTP Service Monitoring (服务配置:SMTP服务监控)

现在我们来设置一个检查远程SMTP服务器(如192.168.111.102)的监控。假定SMTP服务器运行着SMTP、IMAP、SSH服务。

check host MAIL with address 192.168.111.102 if failed icmp type echo within 10 cycles then alert if failed port 25 protocol smtp then alert else if recovered then exec \"/scripts/mail-script\" if failed port 22 protocol ssh then alert if failed port 143 protocol imap then alert

们检查远程主机是否响应ICMP协议。如果我们在10个周期内没有收到ICMP回应,就发送一条报警。如果监测到25端口上的SMTP协议是异常的,就发

送一条报警。如果在一次监测失败后又监测成功了,就运行一个脚本(/scripts/mail-script)。如果检查22端口上的SSH或者143端

口上的IMAP协议不正常,同样发送报警。

未经允许不得转载:便宜VPS网 » 服务器运行状态监控系统(服务器硬件状态监控)