**一、安装Nagios(源码)

1、安装准备:

编译工具 

#yum -y install gcc gcc-c++

创建用户和组

#useradd nagios

#groupadd nagcmd

#usermod -G nagcmd nagios


2、装包:

配置:

# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd   --with-command-user=nagios 

--with-command-group=nagcmd


编译:

# make all




装包:


# make install    #安装主程序

# make install-init     #安装启动脚本

# make install-commandmode #安装命令模块

# make install-config #安装配置文件模版

# make install-webconf #安装apache相关配置文件

# make install-exfoliation #Web服务器的界面风格


# 3、查看安装目录及配置文件说明

主目录 /usr/local/nagios        以下路径的根路径都在主目录下


/bin/nagios #验证配置信息

/bin/nagiostats #显示监控状态信息


/etc/*.cfg #配置文件

/etc/objects/*.cfg #配置文件


/libexec/* #存储监控插件


/sbin/*.cgi #编译好的脚本文件


/share/* #网页信息


/var/* #存放日志文件


4、安装监控插件 nagios-plugins-2.1.4

./configure && make && make install


5、启动 nagios 监控服务:

1)设置访问监控页面的用户名(nagiosadmin)和密码(自定义)

vim /etc/httpd/conf.d/nagios.conf

                        #主配置文件


Alias /nagios "/usr/local/nagios/share"

#当访问 http://服务器IP/nagios 跳转到对应目录下的网页文件


AuthUserFile /usr/local/nagios/etc/htpasswd.users

#记录存储用户的配置文件


htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

#创建访问监控页面的用户名和密码

#创建完用户后重启 Web 服务让 Web 服务加载对应文件


2)启动服务 /etc/rc.d/init.d/nagios start

#默认监控本机:

CPU负载

登陆系统的用户数

Web 服务运行状态

PING

根分区

SSH服务

交换分区

总进程数量


#监控状态

Ok

Warning #警告

Unknown #配置文件有问题

Critical #有严重问题

Pending #正在监控


二、配置 nagios 服务

1、监控过程

nagios 服务运行时加载主配置文件 ngaios.cfg 在配置文件中调用监控插件,运维人员可以设置监控插件的监控阀值(警告值、错误值);

nagios 服务的插件把监控到的数据和监控阀值比较,根据比较结果显示监控状态。

监控到的数据值小于警告值 状态则为正常  ok

监控到的数据值大于警告值切小于错误值 状态则为警告  Warning

监控到的数据值大于错误值 状态则为严重错误  Critical



2、监控插件的使用

/libexec/check_load CPU负载 

-w 1分钟,5分钟,15分钟 -c 1分钟,5分钟,15分钟

check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15

/libexec/check_users 登陆系统的用户数

-w 警告值 -c 错误值

check_users -w <users> -c <users>

/libexec/check_http Web 服务运行状态

-H Web服务器ip -p端口 不指定默认80

/libexec/check_ping PING 

-H 主机IP -w 警告值,丢包率% -c 错误值,丢包率% -p 包次数 -t 超时时间 -4|-6

-H <host_address> -w <wrta>,<wpl>% -c <crta>,<cpl>%

[-p packets] [-t timeout] [-4|-6]

/libexec/check_disk 根分区

-w 警告值% -c 错误值% -p 挂载点,磁盘路径

/libexec/check_ssh SSH服务 

-H IP地址 -p 端口 默认22端口

/libexec/check_swap 交换分区  

-w 警告值% -c 错误值% 

/libexec/check_procs 总进程数量 

-w 警告值 -c 错误值 -s 状态

状态:R运行 Z僵尸 S休眠 

/libexec/check_tcp tcp协议  

-H IP地址  -p 端口



3、配置文件说明 

1)验证配置文件

/bin/nagios -v 配置文件路径 #验证配置文件修改是否正确

/bin/nagiostats -c 配置文件路径 #在命令行显示检测结果


2)主配置文件

/etc/nagios.cfg  


3)宏定义文件

/etc/resource.cfg 宏定义文件:定义了插件存放路径 


4)命令存储

/etc/objects/commands.cfg #定义监控命令

define command{

command_name  命令名  

command_line  路径/插件名 参数  

 }


5)监控本机配置文件

/etc/objects/localhost.cfg #监控本机的

define host{

use               linux-server #监控主机时使用的模版

host_name         localhost #主机名

alias             localhost #主机名的描述信息,可省略不写

address           127.0.0.1 #主机IP

}

define service{

      use                  local-service #监控资源时使用的模版

      host_name            localhost #主机名

      service_description  PING #监控项的描述信息

check_command  check_ping!100.0,20%!500.0,60%

        } #调用的监控命令

#!间隔命令参数


6)接受报警信息邮件的邮箱地址

/etc/objects/contacts.cfg 


7)定义监控时间模版配置文件

/etc/objects/timeperiods.cfg


8)定义监控模版配置文件

/etc/objects/templates.cfg

check_interval                  5    #每隔5分钟监控一次           

retry_interval                  1   #断开连接后每1分钟冲试一次           

max_check_attempts              10   #最大重试10次


define service{

name                            local-service          

use                             generic-service       

max_check_attempts              4                       

normal_check_interval           5                      

retry_check_interval            1                      

register                        0                      

}****