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

}

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

Nagios4.x安装配置总结的更多相关文章

  1. nagios安装配置

     http://www.codeweblog.com/nagios%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/ 上线的服务器有时会被人攻击,导致服务不可用,今天安装配置了 ...

  2. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  3. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  4. ADFS3.0与SharePoint2013安装配置(原创)

    现在越来越多的企业使用ADFS作为单点登录,我希望今天的内容能帮助大家了解如何配置ADFS和SharePoint 2013.安装配置SharePoint2013这块就不做具体描述了,今天主要讲一下怎么 ...

  5. Hadoop的学习--安装配置与使用

    安装配置 系统:Ubuntu14.04 java:1.7.0_75 相关资料 官网 下载地址 官网文档 安装 我们需要关闭掉防火墙,命令如下: sudo ufw disable 下载2.6.5的版本, ...

  6. redis的安装配置

    主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7  到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...

  7. Windows环境下的NodeJS+NPM+Bower安装配置

    npm作为一个NodeJS的模块管理,之前我由于没有系统地看资料所以导致安装配置模块的时候走了一大段弯路,所以现在很有必要列出来记录下.我们要先配置npm的全局模块的存放路径以及cache的路径,例如 ...

  8. ubuntu kylin 14.04安装配置MongoDB v2.6.1(转)

    1.获取最新版本 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz 2.解压并进入bin目录 tar zxvf mongo ...

  9. Django基础之安装配置

    安装配置 一 MVC和MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的 ...

随机推荐

  1. nginx服务报错解决

    403禁止访问解决 . 重要:修改配置文件使用虚拟机,否则怎么配置都不生效,添加如下用户 [root@host---- html]# ll /etc/nginx/nginx.conf -rw-r--r ...

  2. centos下如何关闭xdebug扩展

    因为只要加载XDEBUG都会导致系统太慢,所以只有在需要调试系统程序的时候才加载XDEBUG扩展.平时一定要把它给注释掉. 只需要在php.ini文件中注释掉xdebug即可. 即: 前面加一个分号即 ...

  3. 看看可爱c#中的delegate(委托)和event(事件)用法好不好

    一.开篇忏悔 对自己最拿手的编程语言C#,我想对你说声对不起,因为我到现在为止才明白c#中的delegate和event是怎么用的,惭愧那.好了,那今天就趁月黑风高的夜晚简单来谈谈delegate和e ...

  4. Python3 Selenium自动化web测试 ==> 第十一节 WebDriver高级应用 -- 显示等待 + 二次封装

    学习目的: 掌握显示等待 掌握二次封装 正式步骤: step1:显示等待的代码示例 # -*- coding:utf-8 -*- from selenium import webdriver from ...

  5. Python-OpenCV实现二值图像孔洞填充

    代码如下: import cv2 import numpy as np def FillHole(mask): contours, hierarchy = cv2.findContours(mask, ...

  6. PJzhang:目录扫描复合工具dirmap

    猫宁!!! 参考:https://www.freebuf.com/sectool/200890.html github地址: https://github.com/H4ckForJob/dirmap ...

  7. NDK学习笔记-JNI的异常处理与缓存策略

    在使用JNI的时候,可能会产生异常,此时就需要对异常进行处理 异常处理 JNI抛出Throwable异常,在Java层可以用Throwable捕捉 而在C只有清空异常这种处理 但如果在JNI中通过Th ...

  8. kafka producer consumer demo(三)

    我们在前面把集群搭建起来了,也设置了kafka broker的配置,下面我们用代码来实现一下客户端向kafka发送消息,consumer端从kafka消费数据.大家先不要着急着了解 各种参数的配置,先 ...

  9. SQL SERVER YEAR函数

    定义: YEAR函数返回指定日期的年的部分 语法: YEAR(date) 参数: ①date参数是合法的日期表达式. 返回值: int型数据 例:  声明:本文是本人查阅网上及书籍等各种资料,再加上自 ...

  10. @RequestBody以及@RequestParam的使用过程区别

    查考地址:https://blog.csdn.net/justry_deng/article/details/80972817 待整理中.....