服务器监控软件有哪些(监控平台服务器是什么东西)
一个好的安全运维平台需要将事件与IT流程相关联,一旦监控系统发现性能超标或出现宕机现象,就会触发相关事件以及事先定义好的流程,自动启动故障响应和恢复机制。还需要能够筛选出运维人员完成日常的重复性工作,提高运维效率。要实现这些功能都是常规监控软件Cacti、Zabbix所无法实现。
同时,还要求能够预测网络蠕虫威胁,在故障发生前能够报警,让运维人员把故障消除在萌芽状态,将所产生损失减到最低。总的来说运维人需要能够在一个平台中实现资产管理、分布式部署、漏洞扫描、风险评估、策略管理、实时流量监控、异常流量分析、攻击检测报警、关联分析、风险计算、安全事件告警、事件聚合、日志收集与分析、知识库、时间线分析、统一报表输出、多用户权限管理的功能,这种集成开源工具到底有没有?它去哪儿啦?
目前市面上有两种产品可满足这样的要求,目前市面上的SIEM产品主要有HPArcsight(后台挂Oracle库)、IBMSecurityQRadarSIEM和Alienvault的OSSIMUSM,现在的问题是并不缺少商业SIEM解决方案,在开源软件中OSSIM到是最佳选择。
很多人只是肤浅的认为OSSIM只是将一些开源工具集成到一个平台,在OSSIM中颠覆性创新主要在易用(容易安装、部署,容易使用,几乎不用自己写脚本)、分布式监控系统、响应威胁(OTX)、关联分析引擎、可视化攻击展示等。
Alienvault分为开源OSSIM和商业版USM两种,通过这一集成监控工具实现对用户操作规范的约束和对计算机资源进行准实时监控,包括服务器、数据库、中间件、存储备份、网络、安全、机房、业务应用等内容,通过自动监控管理平台实现故障或问题综合处理和集中管理。
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/monitconf(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、myhostmydomainro和在局域网内部(19216800/16)访问。
Monit使用pem格式的SSL证书。
之后的步骤,我会使用一个基于Red Hat的系统。在基于Debian的系统中的步骤也是类似的。
首先,在/var/cert生成一个自签名的证书(monitpem):
# mkdir /var/certs # cd /etc/pki/tls/certs # /make-dummy-cert monitpem # cp monitpem /var/certs # chmod 0400 /var/certs/monitpem
现在将下列代码片段放到Monit的主配置文件中。你可以创建一个空配置文件,或者基于自带的配置文件修改。
set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monitpem allow monituser:romania allow localhost allow 19216800/16 allow myhostmydomainro
Global Configuration: Email Notification (全局配置:邮件通知)
然后,我们来设置Monit的邮件通知。我们至少需要一个可用的SMTP服务器来让Monit发送邮件。这样就可以(按照你的实际情况修改):
邮件服务器的机器名:smtpmonitro
Monit使用的发件人:monit@monitro
邮件的收件人:guletz@monitro
邮件服务器使用的SMTP端口:587(默认是25)
有了以上信息,邮件通知就可以这样配置:
set mailserver smtpmonitro port 587 set mail-format { from: monit@monitro subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION Yours sincerely, Monit } set alert guletz@monitro
就像你看到的,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/monitpem allow monituser:romania allow localhost allow 19216800/16 allow myhostmydomainro # mail-server set mailserver smtpmonitro port 587 # email-format set mail-format { from: monit@monitro subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION Yours sincerely, Monit } set alert guletz@monitro # 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/monitconf):
# monit -t Control file syntax OK
如果monit提示任何错误,请再检查下配置文件。幸运的是,错误/警告信息是可以帮助你发现问题的,比如:
monit: Cannot stat the SSL server PEM file '/var/certs/monitpem' -- No such file or directory /etc/monit/monitrc:10: Warning: hostname did not resolve 'smtpmonitro'
一旦你确认配置文件没问题了,可以启动monit守护进程,然后等2到3分钟:
# service monit start
如果你使用的是systemd,运行:
# systemctl start monit
现在打开一个浏览器窗口,然后访问https://<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/initd/sshd
最后,我们还想检查sshd守护进程是否存活,并且在监听22端口:
check process sshd with pidfile /var/run/sshdpid start program "/etc/initd/sshd start" stop program "/etc/initd/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
我
们可以这样解释上述配置:我们检查是否存在名为sshd的进程,并且有一个保存其pid的文件存在(/var/run/sshdpid)。如果任何一个
不存在,我们就使用启动脚本重启sshd。我们检查是否有进程在监听22端口,并且使用的是SSH协议。如果没有,我们还是重启sshd。如果在最近的5
个监控周期(5x120秒)至少重启5次了,sshd就被认为是不能用的,我们就不再检查了。
Service Configuration: SMTP Service Monitoring (服务配置:SMTP服务监控)
现在我们来设置一个检查远程SMTP服务器(如192168111102)的监控。假定SMTP服务器运行着SMTP、IMAP、SSH服务。
check host MAIL with address 192168111102 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协议不正常,同样发送报警。
,仅完成安装系统、应用程序并上架后便拍拍屁股离开,远不能发挥服务器性能。服务器需要通过周期性的监控来确保硬件投资得到了预期回报--并对潜在问题提出告警,比如资源不足或硬件故障。性能监控工具可以提供大量的可用信息,但需要确保工具被正确安装与运行。本文将介绍可以帮助管理员们从系统性能监控中获得最大利益的技巧。
实现精确的性能监控
如果采集的信息存在错误,监控便毫无用处,所以确保数据的准确性是你得采取的第一步。准确性包括许多方面,如互通性、采样窗口、工具架构、虚拟化感知与校准。
互通性。在此讨论中,互通性是性能监控工具的基本功能,能够从数据中心内各种硬件与部件中访问与读取数据源。在部署了同一厂商产品线设备的同质环境内,利用集成在硬件中的内置挂钩,监控工具可以发挥极大优势。通过这些挂钩,工具可以抓取设备的详细运行信息。
在异质环境下,监控则成为了另外一种挑战,因为工具与硬件可能无法很好匹配。产商提供的工具可能可以提供一些硬件部件的特殊信息,而其他工具可能无法保障一致性。第三方性能监控工具可能无法检测每个监控器或硬件的细微差别,它们更依赖于操作系统级的数据,而这些数据通常缺乏足够的颗粒度。在某些情况下,监控数据可能丢失或失真,从而降低系统性能监控的可用性。
工具与硬件之前的数据差异需要全面测试。例如,在购买工具之前,先测试并验证兼容性,在经过较长时间的可用性验证项目后,再开始将工具由测试环境部署至生产环境中。但问题同样从开始购买延伸至未来产品升级或技术刷新周期。当你更换硬件或升级工具,你需要测试监控工具的互通性来确保性能监控工具依旧可以正常工作并提供准确数据。
采样。准确性同样依赖于收集数据用的采样窗口。当负载与运行参数可能一直处于波动状态时,数据准确性将十分重要。理想情况下,性能监控工具可以捕捉整台服务器的运行周期。技巧在于决定运行周期是怎样的。这依赖于每个负载与宿主主机是如何被使用的。例如,每台服务器的内存性能可能需要极快的采样率,而采样窗口需要跨越好几分钟。与此相反,观察某个合作HR系统的CPU使用情况可能需要已较低的频率捕捉数值,但采样窗口周期需要长达30天甚至更长。如何正确采样并没有标准答案,不同属性的操作系统同样需要通过不同的比率与窗口灵活定义。
工具架构。性能监控工具通常需要在受监控系统上安装代理或额外驱动(即使是虚拟机)。代理具有优势也有不足。首先,它们十分有用,因为代理可以收集并传输许多重要信息,比无代理的监控工具提供更多监控参数。尽管如此,代理通常被作为软件客户端,将所有数据报告给中央服务器,中央服务器将收集与处理这些数据。所以每个代理都需要占用一定的计算资源,这可能在一定程度上影响整台服务器的负载性能。
我所在环境下所有计算机拥有两个代理, Chris Steffen,Kroll Factual Data的首席技术架构师说。一个应用程序代理监控我们所有应用程序的健康状况,而且我们还有System Center [Virtual Machine Manager]代理安装在所有虚拟机宿主上。
这些年来,关于代理的负面影响一直在降低,但它们所产生的影响一直在被评估,尤其在执行关键任务或对性能要求十分苛刻的负载上。不仅如此,Steffen同样表示,新兴的监控工具可以提供更多功能,包括自动化安装,重装或维护运行环境中的代理。
虚拟化感知。
虚拟化软件把应用负载从硬件中抽象化。当传统性能监控工具试图在虚拟化环境中报告,抽象层常常发生错误结果,因为老工具是同直接监控硬件,而不是通过控制计算资源的hypervisor。考虑到虚拟化技术的人气和重要性,管理员应该选择能监控虚拟化的监控工具。这样能让性能监控同时管到物理目标和虚拟目标,管理员可以才可以收集到精确的数据。
管理员们有时候还需要采集虚拟机与承载虚拟机的宿主服务器指标,Kleyman说。这种情况下,需要在虚拟化与物理层级别进行性能监控以确保最佳负载性能并保障用户体验。
传感器校准。需要忽视传感器本身的重要性。来自网络交换机或服务器的数字信信号常都是十分准确的。但是某些传感器,例如温度,湿度,空气流或其他环境类型的传感器通常是通过模拟信号传输,可能需要经常校对并定期更换电池来保证其长期稳定的工作。
最大化性能监控工具价值
如果没有正确使用,工具是无法产生价值的。在许许多多的案例中,性能监控工具已经被部署,但是没有清晰的规划来使用与分析所收集到的海量数据。工具则变成了管理员们用来抽查或不定期故障处理的简单工具;这是一种投资浪费。
性能监控工具报告同样可以作为能力规划的基础参考,或协助完成技术刷新项目。性能指标可以帮助展示RIO[投资回报率],Kleyman说。通过了解旧系统性能,并比对新款服务器性能,我们可以决定是否将钱投资在新设备上已提升计算性能并获得更长远的利益。
但Steffen同样建议用户多留个心眼,秉着信任,但要核查的态度来对待性能监控工具,有可能某些服务器监控工具已经被验证,与其他工具相比可以获得十分准确的数值,但如果用来监控网络设备则可能出现一些异常。好的业务决策需要有优质的数据进行支撑,而且若工具无法提供准确、可验证的结果,那样将很难给业务决策提供有力支持。
lg=t
网络带宽利用率是指:带宽每秒收到、发送信息的效率。带宽分配是为了在有限的带宽内保证实时业务的传输,不至于因为业务量太大而出现网络阻塞现象。
我们访问互联网的过程中存在着两种行为:一是上传数据,二是下载数据。上行带宽指的是上传的速度,而下行带宽指的是下载数据时的速度。
云帮手通过对服务器多网卡的上行带宽和下行带宽传输情况进行实时监控,使用户可以精准了解到各网卡的运行情况,做到合理带宽分配,保证网络畅通。
远程桌面连接组件是从Windows 2000 Server开始由微软公司提供的,在WINDOWS 2000 SERVER中他不是默认安装的。该组件一经推出受到了很多用户的拥护和喜好,所以在WINDOWS XP和2003中微软公司将该组件的启用方法进行了改革,通过简单的勾选就可以完成在XP和2003下远程桌面连接功能的开启。
WINDOWS 2000 SERVER,WINDOWS XP和WINDOWS 2003,这三个系统的开启远程桌面方法各不相同,我们一一介绍。
WINDOWS2000系统中PROFESSIONAL版本是不能开启远程桌面功能让别人访问的,但SERVER版可以开启,不过需要我们安装相应的WINDOWS组件。方法如下:
第一步:通过任务栏的“开始->设置->控制面板”,选择里头的“ 添加/删除程序”。
第二步:在左边选择“添加/删除WINDOWS组件”。
第三步:稍后会出现添加删除WINDOWS组件窗口,我们从中选择“终端服务”,然后点“下一步”进行安装。这里要注意一点的是在安装过程中需要我们插入WINDOWS 2000SERVER系统光盘到光驱中。第四步:安装完毕后需要重新启动计算机,重启后就完成了在WINDOWS 2000SERVER下的远程桌面连接功能的安装工作。 正如上文提到的,WINDOWS2000引入远程桌面连接功能后受到了广大用户的好评,大家普遍认为开启该功能的方法太复杂,而且在使用时不能保证每个人都拥有WINDOWS2000SERVER光盘。因此在XP和2003系统中微软将远程桌面开启的操作进行了简化。
第一步:在桌面“我的电脑”上点鼠标右键,选择“属性”。
第二步:在弹出的系统属性窗口中选择“远程”标签。
第三步:在远程标签中找到“远程桌面”,在“容许用户连接到这台计算机”前打上对勾后确定即可完成XP下远程桌面连接功能的启用。 WINDOWS2003开启方法和XP类似,同样对操作步骤进行了简化。方法如下:
第一步:在桌面“我的电脑”上点鼠标右键,选择“属性”。
第二步:在弹出的系统属性窗口中选择“远程”标签。
第三步:在远程标签中找到“远程桌面”,在“容许用户连接到这台计算机”前打上对勾后确定即可完成2003下远程桌面连接功能的启用。 第三方软件是一种常见的服务器监控方案。
在一定程度上,国外的软件在该领域,无论是画质还是反应速度、软件体积都更加更胜一筹。首先是德国Mikogo公司开发的Mikogo免费远程桌面连接软件,该软件融合了穿透内网技术,在软件使用的同时用户无需修改防火墙设置和相关电脑属性,有效地防止了在远程桌面连接期间第三方对电脑的攻击。软件体积约为2MB,安装方便,占用电脑资源少,图画保持真彩显示,时延小,允许用户隐藏桌面信息,适合于大量共享或者进行产品展示的用户。软件还配有白板,会议录音,屏幕回放等功能,也可用来进行视频会议,但是目前该软件还不提供音频连接。
另一款国外软件就是大家熟悉的TeamViewer,这款软件与Mikogo不同,主要致力于远程控制,当然控制的前提是要电脑桌面远程连接共享,在Teamviewer启动共享和控制的时候,不需要被共享方任何安全确认,而直接可以观看到期桌面并进行操作,软件使用的同时也不需要进行防火墙的重设,简单方便。
因为国内环境问题,在国内用国外的软件在登录速度上有很大的影响。所以目前也有很多国产的服务器监控软件,如SUM服务器监控软件。主要用于对服务器和网络设备的性能的监控,比如常见的CPU,内存,流量,端口,数据库,应用程序,中间件,网站这些的监控,可以设置监控阀值,监控数据达到阀值就自动短信和邮件方式报警给服务器维护人员,同时也能短信重启服务器或者程序。这个方式跟国外软件相比,还是比较适合国内服务器运维人员的使用习惯的。相比国外,国内的短信费用比较划算,所以目前国产的同类服务器监控软件基本都采用短信报警方式。
0条评论