nagios学习笔记

来源:互联网 发布:知乎 查看我的评论 编辑:程序博客网 时间:2024/06/06 01:00

    折腾了半个月,基本上对nagios有个入门级的了解。

对于Nagios,很多人说它很复杂,当然他确实不是那么太容易理解,一是由于了解它的人不是很多,中文的文档也几乎没有,其他人在网上配置的文档自己拿来不一定好使。开始我也很郁闷,琢磨了一段时间之后,发现也是有路可寻的。

要了解Nagios,最重要就是理解它的配置文件了,而最关键几个配置文件,如主配置文件nagios.cfg,hosts.cfg,services.cfg,contacts.cfg,commands.cfg。这四个文件配起来之后再加上一个timeperiod,nagios就可以跑起来了。

这几个表中,最常配的是hosts.cfg和services.cfg,因为监控变化最多的就是主机和服务,其他像时间,联系人基本上不会有太多变化,命令也就那些,除非特殊的用途才需要添加。而主机和服务就常配置的,比如我要增加监控的一台主机,就必须在hosts.cfg中添加要监控的主机信息,另外还要给这台主机配置一些要监控的服务,就是在services.cfg中。当然也可以在别的文件中添加,这样只是为了方便管理。因为在nagios启动的时候它会将所有nagios.cfg里面指定的配置文件的数据全部检测一遍,正确之后将其导入到var目录下的objects.cache文件中,然后再读取操作。

这几个配置配置文件(数据库中反映的是表)之间都会有一些依赖关系,比如host中有一个字段依赖timeperiod,它还依赖command,一般都是默认使用check-host-alive,判断主机是否存活。这四个文件中,最关键的一个就是services,它跟其他其他三个都有关系,正是这样将他们联系起来,形成了Nagios监控的整体的概念。一个service中,有host_name,标明这个服务是针对哪个主机的;有contact_groups,在监控的主机或者服务出现变化的时候通知这些联系人;有check_command,告诉nagios这个服务需要使用的命令和传入具体参数(这些命令的原始可执行文件在.../nagios/libexec目录下)

配置好了之后,nagios会将监控到的信息数据存放在var目录下的log文件中,比如status.dat,retention.dat等。可是这些信息全是文本,看起来很费劲。没关系,nagios带了一个叫cgi的工具(.../nagios/sbin目录下),它可以将这些数据信息在网叶中显示出来,比如我们用IE中输入http://yourip/nagios或者https://....的时候看到的界面,就是cgi干的事,那些监控的信息正是cgi从log文件中读取出来的。

跟nagios配套的还有一个很重要的工具,就是ndoutils,用它能够用nagios实现分布式的监控。它的主要作用就是将监控到的信息数据实时地写进mysql数据库中。有多个nagios的instance的时候,用它能够将数据写入同一个数据库中,集中管理,从而实现分布式的监控。它在mysql中创建了很多表(如我现在用的1.4.5有55张表),所有监控到的主机和服务以及状态数据等按特定的格式导入数据库中,并在每个表的开头加上各种标号以区分不同的nagios instance,host和service以及状态等。目前正在学习中。。。

困了,先写这么多,睡觉