centos 搭建 nagios 监控系统.

linux下搭建nagios监控

一、什么是nagios

1.nagios 简介

Nagios是一个监视系统运行状态和网络信息的监视系统。

Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。

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

各种系统问题,以及日志等等。

Nagios是十分受欢迎的、开源且免费的计算机及网络系统监控软件。

Nagios是“Nagios Ain‘t Gonna Insist On Sainthood”的缩写。

它最早是在1999年以“NetSaint”发布。Nagios主要应用在Linux和Unix平台环境下的监控,

但通过插件,也可以监控MS Windows系统的主机。Nagios在LinuxCon 2010 Poll并选为最受欢迎的IT运维工具。

它被Infoworld在2009年评为最佳开源软件,同时也是该年度的SourceForge社区的系统管理工具最佳选择。

Nagios也被很多知名企业所采用,包括AOL,DHL,At&t,欧莱雅,德州仪器,Siemens COM CZ,时代华纳有线,Yahoo等。

2.Nagios的主要功能特点:

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

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

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

- 服务等监视的并发处理

- 错误通知功能 (通过email, pager, 或其他用户自定义方法)

- 可指定自定义的事件处理控制器

- 可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等

- 可以通过手机查看系统监控信息

二、nagios 监控环境搭建

1.搭建环境介绍:

hostname IP 系统

服务端 webserver 192.168.1.20 CentOS 6.6

客户端 hpf-linux 192.168.1.110 CentOS 6.6

2.基础服务端安装:

[[email protected] ~]# yum install -y epel-release  //若机器安装的有epel扩展源则省略此步骤
[[email protected] ~]# yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe  //安装nagios相关包
[[email protected] ~]# htpasswd -c /etc/nagios/passwd nagiosadmin  //生成登录nagios后台的帐号及密码
New password: 
Re-type new password: 
Adding password for user nagiosadmin
[[email protected] ~]# nagios -v /etc/nagios/nagios.cfg   //检测nagios配置文件是否错误

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

启动服务端nagios服务及监控的服务:

[[email protected] ~]# /etc/init.d/httpd start
[[email protected] ~]# /etc/init.d/nagios start

登录浏览器输入 http://ip/nagios ,查看服务是nagios是否搭建成功

通过输入刚才生成的密码进入nagios后台管理;

点击serviers查看监控,根据监控的服务是否正常进行调试;

刚开始http服务能会有warning,错误提示为HTTP WARNING: HTTP/1.1 403 Forbidden - 5152 bytes in 0.001 second response t;

原因为:nagios监控HTTP时,会监控到/var/www/html/下面的index.html文件,若没有就会提示错误,

创建一个文件即可!创建后等一会便会将监控状态变为OK;

3.增加服务端nagios 监控机(增加监控客户端)

客户端安装nagios监控服务及文件配置:

[[email protected] ~]# yum install -y epel-release //若客户端已安装epel扩展源则省略此步骤
[[email protected] ~]# yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe  //安装nagios监控相关包
[[email protected] ~]# vi /etc/nagios/nrpe.cfg   
找到“allowed_hosts=127.0.0.1” 改为 “allowed_hosts=127.0.0.1,192.168.1.20” 后面的ip为服务端ip; 
找到” dont_blame_nrpe=0” 改为  “dont_blame_nrpe=1” 
下面两个配置文件的更改是根据nagios服务端添加的监控服务(check_hda1)进行更改的:
command[check_sda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
command[check_sda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2

注意:监控端和被监控端的command选项都需要增加 command[check_sda]的选项,

并且在重启nrpe和Nagios 后,需要等一段时间,nagios的web页面才会把原先 check disk标记

为critical的选项给回复成正常。

配置服务端nagios脚本文件:

[[email protected] conf.d]# vi /etc/nagios/objects/commands.cfg  //在该配置文件下添加以下内容
define command{
         command_name    check_nrpe
         command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
         }

[[email protected] ~]# cd /etc/nagios/conf.d/

[[email protected] conf.d]# vi 192.168.1.110.cfg 
define host{
         use                 linux-server            
         host_name           192.168.1.110
         alias               1.110
         address             192.168.1.110
         }

 define service{
         use                     generic-service
         host_name               192.168.1.110
         service_description     check_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.1.110
        service_description      check_ssh
        check_command            check_ssh
        max_check_attempts       5  
        #当nagios检测到问题时,一共尝试检测5次都有问题才会告警,如果该数值为1,那么检测到问题立即告警
        normal_check_interval    1  
        #重新检测的时间间隔,单位是分钟,默认是3分钟
        notification_interval    60 
        #在服务出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你认为,所有的事件只需要一次通知就够了,可以把这里的选项设为0。 
}

define service{
         use                     generic-service
         host_name               192.168.1.110
         service_description     check_http
         check_command           check_http
         max_check_attempts      5
         normal_check_interval   1
 }
define service{
        use                     generic-service
        host_name               192.168.1.110
        service_description     check_load
        check_command           check_nrpe!check_load
        max_check_attempts      5
        normal_check_interval   1
}

define service{
        use                     generic-service
        host_name               192.168.1.110
        service_description     check_disk_sda1
        check_command           check_nrpe!check_sda1
        max_check_attempts      5
        normal_check_interval   1
}

define service{
        use                       generic-service
        host_name                 192.168.1.110
        service_description       check_disk_sda2
        check_command             check_nrpe!check_sda2
        max_check_attempts        5
        normal_check_interval     1
}

[[email protected] ~]# nagios -v /etc/nagios/nagios.cfg   //检测配置文件是否正确

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

在客户端启动nrpe服务:

[[email protected] ~]#   /etc/init.d/nrpe start

在服务端上重启nagios服务:

[[email protected] ~]# /etc/init.d/nagios restart

在浏览器上查看nagios服务的监控是否正常显示:

4.配置邮件报警:

[[email protected] ~]#  vim /etc/nagios/objects/contacts.cfg
define contact{
        contact_name                nagios1
        use                                 generic-contact
        alias                               mail1
        email                             [email protected]
        }

define contact{
        contact_name               nagios2
        use                                generic-contact
        alias                              mail2
        email                            [email protected]
        }

define contactgroup{
        contactgroup_name           common
        alias                                     common
        members                            nagios1,nagios2
        }

[[email protected] conf.d]# vi 192.168.1.110.cfg 
在上面的192.168.1.110.cfg 配置文件有如下一段内容:
define service{
        use                     generic-service
        host_name               192.168.1.110
        service_description     check_load
        check_command           check_nrpe!check_load
        max_check_attempts      5
        normal_check_interval   1
}
将上面一段配置的最后添加以下四个语句:
        contact_groups        common
        notifications_enabled  1    
        #是否开启提醒功能。1为开启,0为禁用。一般,这个选项会在主配置文件(nagios.cfg)中定义,效果相同。
        notification_period   24x7  
         #发送提醒的时间段。非常重要的主机(服务)我定义为7×24,一般的主机(服务)就定义为上班时间。
         #如果不在定义的时间段内,无论什么问题发生,都不会发送提醒。        
        notification_options    w,u,c,r   
        #这个是service的状态。w为waning, u为unknown, c为critical, r为recover(恢复了),
        #类似的还有一个  host对应的状态:d,u,r   d = 状态为DOWN, u = 状态为UNREACHABLE , r = 状态恢复为OK,
        #需要加入到host的定义配置里。
[[email protected] ~]# nagios -v /etc/nagios/nagios.cfg  //检测配置文件是否错误

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

5、验证报警邮件配置是否成功:

开启虚拟机邮件服务

[[email protected] ~]#  yum install -y sendmail  //安装邮件服务包
[[email protected] ~]#  /etc/init.d/sendmail start   //启动邮件服务
[[email protected] ~]# netstat -lnp |grep sendmail   //查看邮件服务开启的端口
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1011/sendmail

在浏览器上配置163邮箱的白名单以防止把报警邮件当成垃圾邮件:

wKioL1WCiOWTxQqrAAUfz-fMY94418.jpg

[[email protected] ~]# /etc/init.d/nrpe stop  //在客户端关闭nrpe服务看服务端是否发送报警邮件;
Shutting down nrpe:                                        [确定]

报警邮件发送时间会有一段时间的延时,需要耐心等待;

时间: 2024-10-05 00:06:48

centos 搭建 nagios 监控系统.的相关文章

一键搭建nagios监控系统之二 脚本解释篇

#! /bin/bash   ##  QQ:1401354763 ##################  nagios server configure ######################## installserver() {   #定义安装nagios函数 read -p " Please input the alarm  email address : " email   #报警邮箱 read -p " Please input the login nagio

搭建nagios监控系统

1.软件包准备 nagios-4.0.8.tar.gz nagios-plugins-2.0.3.tar.gz nrpe-2.15.tar.gz httpd-2.2.23.tar.gz 2.Nagios Server端安装 1).安装相关依赖包 yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel 2).安装Nagios # useradd -s /sbin/nologin nagios # configur

Nagios监控系统

一.Nagios监控系统简介 1.Nagios工作原理 Nagios本身不包括监控主机和服务的功能.所有的监控.监测功能都是通过各种插件来完成的.安装完nagios之后,在nagios主目录下的/libexex里面放有nagios自带的插件,如:check_disk是检查磁盘空间的插件,check_load是检查cpu负载的插件,每一个插件可以通过运行./check_xxx -h命令来检查其使用方法和功能. 1.Nagios的四种监控状态 Nagios可以识别四种状态返回信息.0(OK)表示状态

yum搭建nagios监控linux&&window及邮件报警

本文是小弟整合几位大神的文章,见笑@@ Linux利用sendmail和fetion发送报警通知 nagios监控windows主机 && linux主机 CentOS 5/6.X 使用 EPEL YUM源: 实验环境: 两台64位的centos-6.6 一台window-server-2003 安装网络yum源: centos5.x--32位 [[email protected] ~]# wget http://mirrors.yun-idc.com/epel/5/i386/epel-r

Nagios 监控系统架设全攻略

Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT 基础设施监控系统,其功能强大,灵活性强,能有效监控 Windows .Linux.VMware 和 Unix 主机状态,交换机.路由器等网络设置等.一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运营人员,在状态恢复后发出正常的邮件或短信通知.Nagios 结构简单,可维护性强,越来越受中小企业青睐,以及运维和管理人

使用monit搭建一个监控系统

上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情.当然了主要是监控异常,因为我们的产品属于服务器类型,很多进程都daemon,要不停的运行.我们搭建监控目的不过是出现问题能够及时的知道,平时可从web UI上看到整个系统的状况,同时它本身要轻量级,不要影响性能.当然了类似的产品很多了,比如Ganglia,我在老科长波哥曾经搭建过一个Ganglia系统监控科室十几台服务器,让我很是崇拜.本文重点介绍monit.                      monit是一个可以监控系

Nagios 监控系统架设全攻略(一)

最近一段时间在研究Nagios监控系统,然后网上搜索查看很多的资料,借鉴与各位大虾的经验,整理记录一下自己安装记录. Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT 基础设施监控系统,其功能强大,灵活性强,能有效监控 Windows .Linux.VMware 和 Unix 主机状态,交换机.路由器等网络设置等.一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运营

Cacti+Nagios监控系统(五):Nagios监控windows(基于check_nt)

一.工作原理 Nagios服务器使用check_nt工具与客户端程序通讯,客户端程序NSCP使用命令来获取本地客户端的信息并返回给check_nt. check_nt只是NSCP其中一项服务,Nagios还可以通过check命令(如check_http检查WEB服务).check_nrpe.NSCA.WMI来监控windows客户端. 二.下载客户端程序 下载地址:  http://nsclient.org/nscp/downloads 64位系统下载:NSCP-0.4.1.105-x64.ms

Cacti+Nagios监控系统(一):准备工作

一.系统环境 1.设置yum源 (1)使用本地源 挂载光驱ISO文件 确认路径/media/CentOS_6.5_Final/ cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak vi CentOS-Base.repo [base] name=Base baseurl=file:///media/CentOS_6.5_Final/ gpgcheck=0 #(1检测 0不检测) enabled=1 #(1启动 0不启动) (2)