文档章节

Nagios分布式监控系统

黑鹰客栈
 黑鹰客栈
发布于 2016/06/20 11:39
字数 2990
阅读 58
收藏 1

Nagios分布式监控系统

Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

一、Nagios的主要功能特点:

监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等) 

监视主机资源 (进程, 磁盘等) 

简单的插件设计可以轻松扩展Nagios的监视功能 

服务等监视的并发处理

准备软件包: 

Nagios Core     nagios-3.2.2.tar.gz 

Nagios Plugins    nagios-plugins-1.4.15.tar.gz 

Nagios Addons    nrpe-2.12.tar.gz 

二、服务器端安装 

查看安装服务器环境(LAMP) 

#rpm -qa | grep httpd 

#rpm -qa | grep php 

没有的话安装 

# yum -y install gcc glibc glibc-common gd gd-devel php openssl-devel httpd 

创建用户: 

 # useradd -m -s /bin/bash nagios 

# groupadd nagios 

# usermod -G nagios nagios 

# vi /etc/passwd 

nagios:x:500:500::/home/nagios:/sbin/nologin 

改成: 

nagios:x:500:500::/home/nagios:/bin/bash 

创建一个用户组名为nagcmd 用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。 

因为要用到 CGI 的 Web 监控面板,所以这里我们还要添加一个 nagcmd 组,用于 CGI 执行相关指令。 

# /usr/sbin/groupadd nagcmd

# /usr/sbin/usermod -G nagcmd nagios

/usr/sbin/usermod  -a -G nagcmd daemon (因为是编译方式安装的apache,默认是以daemon用户运行) 

2.1下载相关的软件包,服务器端需要安装以下三个包,客户端只需要安装后两个插件包:

[root@server ~]#cd /usr/local/src/tarbag/ 

[root@server tarbag]#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.2.tar.gz 

[root@server tarbag]#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz 

[root@server tarbag]#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz 

2.2解压并编译安装Nagios:

# tar xvzf nagios-3.2.2.tar.gz 

# cd nagios-3.2.2     

运行Nagios配置脚本并使用先前开设的用户及用户组:

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

编译Nagios程序包源码:

# make all 

安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限:

# make install 

# make install-init          //在/etc/rc.d/init.d安装启动脚本 

# make install-config       //安装示例配置文件,安装的路径是/usr/local/nagios/etc 

# make install-commandmode        //配置目录权限 

#ls /usr/local/nagios/ 

bin etc libexec sbin share var 

 

 三、安装与配置Apache和Php(服务端)

Apache 和Php 不是安装nagios 所必须的,但是nagios提供了web监控界面,通过web监控界面可以清晰的看到被监控主机、资源的运行状态,因此,安装一个web服务是很必要的。 

需要注意的是,nagios在nagios3.1.x版本以后,配置web监控界面时需要php的支持。这里我们下载的nagios版本为nagios-3.4.3,因此在编译安装完成apache后,还需要编译php模块,这里选取的php版本为php5.4.10。

A. 安装Apache

# wget http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz

# tar zxvf httpd-2.2.23.tar.gz

# cd httpd-2.2.23

# ./configure --prefix=/usr/local/apache2

# make && make install

 

若出现错误:

 

则在编译时入加 --with-included-apr 即可解决。

 

#cp /usr/local/apache2/bin/apachectl /sbin/

启动apache:

#apachectl start

#netstat -tnl | grep 80

#vim /etc/rc.loacl //添加开机启动项

 追加/usr/local/apache2/bin/apachectl start

 

b. 安装Php

# wget http://cn2.php.net/distributions/php-5.4.10.tar.gz

# tar zxvf php-5.4.10.tar.gz

# cd php-5.4.10

# ./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache2/bin/apxs

 

# make && make install

 

c. 配置apache 

找到apache 的配置文件/usr/local/apache2/conf/httpd.conf 
找到:

User daemon

Group daemon

修改为 

User nagios

Group nagios

然后找到 

<IfModule dir_module> 

  DirectoryIndex index.html </IfModule> 

修改为 

<IfModule dir_module> 

  DirectoryIndex index.html index.php </IfModule> 

接着增加如下内容: 

AddType application/x-httpd-php .php

四、对nagios进行配置

样例配置文件默认安装在这个目录下/usr/local/nagios/etc,这些样例文件可以配置Nagios使之正常运行,只需要做一个简单的修改...

用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email地址nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。

每个文件或目录含义如下表所示:

文件名或目录名 用途

cgi.cfg 控制CGI访问的配置文件

nagios.cfg Nagios 主配置文件

resource.cfg 变量定义文件,又称为资源文件,在此文件中定义变量,以便由其他配置文件引用,如$USER1$

objects objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象

objects/commands.cfg 命令定义配置文件,其中定义的命令可以被其他配置文件引用

objects/contacts.cfg 定义联系人和联系人组的配置文件

objects/localhost.cfg 定义监控本地主机的配置文件

objects/printer.cfg 定义监控打印机的一个配置文件模板,默认没有启用此文件

objects/switch.cfg 定义监控路由器的一个配置文件模板,默认没有启用此文件

objects/templates.cfg 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用

objects/timeperiods.cfg 定义Nagios 监控时间段的配置文件

objects/windows.cfg 监控Windows 主机的一个配置文件模板,默认没有启用此文件

 

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

4.1安装nagios插件

 #cd ../ 

#tar zxvf nagios-plugins-1.4.16.tar.gz   

#cd nagios-plugins-1.4.16 

#./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/   //指定安装目录及用户和组 

#make;make install 

配置httpd ,生成Nagios的Apache配置文件 

# cd nagios-3.2.2 

# make install-webconf 

 

若这里报错:

 

     请创建文件夹

 #mkdir -pv /etc/httpd/conf.d

 # /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf 

# cd sample-config 

参考sample-config/httpd.conf配置内容添加到Apache的httpd.conf配置文件中 

创建一个nagiosadmin的用户用于Nagios的Apache接口登录。记下你所设置的登录口令,一会儿你会用到它。 

切换到/usr/local/apache2/bin既apache2的安装目录下bin文件夹下。

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

密码:nagiosmonitor 

重启Apache服务以使设置生效。 

安装NRPE插件,想获取客户机上更为详细的信息,还必须在服务器及客户端上安装NRPE插件。 

#cd .. 

#tar zxvf nrpe-2.14.tar.gz 

#cd nrpe-2.14 

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

Ubuntu系统上面这句需要添加--with-ssl-lib=/usr/lib/x86_64-linux-gnu

# make all 

# make install-plugin;make install-daemon;make install-daemon-config 

# ls /usr/local/nagios/libexec/  

check_apt check_ftp check_mailq check_overcr check_tcp ....... 

验证Nagios的样例配置文件 

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果没有报错,可以启动Nagios服务 

启动httpd及nagios服务并验证 

#chkconfig --add nagios   //设置nagios及http开机自启动 

#chkconfig nagios on 

#chkconfig httpd on 

#service nagios start 

#service httpd start 

五、客户端安装

 #useradd -s /sbin/nologin nagios //添加nagios用户 

安装nagios-plugins 

# tar -zxvf nagios-plugins-1.4.15.tar.gz 

# cd nagios-plugins-1.4.15 

# ./configure --prefix=/usr/local/nagios 

# make 

# make install 

# chown nagios.nagios /usr/local/nagios/ 

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

安装nrpe插件 

# tar -zxvf nrpe-2.12.tar.gz 

# cd nrpe-2.12 

# ./configure --prefix=/usr/local/nagios/  

# make all 

# make install-plugin   安装check_nrpe这个插件 

# make install-daemon    安装daemon 

# make install-daemon-config   安装配置文件 

如果安装时报错:

checking for SSL headers... configure: error: Cannot find ssl headers 

# rpm -qa|grep openssl 

openssl-devel-0.9.8e-12.el5_4.6 

openssl-0.9.8e-12.el5_4.6 

yum install openssl-devel 

或者下载:http://www.openssl.org/source/ 

tar zxvf openssl-1.0.0a.tar.gz 

cd openssl-1.0.0a 

./config 

make 

make test 

make install 

修改客户端配置文件 

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

server_port:5666 

allowed_hosts=127.0.0.1,192.168.1.95   //添加服务器端的IP地址 

指定nagios监控主机ip,多个ip用逗号分隔,后面的IP地址,是nagios服务端的ip地址,也就是说只允许指定的ip通过nrpe开的端口5666取得本机的信息。 

然后修改nrpe.cfg中的command部分。 

启动NRPE守护进程:(可以将此命令加入/etc/rc.local,以便开机自动启动) 

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

可以将此命令加入/etc/rc.local,以便开机自动启动 

echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.local 

#netstat -utpln |grep nrpe        //查看nrpe进程是否已正常启动 

#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

 NRPE v2.13    //nrpe测试结果,此结果为nrpe已经正常工作了 

然后在nagios监控服务器上测试 

#/usr/local/nagios/libexec/check_nrpe -H 192.168.1.77//被监控主机ip 

返回信息被监控服务器上安装的NRPE版本:NRPE v2.13  说明可以监控

 

六、定义监控内容

# vi /usr/local/nagios/etc/nrpe.cfg   //定义监控服务器内容 

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 #监控登陆的用户数量 

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 #监控CPU的负载 

command[check_sda2]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2 #监控磁盘利用率,这里的sda2必须是实际的硬盘分区,可使用fdisk –l查 

command[check_swap]=/usr/local/nagios//libexec/check_swap -w 20 -c 10 #监控交换空间

  command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z #监控进程中的僵尸进程 

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 #监控所有进程 

注意:command后面括号中的内容就是定义的变量,变量名可以任意指定,只需和服务器配置文件中的一致即可 

 

至此结束

 

七、其他问题

7.1客户端如果执行语句nagios_client.sh时报错

    则vim进去看下,输入:set ff看下文件类型是否是unix,如果不是则:set ff=unix,然后执行脚本。

7.2后期添加监控主机的方式:

所需软件nagios-plugins、nrpe

被监控端安装nagios-plugins
# tar  xf nagios-plugins-1.5.tar.gz
# useradd -s /sbin/nologin nagios
# cd nagios-plugins-1.5
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make all

被监控端安装nrpe

# tar xf nrpe-2.15.tar.gz 
# cd nrpe-2.15
# ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios --with-nagios-user=nagios --with-nagios-group=nagios --enable-command-args --enable-ssl
# make all
# make install-plugin 
# make install-daemon
# make install-daemon-config
# /usr/local/nagios/bin/nrpe  -c  /usr/local/nagios/etc/nrpe.cfg  -d  //启动nrpe服务
或者   # vim /etc/init.d/nrped

生成启动脚本nrpe
#!/bin/bash
# chkconfig: 2345 88 12
# description: NRPE DAEMON
NRPE=/usr/local/nagios/bin/nrpe
NRPECONF=/usr/local/nagios/etc/nrpe.cfg
case "$1" in
        start)
                echo -n "Starting NRPE daemon..."
                $NRPE -c $NRPECONF -d
                echo " done."
                ;;
        stop)
                echo -n "Stopping NRPE daemon..."
                pkill -u nagios nrpe
                echo " done."
        ;;
        restart)
                $0 stop
                sleep 2
                $0 start
                ;;
        *)
                echo "Usage: $0 start|stop|restart"
                ;;
        esac
exit 0


#  /etc/init.d/nrped start

在主监控添加nrpe的定义

7.3增加主机监控配置项

方案一、

# vim /etc/nagios/objects/131.cfg
define host{
    use linux-server
    host_name 192.168.235.131
    alias   北师大WEB
    address 192.168.235.131
}
define service{
    use generic-service
    host_name 192.168.235.131
    service_description load
    check_command check_nrpe!check_load
}
define service{
    use generic-service
    host_name 192.168.235.131
    service_description PING
    check_command check_ping!100.0,20%!200.0,50%
    max_check_attempts 5
    normal_check_interval 1
}
define service{
    use generic-service
    host_name 192.168.235.131
    service_description FTP
    check_command check_ftp!21
    max_check_attempts 5
    normal_check_interval 1
}
define service{
    use generic-service
    host_name 192.168.235.131
    service_description SSH
    check_command check_ssh
    max_check_attempts 5
    normal_check_interval 1
}
define service{
    use generic-service
    host_name 192.168.235.131
    service_description HTTP
    check_command check_http
    max_check_attempts 5
    normal_check_interval 1
}
# vim  /etc/nagios/nagios.cfg

添加一行cfg_file=/etc/nagios/objects/131.cfg
# service nagios reload   重载刷新nagios-web界面可以看到添加的被监控主机

 好了,此处nagios已经被安装好了,而且被监控节点也已经上线了!

方案二、

#vim hosts.cfg //添加

define host{

        host_name               download

        alias                   下载服务器

        address                 123.56.159.121

        contact_groups          admins

#use host-pnp

        check_command           check-host-alive

        max_check_attempts      2  #检测到问题后立即报警,不重试。

        notification_interval   5 #notification_interval定义为5,报警发送5次

        notification_period     24x7

        notification_options    d,u,r

        }

 

define host{

        host_name               fb_gridfs_4

        alias                   发布_文件系统_4

        address                 123.56.226.226

        contact_groups          admins

    #use            host-pnp    

        check_command           check-host-alive

        max_check_attempts      2  #检测到问题后立即报警,不重试。

        notification_interval   5   #notification_interval定义为5,报警发送5次

        notification_period     24x7

        notification_options    d,u,r

        }

#vim hostsgroup.cfg //添加

 

define hostgroup{

        hostgroup_name  fb_gridfs ; The name of the hostgroup

        alias           发布环境文件系统 ; Long name of the group        

        members         download,fb_gridfs_4,   ; Comma separated list of hosts that belong to this group

        }

#vim service.cfg //添加

define service{

        use                             service         ; Name of service template to use

        host_name                       fb_gridfs_4

        service_description             根分区

        check_command                   check_nrpe!check_/

        }

define service{

        use                             service         ; Name of service template to use

        host_name                       fb_gridfs_4

        service_description             data分区

        check_command                   check_nrpe!check_/data

        }

define service{

        use                             service         ; Name of service template to use

        host_name                       fb_gridfs_4

        service_description             nginx_80端口

        check_command                   check_port!123.56.226.226!80

        }

define service{

        use                             service         ; Name of service template to use

        host_name                       fb_gridfs_4

        service_description             mongo_6080端口

        check_command                   check_port!10.171.112.13!6080

        }

重启nagios和httpd

 

 

相关链接: CentOS搭建Nagios监控http://www.opstool.com/article/236

下载程序
  最新版本的nagios-cn源程序(当前是3.0.3)和nagios插件(当前是1.4.11版本)源程序下载
  wget http://osdn.dl.sourceforge.net/sourceforge/nagios-cn/nagios-cn-3.0.3.tar.gz
  wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz

 

© 著作权归作者所有

黑鹰客栈
粉丝 1
博文 42
码字总数 26970
作品 0
天津
程序员
私信 提问
Centreon 安装部署指南

本文是监控研究的一部分,之前研究了zabbix,在对cacti和cactiEZ失望之后,找到了zabbix的同等级别的nagios,并且还有一个和nagios配合很好地centreon Centreon overview 2003年法国人编写的...

pcdog
2016/10/01
0
0
nagios+centreon总结之第一章——nagios+centreon简介

nagios+centreon简介 1. centreon是开源的IT监控软件,由法国人于2003年开发,最初名为Oreon,并于2005年正式更名为centreon。 2. centreon可以简单地管理和配置nagios,比nagiosql更为简单明...

perofu
2014/09/10
0
5
IDC 监控技术介绍

IDC 监控技术介绍 监控目的 提前发现问题 — 进行服务器性能调整前,知道调整什么 — 找出系统的瓶颈在什么地方 报告系统运行状况 — 每一部分必须同时监控 — 内容包括吞吐量,反应时间,使...

Xuenqlve
2018/01/12
0
0
企业运维监控平台架构设计与实现(ganglia篇)

一、Cacti/Nagios/Zabbix/centreon/Ganglia之抉择 1、cacti Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。 简单的说Cacti 就是一个PHP 程序。它通过使用SNMP 协议...

南非蚂蚁
2016/04/06
0
0
linux学习笔记-nagios监控的简单配置

第1章 nagios监控工具介绍及原理 1.1nagios监控工具介绍与优势 Nagios是一款开源的网络及服务的监控工具,其功能强大,灵活性强。能有效监控Window,Linux和Unix的主机各种状态信息,交换机、...

呀哈喽
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RS-232、RS422和RS-485的区别和各自的实现方式

一、殊途同归 RS-232、RS422和RS-485 均属于UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),仅用两根信号线(Rx 和Tx)就可以完成通信过程; 而由于各自使用的电...

rainbowcode
52分钟前
1
0
spring 本类中方法调用另外一个方法事务不生效

1、在spring配置文件中添加 <aop:aspectj-autoproxy expose-proxy="true" proxy-target-class="true" />声明自动代理 <!-- 标识通过aop框架暴露该代理,aopContext能够访问. --> proxy-targe......

重城重楼
57分钟前
5
0
项目 banner 乱弹

------------------------------------------ 村上春树 ------------------------------------- 如果我爱你,而你也正巧爱我,你头发乱了的时候,我会笑笑地替你拨一拨,然后手还留恋地在你...

宿小帅
今天
3
0
PHP获取未来七天的日期和星期

php获取未来七天的日期和星期代码 第一步:获取需要天数的日期,然后调用函数 //获取未来七天的日期 for($i=1;$i<8;$i++){ $dateArray[$i]=date('Y-m-d',strtotime(d...

一只懒猫-
今天
2
0
总结:IO模型

分类 多路复用 参考文章: https://www.jianshu.com/p/6a6845464770 https://www.cnblogs.com/zingp/p/6863170.html https://blog.csdn.net/sehanlingfeng/article/details/78920423......

浮躁的码农
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部