码迷,mamicode.com
首页 > 移动开发 > 详细

nagios之监控

时间:2016-08-22 23:35:52      阅读:518      评论:0      收藏:0      [点我收藏+]

标签:nagios

监控系统需要监控:

1、本地资源:负载(uptime),cpu(top、sar),磁盘(df),内存(free),IO(iostat),RAID,温度,passwd文件的变化,本地所有文件指纹识别

2、网络服务:端口,URL,丢包,进程数,网络流量

3、其他设备:路由器,交换机端口流量,打印机,windows

4、业务数据:用户登录失败次数,用户登录网站次数,输入验证码失败的次数

某个API接口流量并发,电商网站订单,支付交易的数量

5、监控软件本身仅仅是一个平台,想要监控内容,理论上只要在服务器命令行可以获取的

  数据就都可以被监控软件监控

  

nagios监控一般由一个主程序nagios、一个插件程序nagios-plugins和一些可选的附加程序(NRPE、NSClient++、NSCA和NDOUtils)等

nagios本身就是一个监控平台而已,其具体的监控工作都是由插件(nagios-plugins)来实现的,因此nagios主程序和nagios-plugins插件都是

nagios服务器端必须要安装的程序组件,nagios-plugins一般也要安装于被监控端。几个附加程序的描述如下:

1、NRPE:半被动模式

  存在位置:NRPE软件工作于被监控端,操作系统为Linux,Unix系统

  NRPE作用:用于在被监控的远程Linux,Unix主机上执行脚本插件获取数据回传给服务器端,以实现对这些主机资源的监控

  存在形式:守护进程agent模式,开启的端口5666


2、NSClient++:半被动模式

  存在位置:用于被监控端为Windows系统的服务器

  作用:功能相当于Linux下的NRPE

  用于监控Windows主机时,安装在Windows主机上的组件


3、NSCA:纯被动模式的监控

  位置:NSCA需要同时安装在服务器端和客户端

  作用:用于让被监控的远程Linux、Unix主机主动将监控到的信息发送给nagios服务器(在分布式监控集群模式中要用到,300台服务器以内,可以不用)

  分布式监控NSCA外部构件简介:为完成从远程主机主动提交强制检测结果,于是就开发了NSCA外部构件。该外部构件包括两部分,第一部分

  是客户端程序(send_nsca),运行于远程主机上并负责将强制检测结果送到指定的nagios服务器端,另一部分是NSCA守护进程(nsca)

  它既可以独立的运行于守护服务也可以注册到inetd里作为一个inetd客户程序来提供监听连接。从客户端收到服务检测结果信息之后,守护进程

  将结果提交给在中心服务器的nagios,方式是通过在外部命令文件里插入一条PROCESS_SVC_CHECK_RESULT命令,之后跟上检测结果。在nagios

  服务器端下一次处理外部命令时将会找到这条由分布式服务器送来的强制检测结果并处理它


首先进行安装nagios服务器端:

1、安装需要的一些包组件

yum install httpd php php-cli gcc glibc glibc-common gd gd-devel net-snmp -y


2、修改httpd.conf文件

vim /etc/httpd/conf/httpd.conf

-》ServerName localhost

service httpd start


3、添加用户

#useradd nagios

useradd nagios

passwd nagios ---->设置密码为redhat


4、添加一个gagcmd组

#groupadd gagcmd

groupadd nagcmd

usermod -a -G nagcmd nagios

usermod -a -G nagcmd apache


5、编译安装nagios软件

mkdir /home/huang/tools -p

cd /home/huang/tools/

wget https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.1.1/nagios-4.1.1.tar.gz

tar xzf nagios-4.1.1.tar.gz

cd nagios-4.1.1

./configure --with-command-group=nagcmd

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf

--》由于nagios的web界面需要授权认证:

-》htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin  ---->设置密码为redhat

service httpd restart


6、编译安装插件nagios-plugins

cd /home/huang/tools/

wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

tar xfz nagios-plugins-2.1.1.tar.gz

cd nagios-plugins-2.1.1

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

make install

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg   检测一下是否有错误

service nagios start

chkconfig --add nagios

chkconfig nagios on


7、安装插件nrpe:

wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.tar.gz

tar xf 3.0.tar.gz

cd nrpe-3.0/

./configure

make all

make install

make install-plugin

make install-daemon

make install-config

以下是一些编译参数选择:

###

[root@RS1 nrpe-3.0]# make

Please enter make [option] where [option] is one of:

     all                  builds nrpe and check_nrpe

     nrpe                 builds nrpe only

     check_nrpe           builds check_nrpe only

     install-groups-users add the users and groups if they do not exist

     install              install nrpe and check_nrpe

     install-plugin       install the check_nrpe plugin

     install-daemon       install the nrpe daemon

     install-config       install the nrpe configuration file

     install-inetd        install the startup files for inetd, launchd, etc.

     install-init         install the startup files for init, systemd, etc.


开启nagios服务端:

service nagios start

浏览器访问:

http://192.168.1.155/nagios


安装需要被监控的客户端软件:

#监控Linux、Unix主机,安装客户端

添加nagios用户

useradd -m nagios -s /sbin/nologin


#安装插件nagios-plugins

cd /home/huang/tools/

wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

tar xfz nagios-plugins-2.1.1.tar.gz

cd nagios-plugins-2.1.1

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

make

make install


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


#安装NRPE

wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.tar.gz

tar xf 3.0.tar.gz

cd nrpe-3.0/

./configure

make all

make install

make install-plugin

make install-daemon

make install-config


#######测试监控

用nagios监控本机做测试:

[root@RS1 objects]# pwd

/usr/local/nagios/etc/objects

[root@RS1 objects]# tree

.

├── commands.cfg   -->存放nagios命令相关配置(也可指定commands目录),这里的命令不是系统命令,而是实现把nagios里定义的命令和

Linux系统里的插件关联的一个文件

├── contacts.cfg   --》存放报警联系人的相关配置的文件

├── localhost.cfg

├── printer.cfg

├── switch.cfg

├── templates.cfg  --》模板配置文件,模板的存在是为了方便的配置服务器配置。

├── timeperiods.cfg --》存放报警周期时间等相关配置

└── windows.cfg

       service.cfg    --》存放具体被监控的主机相关配置,默认不存在

       hosts.cfg      --》存放具体被监控的主机相关配置,默认不存在

         将localhost.cfg重名了为hosts.cfg


主动模式:和NRPE无关,就是利用服务器端本地插件直接获取信息

    一般监控的服务:httpd、sshd、mysqld等等

被动模式:就是通过客户端NRPE获取数据

    主程序通过check_nrpe插件,和客户端nrpe进程进行沟通,调用本地插件获取数据


#配置check_nrpe命令

将check_nrpe配置到commands.cfg配置文件中,成功调用插件

define command {

  command_name check_nrpe

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

}

示例:

/usr/local/nagios/libexec/check_nrpe -H 192.168.1.11(客户端ip) -c check_disk


#配置hosts.cfg文件

将localhost.cfg重名了为hosts.cfg,将它修改为以下

[root@RS1 etc]# cat objects/hosts.cfg

###############################################################################

# LOCALHOST.CFG - SAMPLE OBJECT CONFIG FILE FOR MONITORING THIS MACHINE

#

#

# NOTE: This config file is intended to serve as an *extremely* simple 

#       example of how you can create configuration entries to monitor

#       the local (Linux) machine.

#

# HOST DEFINITION

# Define a host for the local machine

#define a host for nagios server

define host{

        use                     linux-server            ; Name of host template to use    ----》这里使用的是默认的模板

; This host definition will inherit all variables that are defined

; in (or inherited by) the linux-server host template definition.

        host_name               nagios_server      ----》这里的名称可以随便取

        alias                   nagios_server

        address                 192.168.1.155     ----》这里我以nagios本机服务器端作为监控

        }

# HOST GROUP DEFINITION

# Define an optional hostgroup for Linux machines

define hostgroup{

        hostgroup_name  linux-servers ; The name of the hostgroup

        alias           Linux Servers ; Long name of the group

        members         nagios_server     ; Comma separated list of hosts that belong to this group    -----》将要监控的hosts添加到hostgroup组中,放进members

        }


#配置services.cfg文件

cd /usr/local/nagios/etc/objects

touch services.cfg

chown -R nagios.nagios services.cfg

编辑该文件添加需要监控的服务

define service{

use generic-service

host_name nagios_server       -----》这里我以nagios服务端做监控样例,由于我nrpe插件没有启动所有不出监控的服务信息

service_description CPU Load

check_command check_nrpe!check_load

}


手动先使用命令收集下数据:

[root@RS1 etc]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.155 -c check_load

connect to address 192.168.1.155 port 5666: Connection refused

connect to host 192.168.1.155 port 5666: Connection refused

发现收集数据失败,发现并没有启动nrpe服务,于是

#nrpe 启动 监听的端口5666

修改配置文件:nrpe.cfg

allowed_hosts=127.0.0.1,192.168.1.155


[root@RS1 objects]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

[root@RS1 objects]# netstat -tunlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2597/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1216/master         

tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      55737/nrpe          

tcp        0      0 :::80                       :::*                        LISTEN      33699/httpd         

tcp        0      0 :::22                       :::*                        LISTEN      2597/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      1216/master         

tcp        0      0 :::5666                     :::*                        LISTEN      55737/nrpe   


再次手动测试是否能收集到数据

[root@RS1 objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.155 -c check_load

OK - load average: 0.00, 0.00, 0.00|load1=0.000;15.000;30.000;0; load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;

数据采集到了,观察web监控页面

技术分享

于是简单的监控完成

参考文章:http://tecadmin.net/install-nagios-core-service-on-centos-rhel/

以及附件的pdf



nagios之监控

标签:nagios

原文地址:http://huangsir007.blog.51cto.com/6159353/1841249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!