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

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


nagios常用配置文件主要用以下6个:

cgi.cfg(控制cgi访问的配置文件),nagios.cfg(Nagios主配置文件),resource.cfg(resource.cfg定义了一些变量,以便被其他文件引用,如$USER1$),objects(objects是一个目录,用于定义Nagios对象),servers(servers是自己创建的目录,Nagios可以加载该目录下所有配置文件,常用于定义各远程服务器监控信息,需要在nagios.cfg中配置)

其中:

objects目录下文件::

commands.cfg #命令定义配置文件,里面定义的命令可以被其他文件引用

contacts.cfg #联系人和联系人组配置文件

localhost.cfg #监控本地机器的配置文件

printer.cfg #监控打印机的一个事例配置文件(默认未启用)

switch.cfg #监控路由器的一个事例配置文件(默认未启用)

templates.cfg #模板配置文件,在此可以定义模板,在其他文件中引用

timeperiods.cfg #定义监控时间段的配置文件

windows.cfg #监控Windows的一个事例配置文件(默认未启用)


Nagios所需要的运行条件是机器必须可以运行Linux(或是Unix变种)并且有C语言编译器。你必须正确地配置TCP/IP协议栈以使大多数的服务检测可以通过网络得以进行。你需要但并非必须正确地配置Nagios里的CGIs程序,而一旦你要使用CGI程序时,你必须要安装以下这些软件。


1.nagios安装##可参考官网文档

所需软件包:gd-devel-2.0.35-11.el6.x86_64.rpm nagios-plugins-2.1.1.tar.gz nagios-cn-3.2.3.tar.bz2

tarjxfnagios-cn-3.2.3.tar.bz2yuminstallgd-devel-2.0.35-11.el6.x86_64.rpm-y

cdnagios-cn-3.2.3groupaddnagcmduseradd-M-d/usr/local/nagios-Gnagcmdnagiosusermod-Gnagcmdapache

./configure--with-command-group=nagcmdmakeall##可以看到后面步骤makeinstallmakeinstall-initmakeinstall-configmakeinstall-commandmodemakeinstall-webconf

/etc/httpd/conf.d/nagios.confcat/usr/local/nagios/etc/htpasswd.users##可看到用户名和密码htpasswd/usr/local/nagios/etc/htpasswd.usersnagiosadmin##修改nagiosadmin的密码

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/httpdstart/etc/init.d/nagiosstart


http://172.25.45.1/nagios/


用户名:nagiosadmin 密码:修改的密码

2.nagios-plugins安装

tarzxfnagios-plugins-2.1.1.tar.gzcdnagios-plugins-2.1.1

./configure##可看到插件安装的信息,可根据缺少的插件进行安装。例如:mysql-devel,openssl-develmakemakeinstall

cd/usr/local/nagios/libexecchownnagios.nagios*-R

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload

cd/usr/local/nagios/etc/vimnagios.cfg


添加两个cfg_file(33行下面)

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

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

注释掉cfg_file=/usr/local/nagios/etc/objects/localhost.cfg(38行)


cdobjects/cp-plocalhost.cfghosts.cfgcp-plocalhost.cfgservices.cfgvimhosts.cfg

将内容修改为以下:

define host{

use linux-server

host_name server1.example.com

alias Manager

# parents MainSwitch

address 172.25.45.1

icon_p_w_picpath server.gif

statusmap_p_w_picpath server.gd2

2d_coords 500,200

3d_coords 500,200,100

}

define hostgroup{

hostgroup_name linux-servers ; The name of the hostgroup

alias Linux Servers ; Long name of the group

members * ; Comma separated list of hosts that belong to this group

}



vimservices.cfg

将166行之前全部删掉,再删除第8行开始的servicegroup,只留下一个servicegroup。将此servicegroup的members最后两个成员HomeRouter和PING删除

:%s/田朝阳家用机/server1.example.com/g


/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload


http://172.25.45.1/nagios/

cd/usr/local/nagios/libexec./check_disk./check_disk-w20-c10./check_disk-w20-c10-p/

vimservices.cfg

添加以下内容:

max_check_attempts 2


/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload


http://172.25.45.1/nagios/

【server2】

yuminstall-ymysql-server/etc/init.d/mysqldstartmysql_secure_installation

mysql-pmysql>createdatabasenagdb;mysql>grantselectonnagdb.*tonagios@'172.25.45.1'identifiedby'westos';mysql>quit


【server1】

cd/usr/local/nagios/libexec./check_mysql-H172.25.45.2-unagios-pwestos


mysql-h172.25.45.2-unagios-pmysql>showdatabases;mysql>quit

将serevr2的mysql服务关闭

cd/usr/local/nagios/etc/objectsvimcommands.cfg

在212行后添上以下内容:

# 'check_mysql' command definition

define command{

command_name check_mysql

command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$

}


vimservices.cfg

在最后添上以下内容:

#######################check_mysql

define service{

use local-service

host_name server2.example.com

service_description MYSQL

check_command check_mysql!nagios!westos

}


vimhosts.cfg

在上面host下再添加一个host,内容如下:

define host{

use linux-server

host_name server2.example.com

alias Manager

# parents MainSwitch

address 172.25.45.2

icon_p_w_picpath server.gif

statusmap_p_w_picpath server.gd2

2d_coords 400,100

3d_coords 400,100,100

}


/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload


http://172.25.45.1/nagios/


###添加连线

vimhosts.cfg

将alias的值改为server2

将parents的注释取消,并将值改为server1.example.com

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload


http://172.25.45.1/nagios/



此时HTTP的告警状态是因为没有index.html页面,在/var/www/html下建立一个index.html文件就可以解决HTTP告警问题


3.安装nrpe

【server2】

所需软件包:nrpe-2.15.tar.gz nagios-plugins-2.1.1.tar.gz

tarzxfnrpe-2.15.tar.gztarzxfnagios-plugins-2.1.1.tar.gz

useradd-M-d/usr/local/nagiosnagioscdnagios-plugins-2.1.1./configure


出现以下错误,是因为缺少软件,下载gcc可解决

[root@server2 nagios-plugins-2.1.1]# ./configure

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking whether to disable maintainer-specific portions of Makefiles... yes

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking for gcc... no

checking for cc... no

checking for cl.exe... no

configure: error: in `/root/nagios-plugins-2.1.1':

configure: error: no acceptable C compiler found in $PATH

See `config.log' for more details.

yuminstallopenssl-devel-y

./configure##这里不需要--with-mysql,可以不安装


makemakeinstall

cd/usr/local/nagios/chownnagios.nagios.-R

yuminstall-yxinetd

cd/root/nrpe-2.15./configuremakeallmakeinstall-pluginmakeinstall-daemonmakeinstall-daemon-configmakeinstall-xinetd

cd/etc/xinetd.dvimnrpe

将15行的only_from改为172.25.45.1

vim/etc/services

添加以下内容:

nrpe 5666/tcp

/etc/init.d/xinetdstartnetstat-antlpe

vim/usr/local/nagios/etc/nrpe.cfg

修改221行,改为以下内容:

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


/etc/init.d/xinetdrestart

cd/usr/local/nagios/libexec/scpcheck_nrperoot@172.25.45.1:/usr/local/nagios/libexec/

【server1】

cd/usr/local/nagios/libexec/chownnagios.nagioscheck_nrpe./check_nrpe-H172.25.45.2./check_nrpe-H172.25.45.2-ccheck_disk


测试:

在server2将/usr/local/nagios/etc/nrpe.cfg修改,将command[check_disk] -w 改为90%,并重启服务

./check_nrpe -H 172.25.45.2 -c check_disk

将server2的/usr/local/nagios/etc/nrpe.cfg文件恢复上一步之前,并重启服务。

【server1】

cd/usr/local/nagios/etc/objectsvimcommands.cfg

在# 'check_mysql' command definition这一段下添加以下内容:

# 'check_nrpe' command definition

define command{

command_name check_nrpe

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

}


vimservices.cfg

在最后添上以下内容:

#######################check_nrpe

define service{

use local-service ; Name of service template to use

host_name server2.example.com

service_description 根分区

check_command check_nrpe!check_disk

}

define service{

use local-service ; Name of service template to use

host_name server2.example.com

service_description 登录用户数

check_command check_nrpe!check_users

}

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload


http://172.25.45.1/nagios/

4.虚拟机连网

ipaddradd172.25.254.101/24deveth0ipaddrshow

iprouteshowroute-nping172.25.254.45routedeldefaultgw172.25.45.250routeadddefaultgw172.25.254.45route-n

vim/etc/resolv.conf


ping192.168.122.1ping172.25.254.45


测试网络是否连通

digbaidu.compingbaidu.com


已连网

在家里用无限上网,也可以用NAT的方式进行虚拟机连网,网络配置选择DHCP分配网络




可以看到本地发送邮件的地址。

登录邮箱,进行设置。在反垃圾处设置邮件地址白名单:nagios@server1.example.com

【server1】

yuminstallmail-y

su-nagiosmailwjl19940429@qq.com



cd/usr/local/nagios/etc/objectsvimcontacts.cfg

修改35行email的值为自己的邮箱


/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload

【server2】

/etc/init.d/mysqldstop

【server1】

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

修改186行max_check_attempts的值为3

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload

为了尽快测试,将检测次数减少一些




##110云告警##

所需软件包:alert-agent-4.1.3.1-linux-x64.tar.gz


su-nagios-bash-4.1$tarzxfalert-agent-4.1.3.1-linux-x64.tar.gz-C/usr/local/nagios/libexec/-bash-4.1$cd/usr/local/nagios/libexec/-bash-4.1$cdalert-agent/-bash-4.1$ll

-bash-4.1$cdplugin/nagios-plugin/-bash-4.1$cpnagios/usr/local/nagios/libexec/-bash-4.1$cp110monitor.cfg/usr/local/nagios/etc/objects/


在110云告警页面选择配置,添加应用云告警


复制下key

cd/usr/local/nagios/etc/objectsvim110monitor.cfg

将复制下的key粘贴在18行,paper后

vimcontacts.cfg

在54行members后添加110monitor

cd..vimnagios.cfg

在35行之后添加cfg_file=/usr/local/nagios/etc/objects/110monitor.cfg

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg/etc/init.d/nagiosreload


网页进行下一步,完成配置。

选择通知策略,进行配置

例如

【server2】

/etc/init.d/mysqldstop

【server1】

cd/usr/local/nagios/vartail-fnagios.log

/etc/init.d/nagiosreload


缺云告警成功示例截图