扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Nagios是一个运行在Linux或UNIX操作系统之上的,免费的开源网络监控系统,不仅可以监控主机,也可以监控运行在主机之上的各种服务。
Nagios,最初被叫做NetSaint,早在1999年的早些时候,就已经以一个务实产品的面貌出现了。自从那时候起,它已经被包括教育,政府,公司,以及其他非盈利组织中成千上万的系统管理员使用过。尽管人们普遍将其看作是一个纯粹的网络管理员工具,但其实Nagios也可以被拓展到终端用户身上,并使他们获益。在本文中,我就将讲述一下,我的公司是如何使用增强的Nagios来让终端用户们获益的。
具体情况
我们中等规模的K-12学校区域有个问题,就是如何通知终端用户们,有些服务中断了,以及某些系统的中断。我们的许多IT服务——比如电话,语音邮件,电子邮件,网页服务,还有远程访问——都需要一周七天,每天24小时可用的。但是,由于人力的缺乏,以及预算的短缺,我们的IT人员并没有足够的资源来提供所需要的支持水平——这一点有时候在公司里也会发生。这里就是我们如何提升自己的能力,来向我们的技术挑战者——用户基地,提供系统状态相关信息的。
解决方案
在研究了一系列的可能性之后,我们决定调整我们现存的监控系统:Nagios。通过使用一些Nagios的高级功能,比如一些简单的脚本,我们就可以提供所需的解决方案,而无需购买任何软件。我们将可以提供一个简单的网页,上面向终端用户提供一种方法,来检查是否有重要的系统上线,或者断线了。这样就可以大大减少我们的IT人员所接听的,毫无必要的技术支持电话的数量。
如何进行
首先,要想使用此方法,我将假设你:
* 已经安装并且打开了Nagios。
* 你对Windows Server,Linux,以及Nagios的了解,能达到一个网络管理员的程度。
* 你公司的“桌面帮助/支持”网站被安装在另一台运行Linux+Apache的服务器上,而不是Nagios所在的服务器上。
步骤一:建立FTP
这里是建立FTP的步骤:
* 在提供“桌面帮助/支持”网站的服务器上建立一个目录,并允许FTP访问它。
* 根据登录或者IP地址,对该目录设定访问权限(仅需要访问Nagios服务器)
* 允许在该目录内进行创建/删除的权限
步骤二:配置Nagios
目的就是让Nagios来发送状态更新的文件到步骤一中所建立的FTP目录之中。要做到这一点,可以通过Nagios外部命令来进行。
1. 在libexec目录中建立目录eventhandlers。例如: /usr/local/nagios/libexec/eventhanlders
2. 创建简单的HTML文件,并放在上述的目录之中。
2.1 建立一个叫做“server1-online.htm”的HTMl文件,并将背景色设为绿色,文本则显示为“ONLINE(在线)”。
2.2 建立一个叫做“server1-offline.htm”的HTMl文件,并将背景色设为红色,文本则显示为“OFFLINE(断线)”。
3. 为FTP文件的更新进程,建立两个事件处理脚本,并将这些脚本放到上述目录之中。
3.1 示例脚本文件hdss_eh:
#!/bin/sh
# Primary Event Handler processing file
# This file calls the actual processing file
/usr/local/nagios/libexec/eventhandlers/hdss_eh2 $1 $2 $3 $4
3.2 至于示例脚本hdss_eh2,你可以在Nagios的文档网站上找到:http://nagios.sourceforge.net/docs/2_0/eventhandlers.html
4. 将事件处理器脚本赋予要监控的主机
5. 在misccommands.cfg文件中,添加下述各行:
# 'check_hdss_eh' command definition
define command{
command_name check_hdss_eh
command_line /usr/local/nagios/libexec/eventhandlers/hdss_eh $HOSTSTATE$ $STATETYPE$ $HOSTATTEMPT$ $HOSTNAME$
}
6. 将事件处理器脚本赋予要监控的主机.在hosts.cfg中主机入口添加下述各行:
event_handler check_hdss_eh
步骤三:建立帮助桌面网站的状态页
1. 在“帮助桌面/支持”网站中建立一个HTML页面,并做好连接。
2. 在该页面上,使用iframe或者其他方式,在一个小帧之中(或者表格内)显示server1-online.htm文件。
3. 设定该页面(如果使用了iframe,则设定每一个帧)每隔一定时间就更新一次,比如每10秒更新一次。
步骤四:测试并了解逻辑
现在你需要测试/调试整个进程,以查看其是否工作正常。在这么做之前,务必确保下述事项:
* 主机改变状态 (在线变成离线,离线变成在线)
* 主机的配置通知Nagios执行一个外部命令
* 外部命令确定系统是在线或是离线。
* 如果系统在线,则通过FTP发送server1-online.htm文件到帮助桌面网站的目录中。
* 如果系统离线,则通过FTP发送server1-offline.htm文件到帮助桌面网站的目录中。
* 在帮助桌面网站上的该“状态”页面会不断更新,从而显示出系统是在线或者是离线了。
结果
结果就是一个易于访问的状态网页,并且该网页是自动更新的。图A显示了一个“帮助桌面/支持状态”页面的外观示例。
图A 一个示例的“help desk/support status”页面
即使是没什么经验的终端用户,也能够浏览该页面,并查看是否有一些重要的系统可用或者不可用,其精确性可以分钟来计算。你可以做到这些,而无须向终端用户提供任何对Nagios系统的直接访问。并且,既然输出是HTML,所以它可以进行自定义,或者被集成到其他可视化应用中去。这只是一个特定的例子,来展示一下类似Nagios这样的开源工具到底有多么强大,以及它的强大威力是如何在网络管理员手中得到拓展的。
(责任编辑:陈毅东)
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
去集群 更超群——大容量网络演进之路
2019 IBM 中国论坛
H3C 2019 Navigate 领航者峰会
助推数据中心网络现代化转型 打造灵活可靠基础架构平台