nagios配置文档

关于nagios 
Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和

变好的时候给出告警信息。
Nagios最初被设计为在linux系统之上运行,然而它同样可以在类Unix的系统之上运行。
Nagios更进一步的特征包括:
1.监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
2.监控主机资源(处理器负荷、磁盘利用率等);
3.简单地插件设计使得用户可以方便地扩展自己服务的检测方法; 
4.并行服务检查机制; 
5.具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰

主机宕机或不可达状态;  
6.当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式); 
7.具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;  
8.自动的日志回滚; 
9.可以支持并实现对主机的冗余监控;  
10.可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、

NSClient++和NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务

器端工作所必须的组件。而四个ADDON中
(1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控
(2)NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特

别要用到)
(3)NSClient++:用来监控 Windows主机时安装在Windows主机上的组件
(4)NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和

处理 这四个ADDON(附件)中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安

装在服务器端和客户端Nagios所需要的运行条件是机器必须可以运行Linux(或是Unix变种)并且有C语言编译器

。你必须正确地配置TCP/IP协议栈以使大多数的服务检测可以通过网络得以进行。
你需要但并非必须正确地配置Nagios里的CGIs程序,而一旦你要使用CGI程序时,你必须要安装以下这些软件...
1.一个WEB服务(最好是Apache)
2.Thomas Boutell制作的gd库版本应是1.6.3或更高(在CGIs程序模块statusmap和trends这两个模块里需要这个

库)
    Nagios版权遵从于由自由软件基金会所发布的GNU版权协议第二版。有关GNU协议请查阅自由软件基金会网站

。该版权协议允许你在某些条件下可以复制、分发并且或者是修改它。可以在Nagios软件发行包里阅读版权文件

LICENSE或是在网站上阅读在线版权文件以获取更多信息。
安装前的准备工作
(1)解决安装Nagios的依赖关系:
确认你安装好的linux系统上已经安装如下软件包再继续。
Apache  
GCC编译器
GD库与开发库
可以用yum命令来安装这些软件包,键入命令:
yum –y install httpd gcc glibc glibc‐common gd gd‐devel
(2)所需要安装组件:
服务端所用的安装包为 nagios nagios-plugins ndoutils(非必须)
linux客户端 nrpe
windows客户端 NSClient++
(3)
进行selinux设置,或者关闭selinux
开始搭建:
(1)添加nagios运行所需要的用户和组:

# groupadd nagcmd
# useradd -m nagios
# usermod -a -G nagcmd nagios

把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
# usermod -a -G nagcmd apache

2、编译安装nagios:

# tar zxf nagios-3.1.2.tar.gz
# cd nagios-3.1.2
# ./configure --with-command-group=nagcmd --enable-event-broker

# make all
# make install
# make install-init
# make install-config
# make install-commandmode
验证程序是否被正确安装。切换目录到安装路径(这里是/usr/local/nagios),看是否存在 etc、bin、 sbin、

share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。后表是五个目录功能的简要说明:
bin  Nagios执行程序所在目录,nagios文件即为主程序                                
etc Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件
3与2区别 对象配置文件都在etc/objects目录下
sbin Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share Nagios网页文件所在的目录
Var Nagios日志文件、spid 等文件所在的目录
var/archives Empty directory for the archived logs
var/rw  Empty directory for the external command file
为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:
# vi /usr/local/nagios/etc/objects/contacts.cfg
email        nagios@localhost       #这个是默认设置

配置WEB接口
方法一:
在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:
# make install-webconf
创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
方法二:
在httpd.conf最后添加如下内容:
#setting for nagios 20110629
#setting by bbs.linuxtone.org
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用于此目录访问身份验证的文件
Require valid-user
</Directory>
Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用于此目录访问身份验证的文件
Require valid-user
</Directory> 
创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
查看认证文件的内容
 
less /usr/local/nagios/etc/htpasswd  
nagiosadmin:OmWGEsBnoGpIc 前半部分是用户名test,后面是加密后的密码
本例添加的是nagiosadmin用户名,需要改 cgi.cfg 配置文件,允许nagiosadmin用户
 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
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
如果有多用户,请用逗号格开
 
以上过程配置结束以后需要重新启动httpd:
# service httpd restart

3、编译、安装nagios-plugins

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。

# tar zxf nagios-plugins-1.4.13.tar.gz
# cd nagios-plugins-1.4.13
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install

4、配置并启动Nagios
Nagios的主配置文件为/usr/local/nagios/etc/nagios.cfg 
对象配置文件
 格式:cfg_file=<file_name>样例:
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg 
cfg_file=/usr/local/nagios/etc/objects/commands.cfg 
如添加一个新的主机配置 linuxtone.cfg  
cfg_file=/usr/local/nagios/etc/linuxtone.cfg 
 nagios用户及组
 nagios_user=nagios 
 nagios_group=nagios 
 通知选项
 Enable_notifications=1  
 该选项决定了Nagios在初始化启动或重启动时是否要送出通知。如果这个选项不使能,Nagios将不会向任何主

机或服务送出通知。注意,如果你打开了状态保持选项,Nagios在其启动和重启时将忽略此设置并用这个选项的

最近的一个设置(已经保存在状态保持文件)的值来工作,除非你取消了use_retained_program_state选项。如果

你想在使能状态保存选项(并且是use_retained_program_state使能)的情况下更改这个选项,你必须要通过合适

的外部命令或是通过Web接口来修改它。选项的取值可以是:
 
0 = 关闭通知
 
1 = 打开通知(默认)
 对象配置文件选项
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 //监视微软

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
# chkconfig --add nagios
# chkconfig nagios on

(2)检查其主配置文件的语法是否正确:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
# service nagios start

(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您

的系统是否开启了selinux:
#getenforce

如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
#setenforce 0

如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的

值“force”修改为“disable”即可。

当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share

(5)通过web界面查看nagios:
http://your_nagios_IP/nagios

登录时需要指定前面设定的web认证帐号和密码。

##################################################################

windos端
1.被监控端安装NSClient++-0.3.8-Win32.msi
2.安装完成后修改配置文件NSC.ini把需要的库都打开

3.在监控服务器上修改nagios配置文件nagios.cfg
去掉注释cfg_file=/usr/local/nagios/etc/objects/windows.cfg
定义windows.cfg
define host{
        use             windows-server  ; Inherit default values from a template
        host_name       winserver       ; The name we're giving to this host
        alias           My Windows Server       ; A longer name associated with the host
        address         192.168.0.191   ; 你主机的IP
        }

#################################################################
linux端

被监控端
先添加nagios用户
useradd nagios
为了安装nrpe,先安装nagios-plugins-1.4.15.tar.gz 插件
# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install

tar -zxvf nrpe-2.12.tar.gz
cd nrpe-2.12.tar.gz
./configure  (会自动加载SSL)
#如果后面make报错,加如下参数
./configure --enable-ssl --with-ssl-lib=/usr/lib/(当然前提要有openssl)
make all
make install-plugin
make install-daemon
make install-daemon-config

4.配置nrpe信息
vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1  //允许监控的IP
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

服务端
3.安装NRPE
cd nagios-nrpe_2.8.1
./configure   #默认自动添加了openssl
#因为传送过程要加密,如果后面make报错,加如下参数
rpm -qa| grep ssl
openssl-devel-0.9.7a-43.17.el4_6.1
rpm -ql openssl-devel-0.9.7a-43.17.el4_6.1 | more
./configure --enable-ssl --with-ssl-lib=/lib/(当然前提要有openssl)
make all
make install-plugin

4.commands.cfg定义外部构件nrpe
vi /usr/local/nagios/etc/objects/commands.cfg
#添加
#check nrpe
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }
定义 mylinux.cfg
define host{
           use             linux-server
          host_name     mylinux
          alias            mylinux
          address        192.168.0.27(客户端IP既被监控的IP)
        }
define service{
        use                      generic-service
        host_name             mylinux
        service_description     check-swap
        check_command        check_nrpe!check_swap
               }
define service{
        use                      generic-service
        host_name             mylinux
        service_description     check-load
       check_command         check_nrpe!check_load
               }
define service{
        use                      generic-service
        host_name             mylinux
       service_description     check-disk
       check_command        check_nrpe!check_had1
               }
define service{
        use                      generic-service
        host_name             mylinux
       service_description     check-users
       check_command        check_nrpe!check_users
               }
define service{
        use                    generic-service
        host_name           mylinux
        service_description  otal_procs
        check_command     check_nrpe!check_total_procs
}

#################################################################################
define service{
        use                    generic-service
        host_name           mylinux
        service_description  httpd
        check_command     check_http! -H 192.168.0.27
}

##################################################################################################

#########
nagios 使用FetionRobot短信/msn在线报警
  1、安装fetion 
官网地址:http://www.it‐adv.net/ 支持库安装: 需要Glibc2.4以上的版本
  
2、安装过程 下载包地址 LINUX X86/32(REDHAT ES4X32):支持库 最新程序fetion20080522004‐

linrh4.tar.gz 其中支持库和安装包内容如下:
 
# tar zxvf libraryrh4x32.tar.gz 
 libACE‐5.6.5.so 
libACE_SSL‐5.6.5.so
libcrypto.so.0.9.7a
libssl.so.0.9.7a 
# tar zxvf fetion20080522004‐linrh4.tar.gz  
我将fetion放在/../nagios/libexec/sms 
把支持库复制到/usr/lib/目录下,并作软链接如下:
 
cp lib*so* /usr/lib/ ln ‐s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4 ln ‐

s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4 
设定lib库配置文件
 
#vi /etc/ld.so.conf #增加一条 /usr/lib/ #保存退出后,执行 #ldconfig 
 2、测试安装: 
#cd install 
# ./fetion ‐h  
Usage:     
fetion ‐h        
 ‐h: help     
fetion ‐u mobile ‐p pwd [‐b batchfile] [‐EN] [‐d]    
fetion ‐u mobile ‐p pwd [‐b batchfile] [‐EN] [‐d]         
‐u: Fetion user account(only supports mobile phone No.)         
‐p: Account password         
‐b: Batch file name         
‐d: Debug and write logs to [mobile]‐debug.log         
‐EN: English 
3、实际测试 测试帐号:13888888888 密码:123456 (如果密码中含有特殊字符,请使用单引号)
 
如果发送成功。那么fetion安装过程就OK了
 
3、与nagios 组合及perl脚本
fetion 组合nagios  
1、Fetion以后台方式启动:nohup /usr/local/nagios/libexec/sms/fetion ‐u 13888888888 ‐

p 123456 >/dev/null 2>1 &
 
2、写一个perl脚本
 
Sms.pl (/../nagios/libexec/sms/sms.pl)
 
#!/usr/bin/perl ‐w 
 use strict;
 
use Data::Dumper;
 
use LWP::UserAgent;
 
my $mesg = shift;
 
$mesg =~ s/\//|/g;
 
my @number = (接收手机号,接收手机号);
 
foreach my $number ( @number ) {
 
        #print "send sms to $number \n";
 
        my $send_sms_url = "http://localhost:40000/API/buddy/sms/" . $number . "/"

. $mesg . '?rand=0.7394060082921254';
 
        my $request = HTTP::Request‐>new(GET => $send_sms_url);
 
        my $ua = LWP::UserAgent‐>new;
 
        $ua‐>timeout( 5 );
 
        $ua‐>agent

("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; Maxthon 2.0)");
 
        my $response = $ua‐>request($request);
 
        my $content = $response‐>content();
 
}
 
 4、nagios配置
  contacts.cfg添加:
 
define contact{
 
        contact_name                    sms‐members 
        use                             sms‐mail‐contact 
        alias                           Nagios Admin SMS 
        pager                          138888888888 
       }
 
 define contactgroup{
 
        contactgroup_name       admins‐and‐lijs 
        alias                   Nagios Administrators 
        members                 sms‐members 
        }
 
修改报警选项:templates.cfg 
define contact{
 
name generic‐contact                 
service_notification_period     24x7    
host_notification_period    24x7          
service_notification_options    w,u,c,r,f,s  
host_notification_options       d,u,r,f,s 
service_notification_commands notify‐service‐by‐email; service‐notify‐by‐sms 
host_notification_commands     notify‐host‐by‐email 
register                        0      
}
 
  
define contact{
 
        name                            sms‐mail‐contact 
        service_notification_period     24x7                    
        host_notification_period        24x7                 
        service_notification_options    w,u,c,r,f,s        
        host_notification_options       d,u,r,f,s    
        service_notification_commands  service‐notify‐by‐sms  
        host_notification_commands     notify‐host‐by‐email 
       register                        0

}
 
 修改调用脚本:commands.cfg 
#host‐notify‐by‐sms 
define command {
 
       command_name      host‐notify‐by‐sms 
       command_line    /usr/bin/printf "%b" "***** Nagios *****\n

\nNotification Type: $NOTIFICATIONTYPE$\n\nHost: $HOSTNAME$\nState: $HOSTSTATE$

\nWAN_IP: $HOSTALIAS$\nLAN_IP: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$

\n" | /usr/local/nagios/libexec/sms.pl 710880931 "** $NOTIFICATIONTYPE

$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
        }
 
#service notify by sms 
define command {
 
       command_name     service‐notify‐by‐sms 
       command_line     /usr/local/nagios/libexec/sms/sms.pl '$NOTIFICATIONTYPE

$ $HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$ info: $SERVICEOUTPUT$'
 }

转载于:https://blog.51cto.com/yueyang/599591

nagios配置文档相关推荐

  1. 监控系统安装配置文档(Nagios+Cacti+Nconf)

    监控系统安装配置文档(Nagios+Cacti+Nconf) 一:Nagios环境的搭建 1.为以后的配置搭建安装环境 # yum install -y http* # yum install -y ...

  2. nagios监控安装配置文档+139邮箱报警

    Linux+apache+mysql+php+nagios监控服务搭建 参考了很多文档总结出来的一个比较完整的nagios服务的搭建: nagios是一款开源监控软件,运行在LINUX/UNIX平台, ...

  3. nagios 总结_nagios配置文档总结

    暂无评价|0人阅读|0次下载|举报文档 nagios监控系统NAGIOS监控系统一点经验和总结 隋剑峰 一.介绍什么是Nagios? Nagios是...... 实战:nagios配置web方式管理和 ...

  4. Centos 5.2安装Cacti并集成Nagios安装文档

    Centos 5.2安装Cacti并集成Nagios安装文档 本文档并非原创,而是参照网上很多文档,因为不能全部都把参照者列举出来,特在此感谢我参照文档的作者. 一.本文档所用软件说明: . 二.系统 ...

  5. Java日志框架-Logback手册中文版以及官方配置文档教程

    Logback手册中文版:(链接: https://pan.baidu.com/s/1bpMyasR 密码: 6u5c),虽然版本有点旧,但是大体意思差不多,先用中文版了解个大概,然后一切最新的配置以 ...

  6. Nginx配置文档具体解释

    Nginx的配置文档具体解释.在这儿做个总结,以便以后使用的时间查看. 下面大部分自己整理.部分来自參考 #设置用户 #user  nobody; #启动进程数(一般和server的CPU同样) #能 ...

  7. 我的Debian 8.0 (jessie)配置文档

    2019独角兽企业重金招聘Python工程师标准>>> 我的Debian  8.0 (jessie)配置文档 1,添加软件源  su到root用户 vi  /etc/apt/sou ...

  8. Postfix配置文档

    环境:RedHat Linux+Postfix+Cyrus-sasl+Dovecot+Stunnel 在安装Linux时,如果选择全部安装的话,Postfix与Dovecot以及Stunnel将会自动 ...

  9. Linux keypad 设备树,SC7731客户配置文档.pdf

    SC7731客户配置文档 SC7731 客户配置文档 2014-07-09 目录 02 Add your texts here SC7731 0101 03 SC7731 软件架构简介 02 Pinm ...

最新文章

  1. mysql case when 去重_【Mysql】 case ... when ... 用法
  2. VS 2008 mfc 智能应用程序 调用 C# webservice.(二)(gsoap+wince)
  3. 【转】首先为人编写程序,其次才是计算机
  4. django 的ORM
  5. ELI5 和scikit-learn文本分类管道
  6. Spring集成Quartz定时任务框架介绍
  7. 提的最多的数据库“索引”,先来简单了解一下
  8. GWT Spring和Hibernate进入数据网格世界
  9. 荣耀30 Pro+价格曝光:顶配真的高攀不起!
  10. 使用依赖注入的ASP.NET Core 2.0用户角色基础动态菜单管理
  11. 谷歌爆苹果 Image I/O 存重大漏洞,无辜用户躺枪
  12. uniapp动态显示数组_【报Bug】uniapp 在小程序中 动态修改添加 数组 数据 ,点击获取的索引值错误...
  13. eclipse运行jsp文件时出现乱码解决方法
  14. (原创)用红黄蓝RYB色相环(伊登色相环)代替RGB(RGI/RGV)色相环
  15. 企业微信有网页版登录吗?
  16. 固定成本、可变成本、沉没成本、机会成本、边际成本
  17. 微信提醒对方账号异常应该怎么办
  18. Python gevent学习笔记-2
  19. ASP.NET项目上云实践——华为云DevCloud(图书管理系统)
  20. 深度推荐模型 -NFM

热门文章

  1. Warning:date():It is not safe to rely on the syste
  2. IBM db2安装好了以后,启动不了服务
  3. Save could not be completed. Eclipse国际化的问题解决
  4. 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
  5. 【278】◀▶ Python 数学函数说明
  6. Category中实现了原始类实例变量的get方法导致的警告
  7. ios------进度轮
  8. 我的Java开发学习之旅------gt;Java经典排序算法之希尔排序
  9. 二分搜索 2015百度之星初赛1 HDOJ 5248 序列变换
  10. PHP 根据类名和方法名已面向对象的方式执行函数。