Nagios4.x安装配置总结

1.  Nagios介绍

Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。

Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

1.1监控范围

1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);

2、监控主机资源(处理器负荷、磁盘、内存利用率等);

3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;

4、并行服务检查机制;

5、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);

6、自动的日志滚动功能;

7、可以支持并实现对主机冗余监控;

8、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

1.2监控方式

Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、NSClient++和NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。而四个ADDON中,NRPE用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控;NSCA用来让被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到);NSClient++是用来监控Windows主机时安装在Windows主机上的组件;而NDOUtils则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理。这四个ADDON(附件)中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端。

目前,Nagios只能安装在Linux系统主机上,其编译需要用到gcc。同时,如果打算使用web界面的管理工具的话,还需要有apache服务器和GD图形库的支持。

1.3报警方式

其次,我们再来看nagios监控的表现形式。监控的主要目的是当监控的对象发生故障或资源紧张时及时通知相关人员,以便问题得到迅速的处理。追求的效果就是"在老板和客户发现问题之前得到及时、有效的通知",假定故障通知来自老板,我想大家都不会很愉快的。Nagios为了方便我们的管理工作,提供了至少3种表现手段:
  1、web方式,即通过浏览器观看被监控的对象;如正常状态下,其状态(status)是以蓝色填充并显示一个OK。
  2、邮件通知,发生故障时,到达设定重试次数和探测间隔时间后发送邮件给管理员或相关人员,报告问题的大致情况。
  3、手机短信,这是非常有用和及时的功能了;晚上熟睡中,再也没可能看web页面或查阅邮件,可以一旦发生故障,手机短信却能把你随时唤醒。 

1.4性能图表

 可以查看主机状态、系统资源、服务状态等的历史记录(24小时/一周/一年)

以cpu使用情况为例,以下分别为24小时/一周/一年 的服务器的cpu使用情况(包括使用情况的当前大小、最大值和平均值)

 

2.  Nagios安装及配置

 2.1 安装依赖包

依赖包以yum方式安装。Yum的配置方法在这里就不多介绍了(建议通过公网的yum源进行安装)。

yum install -y httpd httpd-manual httpd-devel  php php-mysql mysql-devel php-pear \

php-gd php-pdo php-ldap php-xml perl-DBI perl-CPAN perl-Digest-SHA1 \

perl-Digest-HMAC perl-Socket6 perl-IO-Socket-INET6 net-snmp-devel dmidecode \

net-snmp net-snmp-perl net-snmp-utils gcc-c++ glib2-devel graphviz pango \

cairo-devel libxml2-devel pango-devel perl-Time-HiRes \

gd gd-devel libjpeg-turbo libjpeg-turbo-devel libXpm libXpm-devel

注: gd、zlib、jpeg为图形所需的包,若未安装上,将没有nagios map

针对操作系统默认安装的软件包不同,安装的依赖包也有所差异。以上安装的依赖包是针对系统为精简安装所需要安装的依赖包。

2.2 修改snmp配置

Nagios的监控方式有很多,snmp的方式主要是针对以后要监控服务器网卡流量信息。

vim /etc/snmp/snmpd.conf

41    com2sec notConfigUser 127.0.0.1 public

62    access notConfigGroup "" any noauth exact all none none

85    view all included .1 80

 

service snmpd restart

chkconfig snmpd on

2.3    安装Nagios

目前可使用以下最新版的安装包

2.3.1   创建naigios程序用户、组

useradd -s /sbin/nologin nagios

mkdir /usr/local/nagios

chown -R nagios.nagios /usr/local/nagios/

2.3.2   安装Nagios

tar zxf nagios-4.4.4.tar.gz

cd nagios-4.4.4

./configure --with-command-group=nagcmd --prefix=/usr/local/nagios/

make all && make install && make install-daemoninit && make install-commandmode && make install-config && make install-webconf

 

#注: make install-webconf将自动生成nagios web配置 文件,也就无需手动去httpd.conf中添加相应的配置。

make install-exfoliation

#注: make install-exfoliation为naigios新的界面,想要换成以前老的见面需要执行make install-classicui老的界面

 

2.3.3 安装Nagios插件

 

tar zxf nagios-plugins-2.2.1.tar.gz

cd nagios-plugins-2.2.1

./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/

make ;make install

2.3.4 创建Naigios登陆认证

#注: Nagios默认的apache认证文件位于“/usr/local/nagios/etc/htpasswd”

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

#注: nagiosadmin为登陆nagios的用户名,下面是需要输入的密码。

New password:

Re-type new password:

Adding password for user nagiosadmin

 

service httpd restart

chkconfig httpd on

2.3.5 安装Nrpe插件

Nrpe插件是Nagios监控的主要方式。详细监控方式如下:

#注: 建议从http://www.nagios.org官网下载最新的Nrpe插件。安装方式如下:

 

tar zxf nrpe-3.2.1.tar.gz

cd nrpe-3.2.1

./configure –prefix=/usr/local/nagios --enable-command-args

make all && make install && make install-config && make install-init

 

将nrpe添加为系统服务

vi /etc/services

nrpe            5666/tcp                # NRPE

 

#注: 需要为nagios添加nrpe命令

vi /usr/local/nagios/etc/objects/commands.cfg

...

define command{

        command_name      check_nrpe

        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

       }

 

2.3.6 安装rrdtools工具

 

tar zxf rrdtool-1.7.0.tar.gz

cd rrdtool-1.7.0

./configure --prefix=/usr/local/rrdtool

make;make install

2.3.7 安装PNP

tar zxvf  pnp4nagios-0.6.26.tar.gz

cd pnp4nagios-0.6.26

./configure --prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool \

            --with-perl_lib_path=/usr/local/rrdtool/lib/perl/5.10.1/x86_64-linux-thread-multi/

make all && make fullinstall

#注:make install-webconf将在/etc/httpd/conf.d/产生其配置文件pnp4nagios.conf 

2.4 配置Nagios

A)创建默认配置文件

cd /usr/local/pnp4nagios/etc

cp misccommands.cfg-sample misccommands.cfg

cp nagios.cfg-sample nagios.cfg

cp rra.cfg-sample rra.cfg-sample

cd /usr/local/pnp4nagios/etc/pages

cp web_traffic.cfg-sample web_traffic.cfg

/usr/local/pnp4nagios/etc/check_commands

cp check_all_local_disks.cfg-sample check_all_local_disks.cfg

cp check_nrpe.cfg-sample check_nrpe.cfg

cp check_nwstat.cfg-sample check_nwstat.cfg

chown -R nagios:nagios /usr/local/pnp4nagios

 

B)修改process_perfdata.cfg

#修改Nagios主配置文件,增加曲线图

vi /usr/local/nagios/etc/nagios.cfg

833 process_performance_data=1

845 host_perfdata_command=process-host-perfdata

846 service_perfdata_command=process-service-perfdata

 

# templates.cfg在末行添加如下信息

#此配置为自定web界面的图形位置

vi /usr/local/nagios/etc/objects/templates.cfg

define host{

        name       host-pnp

        register   0

        action_url /pnp4nagios/graph?host=$HOSTNAME$

        }

define service{

        name       srv-pnp

        register   0

        action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$

        }

 

C)修改nagios commands.cfg,让PNP在后台自动生成性能曲线图

vi /usr/local/nagios/etc/objects/commands.cfg

# 'process-host-perfdata' command definition

define command{

         command_name    process-host-perfdata

         command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl  -d HOSTPERFDATA

         }

 # 'process-service-perfdata' command definition

 define command{

         command_name    process-service-perfdata

         command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl

         }

#修改PNP日志级别(若pnp配置有问题,可以通过该日志排错)

vi /usr/local/pnp4nagios/etc/process_perfdata.cfg

#Loglevel 0=silent 1=normal 2=debug

LOG_LEVEL = 2

LOG_FILE = /usr/local/pnp4nagios/var/perfdata.log

 

#注意:配置完成后,需要等几分钟后才会有曲线图。

(曲线图的数据默认存放位置为:“ /usr/local/pnp4nagios/var/perfdata”  过个几分钟后该目录会生成相应的监控数据文件)

 

#删除pnp的默认web页面

cd /usr/local/pnp4nagios/share/

mv install.php install.php.bak

2.4.2 修改Nagios授权用户

#默认nagios仅允许nagiosadmin用户登陆。若在步骤“2.3.4 创建Naigios登陆认证”添加的为别的用户(如:user),则需要修改cgi.cfg文件。多个用户之间用逗号隔开(如:nagiosadmin,user)。

vi /usr/local/nagios/etc/cgi.cfg

authorized_for_system_information=nagiosadmin,user

authorized_for_configuration_information=nagiosadmin,user

authorized_for_system_commands= nagiosadmin,user 

authorized_for_all_services= nagiosadmin,user

authorized_for_all_hosts= nagiosadmin,user

authorized_for_all_service_commands= nagiosadmin,user

authorized_for_all_host_commands= nagiosadmin,user

2.4.3 修改Nagios配置文件

vi /usr/local/nagios/etc/nagios.cfg

# directive as shown below:

cfg_dir=/usr/local/nagios/etc/objects/文件夹

#文件夹可根据项目名自定义,存放以.cfg结尾的配置文件。

# Definitions for monitoring the local (Linux) host

#cfg_file=/usr/local/nagios//etc/objects/localhost.cfg

#默认监控localhost,可根据需求是否注释

2.4.4 添加被监控主机配置文件

进入“/usr/local/nagios/etc/objects/文件夹”目录。创建一个以.cfg结尾的配置文件。例:

cd /usr/local/nagios/etc/objects/文件夹

touch linux.cfg

touch windows.cfg

#具体配置信息可参考如下配置

2.4.4.1 被监控主机为linux

#-------------------------------- linux server ------------------------#

#--------------------------------- hosts -----------------------------#

define host{

        use                     linux-server,host-pnp

        host_name               zhujiming

        alias                   bieming

        address                 ipdizhi

#        icon_image        image_file      

#        icon_image_alt           alt_string      

#        vrml_image        image_file

#        parents                 zhujiming            

#        statusmap_image         server.png

#        2d_coords               200,200

#        3d_coords               200,200,100

        }

#zhujiming -- 主机名

#bieming   -- 别名     

#ipdizhi   -- p地址

#-------------------------------- services ---------------------------#

define service{                                   #监控cpu

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     CPU_Usage

        check_command           check_nrpe!check_cpu                    

        }

define service{                                   #监控swap

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     Swap_Usage

        check_command           check_nrpe!check_swap                 

        }

define service{                                   #监控mem

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     Mem_Usage

        check_command           check_nrpe!check_memory                    

        }

define service{                                   #监控目录大小

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     /_Usage

        check_command           check_nrpe!check_/                 

        }

define service{                                         #监控IO百分比

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     IO_%util

        check_command           check_nrpe!check_diskio

        }

define service{                                         #监控磁盘IO

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     IO_r/w

        check_command           check_nrpe!check_iostat

        }

#define service{                                 #监控服务

#     use                generic-service,srv-pnp

#        host_name               zhujiming

#        service_description     web

#        check_command           check_http      

#        }

#define service{                                 #监控端口

#     use                generic-service,srv-pnp

#        host_name               zhujiming

#        service_description     tomcat

#        check_command           check_tcp!8080      

#        }

#define service{                                 #监控网卡流量

#        use                     generic-service,srv-pnp

#        host_name               zhujiming

#        service_description     traffic

#     check_command           check_nrpe!check_traffic

#        }                                               

#define service{                                 #监控负载

#        use                     generic-service,srv-pnp

#        host_name               zhujiming

#        service_description     CPU Load

#        check_command           check_nrpe!check_load                

#        }

2.4.4.2 被监控主机为windows

#-------------------------------- windows server ------------------------#

#--------------------------------- hosts -----------------------------#

define host{

        use                     windows-server,host-pnp

        host_name               zhujiming

        alias                   bieming

        address                 ipdizhi

#        icon_image              image_file

#        icon_image_alt          alt_string

#        vrml_image              image_file

#        parents                 zhujiming

#        statusmap_image         server.png

#        2d_coords               200,200

#        3d_coords               200,200,100

        }

#zhujiming -- 主机名

#bieming   -- 别名     

#ipdizhi   -- p地址

#-------------------------------- services ---------------------------#

define service{                                                 #监控CPU

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     CPU Load

        check_command           check_nt!CPULOAD!-l 5,80,90                 

        }

define service{                                                 #监控内存

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     Memory Uadminsge

        check_command           check_nt!MEMUSE!-w 80 -c 90        

        }

define service{                                                 #监控磁盘使用情况

        use                     generic-service,srv-pnp

        host_name               zhujiming

        service_description     D:\ Drive Space

        check_command           check_nt!USEDDISKSPACE!-l d -w 80 -c 90

        }

#define service{                                               #监控服务

#        use                     generic-service,srv-pnp

#        host_name               zhujiming

#        service_description     web

#        check_command           check_http                    

#        }

#define service{                                               #监控端口

#     use                generic-service,srv-pnp

#        host_name               zhujiming

#        service_description     tomcat

#        check_command           check_tcp!8080                    

 

#define service{                                               #监控网卡流量

#        use                     generic-service,srv-pnp

#        host_name               zhujiming

#        service_description     traffic

#        check_command           check_traffic!2 -w 600,600 -c 800,800    

#        }

#define service{                                               #监控服务

#        use                     generic-service,srv-pnp

#        host_name               zhujiming

#       service_description  SNMP

#     check_command           check_nt!SERVICESTATE!-d SHOWALL -l "SNMP Service"   

#     }

2.4.5 主机组和服务组的配置

修改nagios主配置文件,添加主机组和服务组的配置文件

vi /usr/local/nagios/etc/nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg

cfg_file=/usr/local/nagios/etc/objects/servicegroups.cfg

#具体配置信息可参考如下配置

2.4.5.1 主机组的配置

vi /usr/local/nagios/etc/objects/hostgroups.cfg

define hostgroup{

        hostgroup_name          windows-servers

        alias                   windows机器

        }

#define hostgroup{

#        hostgroup_name          template

#     alias            模版

#        members              host1,host2,

#     }

2.4.5.2 服务组的配置

vi /usr/local/nagios/etc/objects/servicegroups.cfg

#define servicegroup{

#        servicegroup_name      template1

#        alias                  模版1

#        members                   host1,service1,host2,service1,

#     }

#define servicegroup{

#        servicegroup_name       template2

#        alias                   模版2

#        members                 host1,service1,host2,service2,

#     }

3.  Nagios客户端配置

3.1 Linux客户端安装(以Centos5.5为例)

3.1.1 安装客户端及相关软件包

#注: 建议从http://www.nagios.org官网下载最新的nagios插件及nrpe软件包。安装方式如下:

useradd -s /sbin/nologin Nagios

tar zxf nagios-plugins-1.4.16.tar.gz

tar zxf nrpe-2.12.tar.gz

cd nagios-plugins-1.4.16

./configure ;make ;make install

cd ../nrpe-2.14

./configure ; make all ; make install-plugin ; make install-daemon ; make install-daemon-config

3.1.2 配置客户端

A)#让客户端允许nagios服务端监控(服务端地址以192.168.1.100为例)

sed -i 's/allowed_hosts=.*/allowed_hosts=127.0.0.1,192.168.1.100/g' /usr/local/nagios/etc/nrpe.cfg

B)#若要监控客户端的swap,数据盘等信息,需要修改客户端的配置文件

echo 'command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

#command[check_data]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /

#command[check_traffic]=/usr/local/nagios/libexec/check_traffic.sh  -V 2c -C public -H 127.0.0.1 -I 2 -w 800,800 -c 1000,1000 -K -b

command[check_/]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /

command[check_memory]=/usr/local/nagios/libexec/check_memory.pl -u -w 80 -c 90

command[check_diskio]=/usr/local/nagios/libexec/check_diskio.sh -d dm-0 -w 60 -c 80

command[check_iostat]=/usr/local/nagios/libexec/check_iostat.sh -d dm-0 -w 20 -c 30

command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh -w 80 -c 90' >> /usr/local/nagios/etc/nrpe.cfg

#注:[check_swap]可自定义,但需要与服务端的配置文件中的命令相同。

# check_iostat.sh -d dm-0 -w 20 -c 30 脚本后面跟的为报警参数,具体信息可通过

/usr/local/nagios/libexec/check_iostat.sh --help查看。

 

C)#启动Nagios客户端:

sed -i "s#127.0.0.1#$nagios_server#g" /etc/xinetd.d/nrpe

grep "nrpe" /etc/services

if [ $? -eq 0 ];then

        echo "ok"

else

echo "nrpe 5666/tcp # nrpe" >> /etc/services

fi

/etc/init.d/xinetd start

chkconfig xinetd on

#旧版本的启动方式有两种

一:

通过xinetd服务启动

二:

使用命令手动启动

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

echo ‘/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

’ >> /etc/rc.local

netstat -an|grep 5666

##察看是否在5666端口上监听

##注意:防火墙 释放端口5666,很重要

 

# 可在服务端通过check_nrpe测试(-c指定的check_cpu是在client配置的)

/usr/local/nagios/libexec/check_nrpe -H 192.168.222.202 -c check_cpu

 

D)服务器端的配置请参阅:被监控主机为linux

3.2 Windows客户端安装

3.2.1 安装客户端

A)上传软件包:NSCP-0.5.0.62-x64

B)双击运行

选择“generic”(op5没研究过)

Typical:默认安装

Custom:自定义安装

Complete:完全安装

选择默认安装即可

 

Allowed hosts:添加nagios server的IP,多个ip要以“,”分割;

勾选Enable nsclient server(check_nt)

3.2.2  配置客户端

A)  修改Nagios Server地址

编辑nsclient.ini文件(位于C:\Program Files\NSClient++\目录)并做如下修改:

 

B)启动服务的方法

进入命令提示符:win+r

键入: services.msc

找到NSClient++,右键重新启动即可。

 

确认端口已启动

# 可在服务端通过check_nt测试

/usr/local/nagios/libexec/check_nt -H 192.168.222.204 -v CPULOAD -p 12489 -l 5,80,90 -w 80 -c 90

CPU Load 0% (5 min average) |   '5 min avg Load'=0%;80;90;0;100

C)服务器端的配置请参阅:《被监控主机为windows

4.  Nagios报警设置

4.1 Nagios检测频率相关设置

Windows与linux监控的模板基本相同,详细信息可查看“templates.cfg”

cat /usr/local/nagios/etc/objects/templates.cfg

# Linux host definition template - This is NOT a real host, just a template!

# Windows host definition template - This is NOT a real host, just a template!

#Host监控模板信息

 check_interval          5 #主机每5分钟检查一次

 retry_interval          1 #如果主机出现问题,每1分钟检查一次

 max_check_attempts      10  #如果主机出现问题,每1分钟检查一次,共检查10次

notification_interval   30 #定义发送报警的频率,每30分钟发一次

#service监控模板信息

notification_options    w,u,c,r      ; Send notifications about warning, unknown, critical, and recovery events                #定义报警的类型

notification_interval   60       #定义报警的频率,每小时

notification_period      24x7   #定义报警的时间段

max_check_attempts      3    #如果一个监控项出现问题,它会检测3次,如果第三次依然有问题,nagios就会将它定义为出现问题的服务。

normal_check_interval    10    #正常的服务是每10分钟检测一次

即:定义监控的服务检测的频率。(对关键业务监控的频率需要变小。)

4.2 设置邮箱报警

设置邮箱联系人的默认文件为“contacts.cfg”

cat /usr/local/nagios/etc/objects/contacts.cfg

email   nagios@localhost   ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

}

将nagios@localhost改成接收报警的邮箱即可。

4.2.1 安装mailx发送邮件

Nagios默认使用/usr/bin/mailx或者/usr/bin/mail发送邮件

安装mailx

yum -y install mailx

发送测试邮件

[root@nagios-vm1 ~]#mail nmonitor@163.com

Subject: test mail from gzw

shaoyong test

.

EOT

 

从客户端查看邮件,邮件已收到。

4.2.2 报警配置文件之间的关系

A)hosts.cfg、services.cfg或者 “/usr/local/nagios/etc/objects/文件夹”目录下以.cfg结尾的配置文件,host和service分别定义了使用的模板,以linux服务器为例,信息如下:

cat /usr/local/nagios/etc/objects/项目名/xxx.cfg

define host{

        use                     linux-server,host-pnp

}

define service{                                     

        use                     generic-service,srv-pnp

}

即:配置文件调用了配置模板

B)linux-server,host-pnp、generic-service,srv-pnp是在template.cfg,查看模板定义的联系人组如下:

cat /usr/local/nagios/etc/objects/template.cfg

# Linux host definition template - This is NOT a real host, just a template!

define host{

        name         linux-server

        use           generic-host

        contact_groups             admins

}

define service{

        name                    generic-service

        contact_groups            admins 

}

即:模板中定义的联系人为admins组

C)admins组是在contacts.cfg中定义的,查看contacts.cfg信息如下:

cat /usr/local/nagios/etc/objects/contacts.cfg

define contactgroup{

        contactgroup_name      admins

        alias                   Nagios Administrators

        members               nagiosadmin

        }

#定义了admins里包含了成员nagiosadmin用户

define contact{

        contact_name           nagiosadmin

        use                   generic-contact

        alias                  Nagios Admin

        email                 nagios@localhost

        }

即:此处定义接收报警的邮箱地址

4.2.3 Nagios报警如何通过邮件发出去

A)hosts.cfg、services.cfg或者 “/usr/local/nagios/etc/objects/文件夹”目录下以.cfg结尾的配置文件,host和service分别定义了使用的模板,可通过“4.2.1 报警配置文件之间的关系查看。

B) linux-server,host-pnp、generic-service,srv-pnp是在template.cfg,查看模板定义的联系人组如下:

define contact{

        name                            generic-contact

        service_notification_commands   notify-service-by-email

host_notification_commands      notify-host-by-email

}

即:“notify-service-by-email” 、“notify-host-by-email”定义了发邮件的命令

C)“notify-service-by-email” 、“notify-host-by-email”命令是在commands.cfg中定义的,查看commands.cfg信息如下:(设置告警信息)

cat  /usr/local/nagios/etc/objects/commands.cfg

# 'notify-host-by-email' command definition

define command{

        command_name    notify-host-by-email

        command_line    /usr/bin/printf "%b" "***** Nagios by ShaoYong *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

        }

# 'notify-service-by-email' command definition

define command{

        command_name    notify-service-by-email

        command_line    /usr/bin/printf "%b" "***** Nagios by ShaoYong *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$

        }

即:“command_line”就是发送邮件的具体内容

 

5.  拓扑图展现

 

被监控主机的配置文件中包含主机的坐标信息,可以先理清被监控主机间的逻辑关系后进行拓扑图的配置。

以linux服务器为例,其配置见“2.4.4.1被监控主机为linux”,主机定义部分如下:

define host{

        use                     linux-server,host-pnp

        host_name               zhujiming

        alias                   bieming

        address                 ipdizhi

        parents                 zhujiming

#定义拓扑图中上联的设备      

      statusmap_image         server.png

#定义设备图标。默认位于“/usr/local/nagios/share/images/logos/”目录下。

       2d_coords               200,200

#定义设备的坐标。根据拓扑图填写坐标位置。

#      3d_coords               200,200,100

        }

最后,测试了一下,得出的拓扑展现如下:

 

posted @ 2019-08-22 09:57  来啦老弟  阅读(1171)  评论(5编辑  收藏  举报