nagios技术文档整理(终结版) 联系客服

发布时间 : 星期五 文章nagios技术文档整理(终结版)更新完毕开始阅读18a4c671a26925c52cc5bf22

接近两个星期的奋战,nagios的安装搭建以及监控服务自动报警功能终于基本得以实现,现在自己整理一份安装技术手册,方便自己以后查阅和回顾。

一、 Nagios试验环境以基本安装

主机名 Nagios-Server 211.162.127.43 操作系统 Centos5.4 Centos5.4 IP 211.162.127.51 211.162.127.43 作用 监控机 被监控机 nagios的功能是监控服务和主机,但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。

再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,同样的,nagios自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成。

nagios安装,是指基本平台,也就是nagios软件包的安装。它是监控体系的框架,也是所有监控的基础。

打开nagios官方的文档,会发现nagios基本上没有什么依赖包,只要求系统是linux或者其他nagios支持的系统。不过如果你没有安装apache(httpd服务),那么你就没有那么直观的界面来查看监控信息了,所以apache姑且算是一个前提条件。关于apache的安装,网上有很多,照着安装就是了。安装之后要检查一下是否可以正常工作。

nagios定义了4中监控状态,代表不同的严重级别,除了OK代表正常不用关心外,其余3种都要引起重视.如下表: 状态 正常 警告 严重 未知错误 代码 OK WARNING CRITICAL UNKOWN 颜色 绿色, 黄色, 红色, 深黄色 (一) 下载所需软件包

1.Nagios-3.2.0.tar.gz (Nagios主程序软件包) [root@nagios~]#wget

http://prdownloads.sourceforge.net/sourceforge/nagios/nagios.3.2.0.tar.gz

2.Nagios-plugins-1.4.15.tar.gz (Nagios 插件) [root@nagios~]#wget

http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

3.nrpe-2.12.tar.gz (Nagios 代理检测程序) [root@nagios~]#wget

http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

4.NSClient++-0.2.7.zip (用于监控windows系统所需的软件) http://sourceforge.net/projects/nscplus/

[root@nagios~] # ls

nagios-3.2.0.tar.gz nagios-plugins-1.4.15.tar.gz nrpe-2.1.12.tar.gz

官方安装文档:http://nagios.sourceforge.net/docs/3_0/quickstart-fedora.html

(二) 安装nagios

1.安装前所依赖性包的安装

[root@nagios~]# yum -y install httpd php gcc glibc glibc-common gd gd-devel

2.创建nagios用户和组

[root@nagios~]# useradd -m nagios [root@nagios~]# groupadd nagcmd

[root@nagios~]# usermod -a -G nagcmd nagios [root@nagios~]# usermod -a -G nagcmd apache

3.编译安装nagios

[root@nagios~]# tar -zxvf nagios-3.2.0.tar.gz [root@nagios~]# cd nagios-3.2.0

[root@nagios-3.2.0]#./configure--with-command-group=nagcmd\\

--with-nagios-user=nagios \\ --with-nagios-group=nagios --prefix=/usr/local/nagios (红色部分命令可敲可不敲,指定nagios安装目录) [root@nagios-3.2.0]# make all [root@nagios-3.2.0]# make install [root@nagios-3.2.0]# make install-init [root@nagios-3.2.0]# make install-config

[root@nagios-3.2.0]# make install-commandmode

[root@nagios-3.2.0]# make install-webconf (生成apache配置文件nagios.conf)

4.为nagios生成web验证密码

[root@nagios-3.2.0]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

5.设置nagios开机启动 chkconfig --add nagios chkconfig nagios on

6.修改selinux 两种方法:

第一种就是直接关闭selinux, 把selinux设置成disabled状态,使用getenforce能查看到当前selinux的状态,0为关闭,1为打开。

[root@nagios-3.2.0]# vim /etc/sysconfig/selinux SELINUX=disabled

第二种就是修改正确的content值

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

(三) 安装nagios的插件nagios-plugins

插件是nagios扩展功能的强大武器,一般好的软件,都支持插件的扩展,你可以根据实际需求,自己开发插件。

[root@nagios~]# tar -zxvf nagios-plugins-1.4.15.tar.gz [root@nagios~]#cd nagios-plugins-1.4.15 [root@nagios-plugins-1.4.15]#./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios [root@nagios-plugins-1.4.15]# make&&make install

(四) 主目录下文件目录结构

[root@nagios~]# cd /usr/local/nagios [root@nagios nagios]# ls -l

成功安装后在/usr/local/nagios目录下可见这几个文件夹,其中etc为配置文件目录,插件都安装在libexec目录下,var为存放nagios服务日志目录。下面我们进入etc目录来配置检测主机是否存活

[root@nagios nagios]# cd etc/ [root@nagios etc]# ls -l

Etc目录下可见cgi.cfg、htpasswd.users、nagios.cfg、objects、resource.cfg这五个文件与目录(上图中nrpe.cfg为后来所装nrpe代理检测程序所生成的文件,只装过nagios主程序和插件的话不会出现此文件)

Cgi.cfg (CGI配置文件) htpasswd.users (Apache的用户验证密码文件) Nagios.cfg (主配置文件) objects (对象定义文件目录) Resource.cfg(资源配置文件)

二、Nagios监控简单服务的配置

检测主机是否存活,需要修改nagios.cfg和objects目录下的文件。

(一)主配置文件nagios.cfg的配置

Nagios自己定义了一套规则用于配置文件,其中最重要的概念就是”对象”----object.通俗的理解:假定我们首先定义了”性别”这个对象,它的值只可能是男,女,人妖等等,然后定义某人为一个对象,例如张三,定义张三的时候有”性别”这个属性,它的值就必须来源了之前定义的性别这个对象,要么是男是女,或者是人妖.

在Nagios里面定义了一些基本的对象,一般用到的有: 联系人 contact 监控时间段 timeperiod 被监控主机 host 监控命令 command 被监控的服务 service 出了问题像谁报告?一般当然是系统管理员了 7X24小时不间断还是周一至周五,或是自定义的其他时间段 所需要监控的服务器,当然可以是监控机自己 nagios发出的哪个指令来执行某个监控,这也是自己定义的 例如主机是否存活,80端口是否开,磁盘使用情况或者自定义的服务等 另外,多个被监控主机可以定义为一个主机组,多个联系人可以被定义为一个联系人组,多个服务还能定义成一个服务组呢.

回到上面的例子,定义张三需要之前定义的性别,我们定义一个被监控的服务,当然就要指定被监控的主机,需要监控的时间段,要用哪个命令来完成这个监控操作,出了问题向哪个联系人报告.