nagios运维手册
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nagios运维手册相关的知识,希望对你有一定的参考价值。
nagios运维手册
1 前言 1.1 系统功能概述 Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。 Nagios 可以监控的功能有: 1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等); 2、监控主机资源(处理器负荷、磁盘利用率等); 3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法; 4、并行服务检查机制; 5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态; 6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式); 7、可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用; 8、自动的日志滚动功能; 9、可以支持并实现对主机的冗余监控; 10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等; 2 安装配置 2.1 安装配置nagios 2.1.1 安装依赖程序 yum install gcc glibc glibc-common gd gd-devel xinetd openssl-devel 2.1.2 创建nagios用户和用户组 useradd -s /sbin/nologin nagios mkdir /usr/local/nagios chown -R nagios.nagios /usr/local/nagios 2.1.3 安装nagios wget http://cznic.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.0.8/nagios-4.0.8.tar.gz tar zxvf nagios-4.0.8.tar.gz nagios在nginx+fcgi下会出现在web界面下设置主机信息的时候出错502,这是需要 到nagios源代码目录的cgi目录,找到cmd.c文件,搜索post,只有一个,修改为get vi /usr/local/src/nagios-4.0.8/cgi/cmd.c printf("<form method=‘post‘ action=‘%s‘>\n", COMMAND_CGI); 改成 printf("<form method=‘get‘ action=‘%s‘>\n", COMMAND_CGI); cd Nagios-4.0.8 ./configure --prefix=/usr/local/nagios make all make install make install-init make install-commandmode make install-config make install-cgis
chkconfig --add nagios chkconfig --level 3 nagios on 2.1.4 nagios目录说明 切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 这五个目录,如果存在则可以表明程序被正确的安装到系统了。Nagios 各个目录用途说明如下:
2.1.5 安装Nagiosplugins wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz tar zxvf nagios-plugins-2.0.3.tar.gz cd nagios-plugins-2.0.3 ./configure --prefix=/usr/local/nagios make && make install 2.1.6 配置nagios l 配置文件和目录说明
l resource.cfg文件 resource.cfg是nagios的变量定义文件,文件内容只有一行:
其中,变量$USER1$指定了安装nagios插件的路径,如果把插件安装在了其它路径,只需在这里进行修改即可。需要注意的是,变量必须先定义,然后才能在其它配置文件中进行引用。 l commands.cfg文件 此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可。
l hosts.cfg文件 此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息:
l services.cfg文件 此文件默认也不存在,需要手动创建,services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。
l contacts.cfg文件 contacts.cfg是一个定义联系人和联系人组的配置文件,当监控的主机或者服务出现故障,nagios会通过指定的通知方式(邮件或者短信)将信息发给这里指定的联系人或者使用者。
l timeperiods.cfg文件 此文件只要用于定义监控的时间段,下面是一个配置好的实例:
l nagios.cfg文件 nagios.cfg默认的路径为/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,所有的对象配置文件都必须在这个文件中进行定义才能发挥其作用,这里只需将对象配置文件在Nagios.cfg文件中进行引用即可。
2.1.7 验证Nagios 配置文件的正确性 Nagios 在验证配置文件方面做的非常到位,只需通过一个命令即可完成: /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 看到下面这些信息就说明没问题了,如图(图1) 图1 2.1.8 Nagios的启动与停止 l 启动Nagios /etc/init.d/nagios start l 重启Nagios /etc/init.d/nagios reload or /etc/init.d/nagios restart l 停止Nagios /etc/init.d/nagios stop 2.1.9 登陆nagios 登录Nagios Web监控页http://IP/nagios/ 查看相关信息。如图(图2) 图2
2.2 安装配置nginx 2.2.1 安装nginx 详见cacti运维手册 2.2.2 配置nginx l 修改nginx.conf配置文件(增加红色部分)
l 将nagios页面路径链接到网站文件存放路径 ln -s /usr/local/nagios/share/ /opt/nginx/html/nagios 2.2.3 nginx的perl环境 Nagios依赖PHP环境和perl环境。由于Nginx不支持Perl的CGI,这里就需要先来搭建Perl环境。让nginx支持fcgi l 安装FCGI-ProcManager模块 wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-0.73.tar.gz tar -zxvf FCGI-ProcManager-0.73.tar.gz cd FCGI-ProcManager-0.73 perl Makefile.PL make make install
l 安装FCGI-0.73 tar zxvf FCGI-0.73.tar.gz cd FCGI-0.73 perl Makefile.PL make make install
l 安装IO和IO::ALL模块 wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.25.tar.gz tar -zxvf IO-1.25.tar.gz cd IO-1.25 perl Makefile.PL make make install
wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.41.tar.gz tar -zxvf IO-All-0.41.tar.gz cd IO-All-0.41 perl Makefile.PL make make install
l 下载Perl脚本,这个脚本的目的就是产生一个PERL的FastCGI接口,让Nginx可以以CGI方式处理Perl。 wget http://www.mike.org.cn/wp-content/uploads/2011/07/perl-fcgi.zip unzip perl-fcgi.zip mv perl-fcgi.pl /opt/nginx/ chmod 755 /opt/nginx/perl-fcgi.pl
l 建立一个CGI启动/停止脚本,注意pidfile和dir路径。 vi /etc/init.d/perl-fcgi
chmod 755 /etc/init.d/perl-fcgi chkconfig --add perl-fcgi chkconfig perl-fcgi on
由于启动脚本里使用了sudo,所以当服务器重启并加载这个服务脚本时会提示需要一个tty,导致fcgi不能随服务器一起启动起来,所以要修改/etc/sudoers vi /etc/sudoers Defaults requiretty,修改为 Defaults:webuser! requiretty 表示仅webuser用户不需要控制终端。 启动脚本,正常情况下在/opt/nginx/logs下生成perl-fcgi.sock这个文件,如果没有生成,请检查下上面的步聚。
vi /usr/local/nagios/etc/cgi.cfg use_authentication=1 #把1修改为0,保存 l 启动nginx /etc/init.d/nginx start
2.3 安装配置PHP 详见cacti运维手册 2.4 安装插件ndoutils (如果要整合cacti,此步跳过看2.5) 该插件可以将nagios监控结果保存到mysql中 cd ndoutils-2.0.0 ./configure --enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios make l 将源目录下的相关文件考到相应位置并修改权限 cp src/{ndomod-4x.o,ndo2db-4x,log2ndo,file2sock} /usr/bin/ cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg chown nagios.nagios /usr/local/nagios/etc/ndo* l 生成数据库 mysql> create database nagios; Query OK, 1 row affected (0.02 sec) mysql> grant all on nagios.* to [email protected] IDENTIFIED BY ‘nagios123‘; Query OK, 0 rows affected (0.07 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye
l 修改ndo2db配置文件 vi /usr/local/nagios/etc/ndo2db.cfg db_host=127.0.0.1 db_port=3306 db_name=nagios db_prefix=nagios_ db_user=nagios db_pass=nagios123 l 将ndo2db启动脚本放到系统目录下 cp /usr/local/src/ndoutils-2.0.0/daemon-init /etc/init.d/ndo2db l 编辑该启动脚本 vi /etc/init.d/ndo2db Ndo2dbBin=/usr/bin/ndo2db-4x l 修改启动脚本权限并启动 chmod +x /etc/init.d/ndo2db chkconfig --add ndo2db chkconfig ndo2db on /etc/init.d/ndo2db start l 修改nagios配置文件,让nagios支持ndomod这个broker vi /usr/local/nagios/etc/nagios.cfg broker_module=/usr/bin/ndomod-4x.o config_file=/usr/local/nagios/etc/ndomod.cfg event_broker_options=-1 l 重启nagios /etc/ini.d/nagios restart 2.5 整合cacti和nagios 2.5.1 安装配置ndoutils插件 该插件可以将nagios监控结果保存到mysql中 wget http://nchc.dl.sourceforge.net/project/nagios/ndoutils-2.x/ndoutils-2.0.0/ndoutils-2.0.0.tar.gz cd ndoutils-2.0.0 ./configure --enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios make l 将源目录下的相关文件考到相应位置并修改权限 cp src/{ndomod-4x.o,ndo2db-4x,log2ndo,file2sock} /usr/bin/ cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg chown nagios.nagios /usr/local/nagios/etc/ndo* l 修改ndo2db配置文件 vi /usr/local/nagios/etc/ndo2db.cfg db_host=127.0.0.1 db_port=3306 db_name=cacti db_prefix=npc_ db_user=cacti db_pass=cacti100 l 将ndo2db启动脚本放到系统目录下 cp /usr/local/src/ndoutils-2.0.0/daemon-init /etc/init.d/ndo2db l 编辑该启动脚本 vi /etc/init.d/ndo2db Ndo2dbBin=/usr/bin/ndo2db-4x l 修改启动脚本权限并启动 chmod +x /etc/init.d/ndo2db chkconfig --add ndo2db chkconfig ndo2db on /etc/init.d/ndo2db start l 修改nagios配置文件,让nagios支持ndomod这个broker vi /usr/local/nagios/etc/nagios.cfg broker_module=/usr/bin/ndomod-4x.o config_file=/usr/local/nagios/etc/ndomod.cfg event_broker_options=-1 l 重启nagios /etc/ini.d/nagios restart 2.5.2 安装npc插件 l 下载插件 wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz l 安装插件 mv npc /opt/nginx/html/cacti/plugins/ chown webuser. -R /opt/nginx/html/cacti/plugins/ l 登陆cacti,安装npc插件,如图(图3) 图3
l 配置 npc Console -> Settings -> npc 钩选Remote Commands Nagios Command File Path: /usr/local/nagios/var/rw/nagios.cmd Nagios URL: http://yourserver/Nagios 如图(图4) 图4
l 添加执行权限 chmod +x /usr/local/nagios/var/rw/nagios.cmd
l mysql修改表结构,否则npc无数据 alter table npc_eventhandlers add long_output TEXT NOT NULL default ‘‘ after output; alter table npc_hostchecks add long_output TEXT NOT NULL default ‘‘ after output; alter table npc_hoststatus add long_output TEXT NOT NULL default ‘‘ after output; alter table npc_notifications add long_output TEXT NOT NULL default ‘‘ after output; alter table npc_servicechecks add long_output TEXT NOT NULL default ‘‘ after output; alter table npc_servicestatus add long_output TEXT NOT NULL default ‘‘ after output; alter table npc_statehistory add long_output TEXT NOT NULL default ‘‘ after output; alter table npc_systemcommands add long_output TEXT NOT NULL default ‘‘ after output; 2.5.3 登陆nagios 登录Nagios Web监控页http://IP/nagios/ 查看相关信息。如图(图5) 图5
3 监控设置 3.1 nrpe监控 3.1.1 前言 上面已经对远程Linux 主机是否存活做了监控,而判断远程机器是否存活,我们可以使用ping 工具对其监测。还有一些远程主机服务,例如ftp、ssh、http,都是对外开放的服务,即使不用Nagios,我们也可以试的出来,随便找一台机器看能不能访问这些服务就行了。但是对于像磁盘容量,cpu负载这样的“本地信息”,Nagios只能监测自己所在的主机,而对其他的机器则显得有点无能为力。毕竟没得到被控主机的适当权限是不可能得到这些信息的。为了解决这个问题,nagios有这样一个附加组件--“NRPE”,用它就可以完成对Linux 类型主机"本地信息”的监控。 3.1.2 工作原理图,如图(图6) 图6 NRPE 总共由两部分组成: check_nrpe 插件,位于监控主机上 NRPE daemon,运行在远程的Linux主机上(通常就是被监控机) 按照上图,整个的监控过程如下: 当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时: Nagios 会运行check_nrpe 这个插件,告诉它要检查什么; check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL; NRPE daemon 会运行相应的Nagios 插件来执行检查; NRPE daemon 将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。 注意:NRPE daemon 需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。 3.1.3 安装nagiosplugins(被监控机) nagios监控linux服务器,需要让被监控的linux服务器安装nrpe+nagiosplugins wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz tar zxvf nagios-plugins-2.0.3.tar.gz cd nagios-plugins-2.0.3 ./configure --prefix=/usr/local/nagios make && make install 3.1.4 安装nrpe(被监控机,监控机) l 创建nagios用户 useradd nagios 设置禁止nagios用户登陆 nagios:x:500:500::/home/nagios:/sbin/nologin l 下载nrpe wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz tar zxvf nrpe-2.15.tar.gz cd nrpe-2.15 ./configure make all 安装check_nrpe 这个插件 make install-plugin (监控机) 监控机需要安装check_nrpe 这个插件,被监控机并不需要,我们在这里安装它只是为了测试目的。
安装deamon make install-daemon (被监控机)
安装配置文件 make install-daemon-config (被监控机)
3.1.5 安装xinted(被监控机) yum install xinetd l 安装xinted 脚本 make install-xinetd(接上面安装nrpe) 可以看到创建了这个文件 l 编辑这个脚本: 在only_from 后增加监控主机的IP地址。(如图,图7) vi /etc/xinetd.d/nrpe 图7 l 编辑/etc/services文件,增加NRPE服务 vi /etc/services (如图,图8) 图8 l 启动xinted 服务 /etc/init.d/xinetd start 查看NRPE 是否已经启动(如图,图9) 图9 l 测试NRPE是否则正常工作 使用上面在被监控机上安装的check_nrpe 这个插件测试NRPE 是否工作正常。 /usr/local/nagios/libexec/check_nrpe -H 10.0.0.101 会返回当前NRPE的版本,也就是在本地用check_nrpe连接nrpe daemon是正常的。(如图,图10)
图10 3.1.6 check_nrpe(被监控机) check_nrpe –H 被监控的主机 -c 要执行的监控命令 注意:-c 后面接的监控命令必须是nrpe.cfg 文件中定义的。也就是NRPE daemon只运行nrpe.cfg中所定义的命令。 l nrpe配置文件 vi /usr/local/nagios/etc/nrpe.cfg
红色部分是命令名,也就是check_nrpe 的-c 参数可以接的内容,等号 “=” 后面是实际执行的插件程序(这与commands.cfg 中定义命令的形式十分相似,只不过是写在了一行)。也就是说check_users 就是等号后面/usr/local/nagios/libexec/check_users -w 5 -c 10 的简称。 我们可以很容易知道上面这5行定义的命令分别是检测登陆用户数,cpu负载,sda1的容量,僵尸进程,总进程数。各条命令具体的含义见插件用法(执行“插件程序名 –h”)。
l 命令测试 被监控机测试: /usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 OK - load average: 1.17, 1.16, 1.11|load1=1.170;15.000;30.000;0; load5=1.160;10.000;25.000;0; load15=1.110;5.000;20.000;0; /usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2 DISK OK - free space: /oracle 25443 MB (53% inode=97%);| /oracle=22392MB;40316;45356;0;50396 监控机测试: ./check_nrpe -H 10.0.0.101 -c check_load OK - load average: 1.11, 1.10, 1.09|load1=1.110;15.000;30.000;0; load5=1.100;10.000;25.000;0; load15=1.090;5.000;20.000;0; ./check_nrpe -H 10.0.0.101 -c check_sda2 DISK OK - free space: /oracle 25443 MB (53% inode=97%);| /oracle=22392MB;40316;45356;0;50396
3.1.7 check_nrpe(监控机) l 在commands.cfg中增加对check_nrpe的定义 vi /usr/local/nagios/etc/objects/commands.cfg 增加如下内容: define command{ command_name check_nrpe command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } -c 后面带的$ARG1$ 参数是传给nrpe daemon 执行的检测命令,之前说过了它必须是nrpe.cfg 中所定义的那5条命令中的其中一条。在services.cfg 中使用check_nrpe 的时候要用 “!” 带上这个参数。 l 定义主机的监控 下面就可以在services.cfg 中定义主机的监控了。 define service{ use generic-service host_name CPP-Linux service_description Current Load check_command check_nrpe!check_load }
define service{ use generic-service host_name CPP-Linux service_description Check Disk sda2 check_command check_nrpe!check_sda2 }
define service{ use generic-service host_name CPP-Linux service_description Check Disk sdb1 check_command check_nrpe!check_sdb1 } l 所有的配置文件已经修改好了,现在重启Nagios。 /etc/init.d/nagios restart 3.1.8 附录CPU load average解析 l 什么是load average linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度。 Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。 我们可以通过系统命令"w"查看当前load average情况 [[email protected] ~]# w 20:01:55 up 76 days, 8:20, 6 users, load average: 1.30, 1.48, 1.69
上面内容显示系统负载为“1.30, 1.48, 1.69”,这3个值是什么意思呢? 第一位1.30:表示最近1分钟平均负载 第二位1.48:表示最近5分钟平均负载 第三位1.69:表示最近15分钟平均负载 PS. linux系统是5秒钟进行一次Load采样 l load average值的含义 单核处理器 假设我们的系统是单CPU单内核的,把它比喻成是一条单向马路,把CPU任务比作汽车。当车不多的时候,load <1;当车占满整个马路的时候 load=1;当马路都站满了,而且马路外还堆满了汽车的时候,load>1。如图: 多核处理器 我们经常会发现服务器Load > 1但是运行仍然不错,那是因为服务器是多核处理器(Multi-core)。 假设我们服务器CPU是2核,那么将意味我们拥有2条马路,我们的Load = 2时,所有马路都跑满车辆。如图: #查看CPU core grep ‘model name‘ /proc/cpuinfo | wc -l l 什么样的Load average值要提高警惕 0.7 < load < 1: 此时是不错的状态,如果进来更多的汽车,你的马路仍然可以应付。 load = 1: 你的马路即将拥堵,而且没有更多的资源额外的任务,赶紧看看发生了什么吧。 load > 5: 非常严重拥堵,我们的马路非常繁忙,每辆车都无法很快的运行。 l 三种Load值,应该看哪个 通常我们先看15分钟load,如果load很高,再看1分钟和5分钟负载,查看是否有下降趋势。 1分钟负载值 > 1,那么我们不用担心,但是如果15分钟负载都超过1,我们要赶紧看看发生了什么事情。所以我们要根据实际情况查看这三个值。 3.2 自定义snmp监控 3.2.1 前言 Nagios插件可以用任何一门编程语言来编写,只要该编程语言在运行Nagios的平台上得到支持。Bash是用来编写Nagios插件的一门流行语言,因为它功能强大、使用简单。 借助插件进行的每一次有效的Nagios检查(Nagios check)都会生成一个数字表示的退出状态。可能的状态有: ● 0--各方面都正常,检查成功完成。 ● 1--资源处于警告状态。某个地方不太妙。 ● 2--资源处于临界状态。原因可能是主机宕机或服务未运行。 ● 3--未知状态,这未必表明就有问题,而是表明检查没有给出一个清楚明确的状态。 (状态由/usr/local/nagios/libexec/utils.sh脚本定义) 插件还能输出文本消息。默认情况下,该消息显示在Nagios web界面和Nagios邮件警报信息中。尽管消息并不是硬性要求,你通常还是可以在可用插件中找到它们,因为消息告诉用户出了什么岔子,而不会迫使用户查阅说明文档。 3.2.2 工作原理图,如图(图11) 图11 原理图解释: 1. 首先在被监控机上编写自定义监控的脚本,并给出监控信息。 2. 将监控信息赋予OID号给予snmp程序 3. snmp程序将OID号通过snmp端口协议发送给监控机。 4. 监控机通过check_snmp_extend.sh脚本拿取OID号里的内容判断监控结果。 5. nagios程序将定时拿取check_snmp_extend.sh脚本给出的监控结果并判断是否报警。 3.2.3 自定义监控脚本(被监控机) 比如这里编写一个判断CPP主程序是否存在的脚本,内容如下:
程序存在将显示OK,不存在显示CRITICAL(这里显示内容其他自定义脚本也必须一样,这样监控机脚本方便进行判断) 3.2.4 snmp设置(被监控机) l 修改snmpd.conf配置文件 vi /etc/snmp/snmpd.conf 在最后一行加入 extend .1.3.6.1.4.1.2023.1 cpp /usr/local/bin/cpp.sh 关于oid号选择详见cacti运维手册
l 重启snmpd服务 /etc/init.d/snmpd restart
3.2.5 使用nagios的check_snmp(监控机) 注意:如果使用check_snmp,3.2.6和3.2.7就不必操作 l 使用nagios自带的check_snmp命令来判断 /usr/local/nagios/libexec/check_snmp -H 115.29.224.191 -C logic2015 -o .1.3.6.1.4.1.2023.1.4.1.2.11.99.104.101.99.107.95.109.121.115.113.108.1 -r OK l 修改nagios配置 vi /usr/local/nagios/etc/objects/commands.cfg 修改如下配置: define command{ command_name check_snmp command_line $USER1$/check_snmp -H $HOSTADDRESS$ -C logic -o $ARG1$ -r OK –l $ARG2$ } l 在services.cfg中增加监控 define service{ use generic-service host_name aliyun-linux-115.29.224.191 service_description Check Mysql Program check_command check_snmp!.1.3.6.1.4.1.2023.1.4.1.2.11.99.104.101.99.107.95.109.121.115.113.108.1!"Check Mysql Program" } 3.2.6 安装check_snmp_extend.sh(监控机) l 下载check_snmp_extend.sh wget http://www.logix.cz/michal/devel/nagios/check_snmp_extend.sh l 修改check_snmp_extend.sh 由于check_snmp_extend.sh本身脚本有些问题,要进行修改,修改后内容如下:
3.2.7 nagios配置(监控机) l 在commands.cfg中增加对check_snmp_extend.sh的定义 vi /usr/local/nagios/etc/objects/commands.cfg 增加如下内容: define command{ command_name check_snmp_extend command_line $USER1$/check_snmp_extend.sh $HOSTADDRESS$ $ARG1$ }
l 在services.cfg中增加监控 vi /usr/local/nagios/etc/objects/ service.cfg 增加如下内容: define service{ use generic-service host_name CPP-Linux service_description Check For CPP check_command check_snmp_extend!.1.3.6.1.4.1.2023.1.4.1.2.3.99.112.112.1 } 注意:check_snmp_extend!后面写的就是OID号
l 重启nagios /etc/init.d/nagios restart
4 报警设置 4.1 邮件报警 4.1.1 前言 由于公司监控服务器处于内网环境,所以无法直接发送邮件到外网邮箱。公司有台外网邮件服务器,现在是通过发邮件到这台外网邮件服务器再转发到运维人员邮箱。 4.1.2 转发流程图 下面是转发流程图(图12) 图12 1. nagios监控服务器需要报警将邮件发送到邮件服务器 2. 邮件服务器根据配置转发到运维人员的邮箱。 4.1.3 nagios配置 l contacts.cfg配置 vi /usr/local/nagios/etc/objects/contacts.cfg define contact{ name generic-contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-service-by-email,notify-service-by-sms host_notification_commands notify-host-by-email,host-notify-by-sms }
define contact{ contact_name admin use generic-contact alias Nagios Admin email [email protected] pager 139111111 }
define contactgroup{ contactgroup_name admin alias Technical Support members admin } 注:因为是邮件转发,只需设置一个用户即可。其他用户在转发设置中配置。
4.1.4 转发设置 l 登陆邮件服务器,新建邮箱账号 useradd nagios l 设置转发 vi /home/nagios/.forward 写入转发的邮箱即可
本文出自 “桃子技术” 博客,请务必保留此出处http://taozijishu.blog.51cto.com/11320335/1959399 以上是关于nagios运维手册的主要内容,如果未能解决你的问题,请参考以下文章 |