nagios监控系统

 一、系统环境

[root@host3 ~]# cat /etc/redhat-release 
CentOS release 5.5 (Final)
[root@host3 ~]# uname -a
Linux host3.zc.com 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
 
软件包存放目录
/data
 
所需软件包
nagios-3.2.3.tar.gz
nagios-cn-3.2.3.tar.bz2
nagios-plugins-1.4.9.tar.gz
nrpe-2.12.tar.gz
 
监控端:host3 ip:192.168.1.220
被监控端:host4 ip:192.168.1.221
 
 
 
二、Nagios的快速安装
监控机host3上安装:
1、准备软件包
在做安装之前确认要对该机器拥有root权限。确认你安装好的linux系统上已经安装如下软件包再继续。
Apache
php
GCC编译器
GD库与开发库
mysql(可选,为以后nagios扩展做准备)
可以用yum命令来安装这些软件包,键入命令:
[root@host3 ~]# yum -y install httpd php mysql mysql-server php-mysql httpd-manual php-adodb openphp-gd openssl gcc* openssl-devel xinetd
 
 
2、建立nagios账号
创建一个用户组名为nagcmd用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。
[root@host3 ~]# useradd -s /sbin/nologin nagios
[root@host3 ~]# groupadd nagcmd
[root@host3 ~]# usermod -G nagcmd nagios
[root@host3 ~]# usermod -G nagcmd apache
 
 
3、nagios源码软件包安装
解包、配置、编译安装nagios
[root@host3 ~]# cd /data/
[root@host3 data]# tar -zxf nagios-3.2.3.tar.gz 
[root@host3 data]# cd nagios-3.2.3
[root@host3 nagios-3.2.3]# ./configure --with-command-group=nagcmd
[root@host3 nagios-3.2.3]# make all //输出如下信息
[root@host3 nagios-3.2.3]# make install //安装主程序,CGI和HTML文件
[root@host3 nagios-3.2.3]# make install-init //在/etc/rc.d/init.d安装启动脚本
[root@host3 nagios-3.2.3]# make install-config //配置目录权限
[root@host3 nagios-3.2.3]# make install-commandmode //来安装示例配置文件
[root@host3 nagios-3.2.3]# make install-webconf //生成web接口
 
验证程序是否被正确安装。切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var这五个目录,如果存在则可以表明程序被正确的安装到系统了。后表是五个目录功能的简要说明:
 
bin Nagios执行程序所在目录,nagios文件即为主程序
etc Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件
sbin NagiosCgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share Nagios网页文件所在的目录
Var Nagios日志文件、spid等文件所在的目录
var/archives Emptydirectoryfor thearchivedlogs
var/rw Emptydirectoryfor theexternalcommandfile
 
 
4、安装Nagios汉化插件
[root@host3 nagios-3.2.3]# cd /data/
[root@host3 data]# tar -jxf nagios-cn-3.2.3.tar.bz2 
[root@host3 data]# cd nagios-cn-3.2.3
[root@host3 nagios-cn-3.2.3]# ./configure 
[root@host3 nagios-cn-3.2.3]# make all    
[root@host3 nagios-cn-3.2.3]# make install
[root@host3 nagios-cn-3.2.3]# cd
 
 
5、增加用户验证
[root@host3 ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Newpassword:(输入redhat)
Re-typenewpassword:(再输入一次密码redhat)
 
nagiosadmin系统默认管理用户,拥有对nagios有完全控制权限。
密码:redhat(注意:也可自定义用户,或增加用户,但必须从以下文件中设置)
[root@host3 ~]# vim /usr/local/nagios/etc/cgi.cfg
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin,test
authorized_for_all_service_commands=nagiosadmin,test
authorized_for_all_host_commands=nagiosadmin
 
 
6、启动nagios,httpd
把Nagios加入到服务列表中以使之在系统启动时自动启动
[root@host3 ~]# chkconfig --add nagios
[root@host3 ~]# chkconfig nagios on
 
验证Nagios的样例配置文件
[root@host3 ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 
 
如果没有报错,可以启动Nagios服务和apache服务
[root@host3 ~]# /etc/init.d/nagios start
[root@host3 ~]# /etc/init.d/httpd start
 
 
7、测试
登录http://ip/nagios
输入用户名nagiosadmin密码redhat就可以正常登陆了
 
 
 
三、增加本机监控项
1、监控机(本机)中安装插件
[root@host3 ~]# cd /data/
[root@host3 data]# tar -zxf nagios-plugins-1.4.9.tar.gz 
[root@host3 data]# cd nagios-plugins-1.4.9
[root@host3 nagios-plugins-1.4.9]# ./configure --prefix=/usr/local/nagios/
[root@host3 nagios-plugins-1.4.9]# make
[root@host3 nagios-plugins-1.4.9]# make install
 
在libexec目录中生成了多个监控脚本
[root@host3 nagios-plugins-1.4.9]# cd /usr/local/nagios/libexec/
[root@host3 libexec]# ls 
check_apt       check_file_age      check_mailq     check_pop      check_ups
check_breeze    check_flexlm        check_mrtg      check_procs    check_users
check_by_ssh    check_ftp           check_mrtgtraf  check_real     check_wave
check_clamd     check_http          check_nagios    check_rpc      negate
check_cluster   check_icmp          check_nntp      check_sensors  urlize
check_dhcp      check_ifoperstatus  check_nt        check_smtp     utils.pm
check_dig       check_ifstatus      check_ntp       check_ssh      utils.sh
check_disk      check_imap          check_nwstat    check_swap
check_disk_smb  check_ircd          check_oracle    check_tcp
check_dns       check_load          check_overcr    check_time
check_dummy     check_log           check_ping      check_udp
[root@host3 libexec]#./check_ping --help 可以大多可查看到帮助信息
 
 
2、增加监控项
Nagios自己定义了一套规则用于配置文件,其中最重要的概念就是”对象”----object.在Nagios里面定义了一些基本的对象,一般用到的有:
联系人 contact 出了问题像谁报告?一般当然是系统管理员了
监控时间段   timeperiod 7X24小时不间断还是周一至周五,或是自定义的其他时间段
被监控主机   host 所需要监控的服务器,当然可以是监控机自己
监控命令   command nagios发出的哪个指令来执行某个监控,这也是自己定义的
被监控的服务 service 例如主机是否存活,80端口是否开,磁盘使用情况或者自定义的服务等
另外,多个被监控主机可以定义为一个主机组,多个联系人可以被定义为一个联系人组,多个服务还能定义成一个服务组呢。
我们定义一个被监控的服务,当然就要指定被监控的主机,需要监控的时间段,要用哪个命令来完成这个监控操作,出了问题向哪个联系人报告。
 
主配置文件选项
Nagios的主配置文件为/usr/local/nagios/etc/nagios.cfg
重要配置说明如下:
nagios_user=nagios nagios用户
nagios_group=nagios nagios组
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //联系人/组配置文件
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //本机配置文件
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //监视时段配置文件
cfg_file=/usr/local/nagios/etc/objects/commands.cfg //监视脚本配置
cfg_file=/usr/local/nagios/etc/objects/templates.cfg //监视服务,报警配置
cfg_file=/usr/local/nagios/etc/objects/switch.cfg //监视路由
cfg_file=/usr/local/nagios/etc/objects/windows.cfg //监视微软
 
打开本机localhost.cfg模版如下:
definehost{ 声明主机
use linux-server 引入模版linux-server
host_name localhost 主机名
alias localhost
address 127.0.0.1 所对应的ip地址
}
definehostgroup{ 声明主机组
hostgroup_name linux-servers 引入模版linux-servers
alias LinuxServers
members localhost 将哪些主机加入此组,如有多台主机以,号隔开
}
defineservice{ 声明监控服务项
use local-service 引入模版local-service哪些主机
host_name localhost 要使用此监控项若有多个,以,号隔开。
service_description PING 此监控项的描述
check_command check_ping!100.0,20%!500.0,60% 此监控项监控脚本名称及设置相关选项或阈值
}
 
打开模版:
vim /usr/local/nagios/etc/objects/ templates.cfg
definehost{
name linux-server
use generic-host
check_period 24x7 //监测时间
check_interval 5 //检测时间间隔
retry_interval 1 //再次间隔时间
max_check_attempts 10 //最大尝试次数
check_command check-host-alive //主机检查使用命令
notification_period workhours //报警通知时间
notification_interval 120 //通知间隔时间
notification_options d,u,r // 通知级别
#d-down,u-unreacheable,r-recovery
contact_groups admins //设置报警组
register 0
}
 
 
 
四、增加被监控机host4的监控项
1、监控机host3上安装
[root@host3 ~]# cd /data/
[root@host3 data]# tar -zxf nrpe-2.12.tar.gz 
[root@host3 data]# cd nrpe-2.12
[root@host3 nrpe-2.12]# ./configure 
[root@host3 nrpe-2.12]# make all
[root@host3 nrpe-2.12]# make install-plugin
[root@host3 nrpe-2.12]# make install-daemon
[root@host3 nrpe-2.12]# make install-daemon-config
[root@host3 nrpe-2.12]# make install-xinetd
 
 
2、被监控机host4上配置
[root@host4 ~]# yum -y install gcc* openssl-devel xinetd
[root@host4 ~]# cd /data/
[root@host4 data]# useradd -s /sbin/nologin nagios
1)安装监控脚本插件
[root@host4 data]# tar -zxf nagios-plugins-1.4.9.tar.gz 
[root@host4 data]# cd nagios-plugins-1.4.9
[root@host4 nagios-plugins-1.4.9]# ./configure --prefix=/usr/local/nagios
[root@host4 nagios-plugins-1.4.9]# make
[root@host4 nagios-plugins-1.4.9]# make install
2)安装nrpe
[root@host4 nagios-plugins-1.4.9]# cd /data/
[root@host4 data]# tar -zxf nrpe-2.12.tar.gz 
[root@host4 data]# cd nrpe-2.12
[root@host4 nrpe-2.12]# ./configure 
[root@host4 nrpe-2.12]# make all
[root@host4 nrpe-2.12]# make install-plugin
[root@host4 nrpe-2.12]# make install-daemon
[root@host4 nrpe-2.12]# make install-daemon-config
[root@host4 nrpe-2.12]# make install-xinetd
 
 
3、监控机和被监控机上启动NRPE,并进行测试
被监控端
[root@host4 nrpe-2.12]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d #启动nrpe服务
[root@host4 nrpe-2.12]# /usr/local/nagios/libexec/check_nrpe -H localhost #查看nrpe版本
NRPE v2.12
[root@host4 nrpe-2.12]# netstat -anpt | grep nrpe
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      22941/nrpe 
添加nrpe开机启动:
[root@host4 nrpe-2.12]# vi /etc/xinetd.d/nrpe 
only_from       = 127.0.0.1 192.168.1.220 #添加监控端ip
[root@host4 nrpe-2.12]# vi /etc/services 
nrpe            5666/tcp                        # nrpe #末行添加
[root@host4 nrpe-2.12]# pkill nrpe #关闭之前开启的nrpe进程
如不关闭,下面监控端做测试的时候会提示,CHECK_NRPE: Error - Could not complete SSL handshake.
[root@host4 nrpe-2.12]# /etc/init.d/xinetd restart
停止 xinetd:                                              [失败]
启动 xinetd:                                              [确定]
 
 
监控端
[root@host3 nrpe-2.12]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d #启动nrpe服务
[root@host3 nrpe-2.12]# /usr/local/nagios/libexec/check_nrpe -H localhost #查看nrpe版本
NRPE v2.12
[root@host3 nrpe-2.12]# netstat -anpt | grep nrpe
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      1970/nrpe 
添加nrpe开机启动
[root@host3 nrpe-2.12]# vi /etc/services
nrpe            5666/tcp                        # nrpe   #末行添加
[root@host3 nrpe-2.12]# /etc/init.d/xinetd restart
停止 xinetd:                                              [失败]
启动 xinetd:                                              [确定]
[root@host3 nrpe-2.12]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.221 #查看被监控端的nrpe版本
NRPE v2.12
 
 
4、添加被监控主机
监控端host3配置
[root@host3 nrpe-2.12]# cd /usr/local/nagios/etc/objects/
[root@host3 objects]# cat 192.168.1.221.cfg #以下所有模版都是通过调用/usr/local/nagios/libexec/templates.cfg文件中对模版的定义
define host{
        use                     linux-server       #引用linux-server模版      
        host_name               192.168.1.221 #主机名
        alias                   192.168.1.221 #别名
        address                 192.168.1.221 #被监控端ip地址
        }
define service{
        use                             local-service       #引用local-service模版  
        host_name                       192.168.1.221
        service_description             PING #对监控服务内容的描述
        check_command                   check_ping!100.0,20%!500.0,60% #指定检查的命令,check_ping命令在commands.cfg中定义,后跟两个参数,命令与参数间用!分割
        }
define service{
        use                             local-service         
        host_name                       192.168.1.221
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        }
define service{
        use                             local-service         
        host_name                       192.168.1.221
        service_description             Current Users
        check_command                   check_local_users!20!50
        }
define service{
        use                             local-service         
        host_name                       192.168.1.221
        service_description             Total Processes
        check_command                   check_local_procs!250!400!RSZDT
        }
define service{
        use                             local-service       
        host_name                       192.168.1.221
        service_description             Current Load
        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }
define service{
        use                             local-service     
        host_name                       192.168.1.221
        service_description             Swap Usage
        check_command                   check_local_swap!20!10
        }
define service{
        use                             local-service     
        host_name                       192.168.1.221
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
        }
define service{
        use                             local-service        
        host_name                       192.168.1.221
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           0
        }
 
 
 
 
 
 
 
 
cfg_file=/usr/local/nagios/etc/objects/commands.cfg #定义命令
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg #定义联系人和联系人组
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg #定义监控时间段
cfg_file=/usr/local/nagios/etc/objects/templates.cfg #定义模版
 
 
 
 
5、监控报警机制
可参考http://zhumeng8337797.blog.163.com/blog/static/10076891420118279354233/
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(监控,nagios)