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

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

###

[[email protected] 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监控本机做测试:

[[email protected] objects]# pwd

/usr/local/nagios/etc/objects

[[email protected] 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,将它修改为以下

[[email protected] 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

}

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

[[email protected] 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

[[email protected] objects]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

[[email protected] 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

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

[[email protected] 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

时间: 2024-11-11 10:55:51

nagios之监控的相关文章

搭建基于Nagios的监控系统——之监控远程Windows服务器

分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/projects/nscplus/,下载符合自己服务器的 NSClinent++.我下载下来以后的文件名为:NSCP-0.4.1.73-Win32.msi 双击安装程序,选择 Complete Install,并且选择生成实例配置文件,其他的就一路下一步就OK了. 其次,在 NSClient++ 的安装

nagios 添加自定义监控项目监控mysql数据库死锁

nagios 添加自定义监控项目 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 系统环境:CentOS Linux release 7.2.1511 (Core) nagios 版本: 2.15 这里配合pt-dead-logger插件了,运行了这个插件,有死锁就会在test.deadlocks表写入死锁的信息 这里通过检测这个表是否增加了行数来发报警 nagios客户端自定义脚本: ###这里为了省事,直接把数据库的用户,

Nagios 系统监控

Nagios 系统监控 Nagios 是一款免费的开源 IT 基础设施监控系统,功能强大,灵活性强,能有效监控 Windows.Linux.VMware 和 Unix 主机状态,交换机.路由器等网络设置等.一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运营人员,在恢复后发出正常的邮件或短信.Nagios 结构简单,可维护性强,提供一个可选的基于浏览器的 Web 界面,方便管理人员查看系统的运行状态,网络状态.服务状态.日志信息,以及其它异常现象. 一.Nagios 结构简

shell编程之【nagios自定义监控系统磁盘脚本】

之前写了一篇文章主要介绍nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346 下面这篇文章主要介绍nagios自定义监控系统磁盘的脚本实现. Nagios可以识别4种状态返回信息,即 0 表示状态正常(OK).1 表示出现警告(WARNING).2 表示出现非常严重的错误(CRITICAL),3 表示未知错误(UNKNOWN).Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来.我们就可以利用上面这个特性

awk:nagios流量监控插件

#!/bin/awk -f #function: nagios插件:细定每个网卡的监阀值,指定参数时单位为MB(如果监控周期为1分钟,则指定的参数为1分钟传输的数据大小,非Mbit/s) # #Usage:服务器(WAN:em1;LAN:em2),带宽为下行:100Mbit/s,上行:100/3约等于33.3Mbit/s(一般为下行三分之一),报警阀值按80%计算,nagios每分钟监控一次,如下: #接收(上行):100/8*0.8*60=600(单位MB) #发送(下行):100/3/8*0

Nagios记录系统监控日志

#!/bin/bash while : do vmr=`vmstat | tail -1 | awk '{print $1}'` if [ ${vmr} -gt 4 ] then date >> /root/monitor.txt vmstat >> /root/monitor.txt netstat -anp >> /root/monitor.txt ps -aux>> /root/monitor.txt last >> /root/monit

Nagios 里面监控MySQL事务一直RUNNING没有结束的报警通知

序言:        业务报警订单提交异常,页面一直没有反应,排查后是事务没有提交或者回滚导致,想到如果及时监控事务的运行状态报警出来,那么就可以及时排查出问题所在,方便运营处理,所以自己就弄了一个shell脚本放在nagios来处理事务报警情况.1,编写事务监控脚本 #!/bin/bash# author: tim.man# version: 1.0# desc: check the RUNNING TRANSACTION over ST_OK=0  ST_WR=1  ST_CR=2  ST_

实战Nagios网络监控(1)——监控本机运行状态和Mysq主机

Nagios是一个监视系统运行状态和网络信息的监视系统.Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等. Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等 实验环境: 物理主机 redhat7.0 内核版本 3.10.0-123.el7.x86_64 虚拟机 redhat6.5 内核版本 2.6.32-431.el6.x86_64 服务器端: server1.exampl

实战Nagios网络监控(2)—— Nagios+Nrpe监控其他主机

本次实验在上次实验的环境下进行:实战Nagios网络监控(1)--监控本机运行状态和Mysq主机 需要的包:nagios-plugins-2.1.1.tar.gz nrpe-2.15.tar.gz 服务器端:server1.example.com        172.25.254.1 新监控端:server2.example.com        172.25.254.2 实验前提: /etc/init.d/httpd start /etc/init.d/nagios start /etc/i

nagios网络监控

nagios网络监控