NagVis是Nagios的一个插件,它在用户选择一个背景图片上显示主机和服务状态。背景图片必须是PNG格式,但可以自己选择背景图片,可以是图、系统文档图片、机房照片,或者系统环境的示意图等,如图18.1所示。
通过Web接口,可以任意地将对象放在背景的任何位置。NagVis会根据对象的状态显示不同的图标:红色表示危急状态(CRITICAL),黄色表示告警状态(WARNING),绿色表示正常状态(OK),以及一个灰色背景的问号表示未知状态(UNKNOWN)。如果设置了欢迎信息,它会由一个绿色按钮及其上面的一个角色图片表示。
对于主机和服务有不同的图标表示;在默认模板中,主机图标是矩形的,而服务图标是圆形的。一个完成的NagVis展示——在NagVis中称为图——显示在图18.2中。更多的例子——如使用地理地图或机房照片作为背景——可以在NagVis首页找到。
图18.1:作为NagVis模板的一个系统环境示意图。
除了主机和服务之外,主机和服务组也可以整合到NagVis展示中,以及其它的图。因此一个地理概况图可以用在开始页,它用一个图标表示被监控的位置,并将图标链接到一个详细的专门描述该位置的NagVis图。
如果一个图标包含几个状态,比如主机和服务组,NagVis会显示最高优先级的状态。CRITICAL比WARNING优先级高,而WARNING比UNKNOWN高,UNKNOWN比欢迎信息更受关注,而OK是所有状态中优先级最低的。如果一个主机组中的任意主机出现CRITICAL状况,这会相应地显示在整个主机组上。
对于主机和主机组,NagVis允许你选择只用主机状况来确定显示的状态,或者同时包括这些主机上的服务状态(见394页)。当选择后一种时,即使某个主机的一个服务处于CRITICAL状态,它都会显示一个红色的停止图标。
非常有趣的是NagVis只能评估硬状态(见394页)。对于使用Web接口的日常工作,如果不是每一个临时软CRITICAL状态都立刻产生一个红色信号,那会很有用。
图18.2:显示系统环境
特别对于面向对象程序设计有好处的是NagVis利用了一些面向对象的概念。例如,系统继承针对单个图和图上设置的全局配置,并将这些配置传递给单个对象,其中本地设置选项总是可以被覆载。这可以很大范围内简化配置,同时NagVis还在图形化的编辑器上(也称为Web用户接口,WUI)指出哪些设置是基于对象本身的,以及哪些是继承来的(见399页图18.8)。
NagVis是根据GNU Public License Version 2 (GPLv2)授权的;下面的介绍基于1.3版本。
一、安装
NagVis使用了NDOUtils并使用PHP实现。因此,NagVis除了需要运行NDO数据库,还需要量一个支持PHP 4.2或以上的Web服务器,以及访问NDO数据库所需要的库php-mysql和支持划线的库php-gd。根据使用的发行版和PHP版本不同,库的名称可能有所不同。对于Debian “Etch”和PHP5,需要以下库libapache2-mod-php5、php5、php5-common、php5-gd和php-mysql。
NagVis并不一定需要与Nagios和NDOUtils安装在同一台计算机上,虽然在许多情况下它们是都是安装在同一个主机上。NDO数据库的配置——NagVis文档上称为后台(Backend)——可以根据你的需要指向任何系统。NagVis甚至允许分别为每一个单独的对象选择后台,这样就可以生成在同一个图形中包含几个Nagios安装的图。
1.安装源代码
NagVis源代码可以从http://www.nagvis.org/downloads下载,要先解压到一个目录:
linux:~ # tar xvzf /pfad/zu/nagvis-1.3.tar.gz
...
如果之前有安装过NagVis,你应该先备份。然后你拷贝解压时创建的目录(这里是nagvis-1.3)到/usr/local/nagios/share的nagvis:
linux:~ # mv nagvis-1.3 /usr/local/nagios/share/nagvis
linux:~ # ls -F /usr/local/nagios/share/nagvis
INSTALL LICENCE README config.php etc/ index.php nagvis/ var/ wui/
重复的目录名nagvis可能看起来会有些奇怪,但这是正确的:
/usr/local/nagios/share/nagvis
/usr/local/nagios/share/nagvis/nagvis
/usr/local/nagios/share/nagvis/wui
/usr/local/nagios/share/nagvis表示NagVis的安装主目录,而子目录nagvis包含了NagVis应用,及其配置。最后子目录wui包含了图形化编辑器,它使我们可以通过浏览器编辑NagVis图。
目前,正确的目录和文件访问权限必须手动设置。首先你需要确定Web服务器运行的用户权限(参见39页,第1.2节):
linux:~ # grep "^User" /etc/apache2/apache2.conf
User www-data
linux:~ # id www-data
uid=33(www-data) gid=33(www-data) Groups=33(www-data),9001(nagcmd)
第一个grep命令查找Web服务器配置文件的相应用户——这里是Apache2,然后是使用id命令搜索这个用户的主组。这就是在gid部分的值。现在就可以相应地设置访问权限:
linux:~ # chown www-data.www-data -R /usr/local/nagios/share/nagvis
linux:~ # chmod 664 /usr/local/nagios/share/nagvis/etc/nagvis.ini.php
linux:~ # chmod 775 /usr/local/nagios/share/nagvis/nagvis/images/maps
linux:~ # chmod 664 /usr/local/nagios/share/nagvis/nagvis/images/maps/*
linux:~ # chmod 775 /usr/local/nagios/share/nagvis/etc/maps
linux:~ # chmod 664 /usr/local/nagios/share/nagvis/etc/maps/*
linux:~ # chmod 775 /usr/local/nagios/share/nagvis/var
linux:~ # chmod 664 /usr/local/nagios/share/nagvis/var/*
为了使用Web用户接口,必须创建中央配置文件并确保只有成功认证后才可以访问NagVis。
2.初始化配置
在目录/usr/local/nagos/share/nagvis/etc中有一个NagVis中央配置文件模板config.ini.php,只需要进行重命令和修改:
linux:~ # cd /usr/local/nagios/share/nagvis/etc
linux:nagvis/etc # cp config.ini.php.dist config.ini.php
linux:nagvis/etc # chown www-data.www-data config.ini.php
linux:nagvis/etc # chmod 664 config.ini.php
命令chown和chmod能够为Web用户(这里是www-data)和他的组设置正确的访问权限。
除了后台(NDO数据库)的配置,包含的config.ini.php已经有可用的默认值。下面的描述只限于介绍最重要的参数:
[global]
language="german"
refreshtime=60
在[global]部分你可以设置语言language;默认值是english。refreshtime定义了每经过多少秒钟浏览器的显示刷新一次。
在[defaults]部分指定了定义的对象从图配置继承的默认值。如果需要,这些值可以通过图来覆载。最好是在这里定义在大多数对象都相同的配置,以避免在对象定义中显式定义这些配置时做重复的工作。
[defaults]
backend="ndomy_1"
icons="std_medium"
recognizeservices=1
onlyhardstates=1
backend指定了哪一个NDO数据库作为默认的后台。这个名称可以是任意值,但后台本身仍然需要在一个单独的部分定义。如果你只是尝试一下,最好保留默认名称ndomy_1。
参数icons定义了从目录中设置的图标。其中/nagvis/nagvis/images/iconsets就是所使用的目录。它包括了4个图标集:std_、small、std_medium、std_big,还有folder。其它的图标可以从NagVis的主页下载,或者可以自己创建图标。
设置recognizeservices=1可以保证在确定主机和主机组的总体状态时,伴随的服务的当前状态也会包括在内。值0则关闭此行为。
而onlyhardstates=1则告诉NagVis只报告硬状态。默认值0也包含了软状态。
[wui]部分可以对NagVis编辑器进行设置。
[wui]
autoupdatefreq=25
maplocktime=5
autoupdatefreq确定了多长时间(秒)Web用户接口自动地保存修改,而指定在最后一次修改后,当前正被编辑的图的任意更多的修改应该被锁定多少分钟。这样做的目的是防止多个用户同时编辑相同的图。
在文件系统(base)以及浏览器上——NagVis数据和NagVisCGI,指向NagVis的安装路径是在[paths]部分指定的:
[paths]
base="/usr/local/nagios/share/nagvis/"
htmlbase="/nagios/nagvis"
htmlcgi="/nagios/cgi-bin"
这里列出的默认值是上面描述的标准安装路径。
用于访问NDO数据库后台的配置位于配置文件的末尾:
[backend_ndomy_1]
backendtype="ndomy"
dbhost="localhost"
dbport=3306
dbname="nagios"
dbuser="nagios"
dbpass="verysecret"
dbprefix="nagios_"
dbinstancename="default"
maxtimewithoutupdate=180
这个部分的名称必须包含[defaults]下backend参数指定的名称,按照命名模式:[backend_value_of_backend]。这里默认是ndomy_1。如果backend参数值不与定义的后台部分的任何一个配置匹配,NagVis将不会工作。
backendtype定义了后台类型,而这里的ndomy——一个基于MySQL的NDO数据库——是唯一的可选值。
dbhost和dbport指定了主机名或IP地址,以及附加的用于访问数据库的TCP端口。dbname包含了NDO数据库的名称,dbuser和dbpass指定访问的用户名和密码。
dbprefix和dbinstancename定义的默认值是为NDOUtils标准安装所设置的。假定你还没有修改文件ndomod.cfg(384页,第17.4.1节)中的参数instance_name和文件中ndo2db.cfg(385页,第17.4.2节)的参数db_prefix,就可以使用这里的值。
需要特别注意的一个参数是maxtime-withoutupdate:它定义了Nagios出现状态更新的时间(秒)。如果超出了这里指定的时间,NagVis会认为数据已经过时并显示一个错误。如果NagVis访问在几个服务器上的分布式NDO数据库,非常重要的一点是要保证服务器之间的时间是同步的,否则在NagVis遇到时间差大于maxtimewithoutupdate秒时,它将不会工作。
这里需要提到另一个关于NDO数据库和NagVis的数据交换问题:NagVis评估当前程序状态。然而,3.0b1之前版本的Nagios仅仅在每天日志文件修改后将它写到NDO数据库。从3.0b1版本开始,Nagios变为每5秒钟更新状态,这样NagVis就一直拥有最新的信息。
3.用户认证
NagVis要求用户认证。否则,它会报错。
如果Nagios的share目录根据认证不能访问,如48页的Apache配置,应该在Apache配置文件/etc/apache2/conf.d/nagios中修改配置。认证数据最好是从CGI目录读取。
图18.3:右击显示的图形,会出现菜单
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.net/exam/