2019独角兽企业重金招聘Python工程师标准>>>

Nagios使用说明文档

1,nagios介绍

 

1.1  什么是nagios?

nagios是一款用于系统和网络监控的应用程序,它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的是会给出警告信息。

1.2  nagios的特征

监控网络服务(smtp,pop3 http nntp ping 等)

监控主机资源(cpu负荷,磁盘利用率,内存利用率等)

简单的插件社稷使得用户可以方便的扩展自己服务的监测方法

并行服务检查机制

具备定义网络分层结构的能力,用“parent”主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机当机和不可达状态

当服务或主机文体产生与解决时将警告发送给联系人(通过EMAIL,短信,用户定义方式)

具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位

自动的日志回滚

可以支持并实现对主机的冗余

可选的web界面用于查看当前的网络状态,通知和故障历史,日志文件等

 

1.3 Nagios能做什么

监控windows主机

监控linux/unix主机

监控netware服务器

监控路有其和交换机

监控打印机

监控公众服务平台

2,nagios安装

  2.1 安装要求

硬件:nagios对硬件没有特别的要求,一般服务器及主机均可运行

系统:nagios所需要的运行的硬件必须可以运行linux(或unix),并且有c编译器

软件:web服务(apache),

thomas boutell制作的GD库与开发库(gd gd-devel glibc glibc-common)

GCC编译器 (gcc)

 

2.2 软件准备

     Nagios主程序:nagios-cn-3.3.1.tar.tar.gz(本文档实用)

nagios插件:nagios-plugins-1.4.15.tar.gz  nrpe-2.12.tar.gz

英文版下载地址:http://www.nagios.org/download/

中文版下载地址:http://sourceforge.net/projects/nagios-cn/

 

2.3 安装nagios

  2.3.1 nagios用户和组

#adduser nagios

#mkdir /usr/local/nagios

#chown nagios.nagios /usr/local/nagios

     2.3.2 编译

#tar zxvf nagios.3.3.1.tar.gz

#cd nagios

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

      2.3.3 安装

        #make all

#make install     安装主要的程序、CGI、HTML文件等等。

#make install-commandmode  赋予外部命令访问nagios配置文件的权限

#make install-config  将nagios的配置文件的例子复制到nagios的安装目录下

#make install-init   将nagios做成一个运行脚本,放入init.d中,使nagios可以随系统的开机而启动

      2.3.4 全部编译安装完毕后检查

# ls /usr/local/nagios
bin  etc  libexec  sbin  share  var

查看是否有上述几个目录,如果存在说明nagios安装成功。
下面来说明这五个目录的功能:
bin          nagios执行程序所在目录,这个目录只有一个文件nagios
etc          nagios配置文件位置,初始安装完成后,只有几个*.cfg-sample文件
libexec      nagios程序脚本文件
sbin         nagios的Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
share        nagios网页文件所在的目录
var          nagios日志文件、spid等文件所在的目录

   2.3.5将nagios信息加到apache中

        #vim /etc/httpd/conf/httpd.conf

在配置文件的最后加入以下内容:

<Directory "/usr/local/nagios/sbin">

Options ExecCGI

AllowOverride None

Order allow,deny

Allow from all

AuthName "Nagios Access"

AuthType Basic

AuthUserFile /usr/local/nagios/etc/htpasswd.users

Require valid-user

</Directory>

<Directory "/usr/local/nagios/share">

Options None

AllowOverride None

Order allow,deny

Allow from all

AuthName "Nagios Access"

AuthType Basic

AuthUserFile /usr/local/nagios/etc/htpasswd.users

Require valid-user

</Directory>

2.3.5 生成http用户验证文件,用户名为nagios

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

 

 2.3.6 重启apache

  #service httpd restart

 2.3.7 查看nagios监控页面

    打开浏览器输入地址:http://127.0.0.1/nagios/

    如果得到以下界面说明前面的安装没有问题

2.3.8配置nagios
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 来验证程序能否正常运行
分析nagios的配置文件
# vi /usr/local/nagios/etc/localhost.cfg
把下面的几行注释去掉
cfg_file=/usr/local/nagios/etc/objects/contactgroups.cfg

//联系组配置文件路径
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg

//联系人配置文件路径
cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg

//主机组配置文件路径
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/timeperiods.cfg

//监视时段配置文件路径
将check_external_command=0修改为1 作用是允许执行web界面下重启nagios,停止主机/服务检查等操作

cgi.cfg文件 控制相关的cgi脚本
#vi /usr/local/nagios/etc/cgi.cfg
确保use_authentication=1
其中的各项authorized_for_都是定义登录的用户权限
全部设置为nagiosadmin即可,也可设置你自己htpasswd生成设置的用户名

objects目录下的配置文件如下:
commands.cfg  localhost.cfg  printer.cfg  templates.cfg    windows.cfg
contacts.cfg     switch.cfg   timeperiods.cfg
commands.cfg 是定义了各种命令的功能
localhost.cfg    是默认的主机监控策略
contacts.cfg     中定义了发送警报的方式和联系人信息

templates.cfg   定义host,service中use使用的模板

timeperiods.cfg   各种报警时间的定义
等等
很多配置文件都已经默认设置好了基础的监控行为,如果有需要可以随时更改

具体配置实例可见nagios的/usr/local/nagios/etc/localhost.cfg

2.4 nagios插件的使用

2.4.1 nagios插件安装

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

#cd /nagios-plugins-1.4.15

#./configure —prefix=/usr/local/nagios   nagios-plugins是安装到nagios的主目录下的

#make

#make install

#ls /usr/local/nagios/libexec (检查插件是否安装成功,如果安装成功可以在该目录下看到很多可执行程序)

检查工作:

再次检查nagios主目录的属主,一定要是nagios,不能是root
如果属主不正确
#chown -R nagios.nagios /usr/local/nagios 
nagios的用户不需要登录shell 所以如果为了安全
#vi /etc/passwd 
nagios:x:500:500::/home/nagios:/bin/bash
修改为:
nagios:x:500:500::/home/nagios:/bin/nologin

那么nagios用户则不能够登录shell

  2.4.2修改nagios的插件配置

1)   服务器端的客户端软件安装完成后需要在插件的命令行增加

# vim /data/nagios/etc/objects/commands.cfg

#check nrpe

define command{

command_name check_nrpe

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

}

2) 如果在/usr/local/nagios/libexec中没有check_nrpe.需要将安装完nrpe后,复制nrpe的libexec中得check_nrpe到/usr/local/nagios/libexec

3,运行nagios

 3.1检查配置文件

验证配置文件的正确性在命令行模式输入以下命令:

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

….

Total Warnings: 0

Total Errors:   0

假如有报错会将报错信息显示在出来

3.2启动和停止nagios

3.2.1启动nagios

脚本启动:

#/etc/rc.d/init.d/nagios start

手工启动:

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

重启ngios:

#/etc/rc.d/init.d/nagios reload

停止nagios:

#/etc/rc.d/init.d/nagios stop 或者直接杀死进程

 

4,客户端安装设置

4.1 客户端安装

4.1.1增加nagios用户
#useradd nagios

4.1.2 安装xinetd

 #yum install xinetd

4.1.3安装nagios插件
#tar -zxvf nagios-plugins-1.4.14.tar.gz
#cd nagios-plugins-1.4.14
#./configure --prefix=/usr/local/nagios
#make
#make install

4.1.4安装nrpe
#tar -zxvf nrpe-2.12.tar.gz
#cd nrpe-2.12
#./configure --prefix=/usr/local/nagios
#make all
#make install-plugin
#make install-daemon
#make install-daemon-config
#make install-xinetd    nrpe安装为xinetd服务

  4.1.5 修改权限

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

4.2修改配置

1)编辑nrpe配置文件,增加监控机地址:
#vi /etc/xinetd.d/nrpe
only_from  = 127.0.0.1 10.1.1.14

注意,这里必须以空格分隔。

2)修改services文件,增加端口
#vi /etc/services
nrpe            5666/tcp                        #NRPE

3) 修改配置文件nrpe.cfg

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

allowed_hosts= 127.0.0.1

修改为:allowed_hosts= 127.0.0.1,10.1.1.14

4) 重启xinetd服务
#service xinetd restart

5) 查看服务是否启动

# netstat -antp|grep 5666

tcp        0      0 :::5666                     :::*                        LISTEN      16690/xinetd

6)测试nrpe服务
#/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12

注意,如果出现Connection refused by host 需要安装yum intall openssl*

附件:

以下为check_mem.pl

#! /usr/bin/perl -w

#

# check_mem v1.4 plugin for nagios

#

# uses the output of `free` to find the percentage of memory used

#

# Copyright Notice: GPL

#

# History:

#

# v1.4 Garrett Honeycutt - gh@3gupload.com

#       + Fixed PerfData output to adhere to standards and show crit/warn values

#

# v1.3 Rouven Homann - rouven.homann@cimt-ag.de

#       + Memory installed, used and free displayed in verbose mode

#       + Bit Code Cleanup

#

# v1.2 Rouven Homann - rouven.homann@cimt-ag.de

#       + Bug fixed where verbose output was required (nrpe2)

#       + Bug fixed where perfomance data was not displayed at verbose output

#       + FindBin Module used for the nagios plugin path of the utils.pm

#

# v1.1 Rouven Homann - rouven.homann@cimt-ag.de

#       + Status Support (-c, -w)

#       + Syntax Help Informations (-h)

#       + Version Informations Output (-V)

#       + Verbose Output (-v)

#       + Better Error Code Output (as described in plugin guideline)

#

# v1.0 Garrett Honeycutt - gh@3gupload.com

#       + Initial Release

#

use strict;

use FindBin;

use lib $FindBin::Bin;

use utils qw($TIMEOUT %ERRORS &print_revision &support);

use vars qw($PROGNAME);

use Getopt::Long;

use vars qw($opt_V $opt_h $verbose $opt_w $opt_c);

$PROGNAME = "check_mem";

sub print_help ();

sub print_usage ();

Getopt::Long::Configure('bundling');

GetOptions ("V"   => \$opt_V, "version"    => \$opt_V,

"h"   => \$opt_h, "help"       => \$opt_h,

"v" => \$verbose, "verbose"  => \$verbose,

"w=s" => \$opt_w, "warning=s"  => \$opt_w,

"c=s" => \$opt_c, "critical=s" => \$opt_c);

if ($opt_V) {

print_revision($PROGNAME,'$Revision: 1.4 $');

exit $ERRORS{'UNKNOWN'};

}

if ($opt_h) {

print_help();

exit $ERRORS{'UNKNOWN'};

}

print_usage() unless (($opt_c) && ($opt_w));

my $critical = $1 if ($opt_c =~ /([0-9]+)/);

my $warning = $1 if ($opt_w =~ /([0-9]+)/);

my $verbose = $verbose;

my ($mem_percent, $mem_total, $mem_used) = &sys_stats();

my $free_mem = $mem_total - $mem_used;

if ($mem_percent>$critical) {

if ($verbose) { print "CRITICAL: $mem_percent\% Used Memory - Total: $mem_total MB, used: $mem_used MB, free: $free_mem MB | MemUsed=$mem_percent\%;$warning;$critical\n";}

else { print "CRITICAL: $mem_percent\% Used Memory | MemUsed=$mem_percent\%;$warning;$critical\n";};

exit $ERRORS{'CRITICAL'};

} elsif ($mem_percent>$warning) {

if ($verbose) { print "WARNING: $mem_percent\% Used Memory - Total: $mem_total MB, used: $mem_used MB, free: $free_mem MB | MemUsed=$mem_percent\%;$warning;$critical\n";}

else { print "WARNING: $mem_percent\% Used Memory | MemUsed=$mem_percent\%;$warning;$critical\n";};

exit $ERRORS{'WARNING'};

} else {

if ($verbose) { print "OK: $mem_percent\% Used Memory - Total: $mem_total MB, used: $mem_used MB, free: $free_mem MB | MemUsed=$mem_percent\%;$warning;$critical\n"; }

else { print "OK: $mem_percent\% Used Memory | MemUsed=$mem_percent\%;$warning;$critical\n";};

exit $ERRORS{'OK'};

}

sub sys_stats {

my ($mem_total, $mem_used);

chomp($mem_total = `free -mt | grep Mem | awk '{print \$2}'`);

chomp($mem_used = `free -mt | grep cache | tail -1 | awk '{print \$3}'`);

my $mem_percent = ($mem_used / $mem_total) * 100;

return (sprintf("%.0f",$mem_percent),$mem_total,$mem_used);

}

sub print_usage () {

print "Usage: $PROGNAME [-w <warn>] [-c <crit>] [-v] [-h]\n";

exit $ERRORS{'UNKNOWN'} unless ($opt_h);

}

sub print_help () {

print_revision($PROGNAME,'$Revision: 1.4 $');

print "Copyright (c) 2005 Garrett Honeycutt/Rouven Homann\n";

print "\n";

print_usage();

print "\n";

print "-w <warn> = Memory usage to activate a warning message.\n";

print "-c <crit> = Memory usage to activate a critical message.\n";

print "-v = Verbose Output.\n";

print "-h = This screen.\n\n";

support();

}

以下是check_df.pl
#!/usr/bin/perl -w
#
#check_df
#
# AUTHOR:
#   Dan Harkless <software@harkless.org>       http://harkless.org/dan/software/
# COPYRIGHT:
#   This file is Copyright (C) 2005 by Dan Harkless, and is released under the
#   GNU General Public License <http://www.gnu.org/copyleft/gpl.html>.
#
# USAGE:
#   % check_df [<df_options>] [<percentage>]
#
# EXAMPLE:
#   % check_df -H 99
#
# DESCRIPTION: 
#   A script you can call from 'cron' to output (and thus email) a 'df' listing
#   if any of the filesystems' usage is greater than or equal to the percentage
#   you specify on the commandline.  If no percentage is specified, '95' is
#   assumed.
#
#   Any option strings (beginning with '-') will be passed along to df.
#
# DATE        MODIFICATION
# ==========  ==================================================================
# 2005-08-01  Added ability to pass options to df and removed default use of -k.
# 2004-11-17  Original.
$percentage = 95;
while (scalar @ARGV > 0) {
    $option = shift;
    if ($option =~ /^-/) {
        push @df_options, $option;
    }
    else {
        $percentage = $option;
    }
}
open(DF, "df @df_options|") or die;
use vars qw($header_line);
$header_line = <DF>;
push @df_output, $header_line;
while (<DF>) {
    push @df_output, $_;
    if (/(\d{1,3})%/) {
        if ($1 >= $percentage) {
            $at_or_above_percentage = 1;
        }
    }
}
close DF;
if ($at_or_above_percentage) {
    print @df_output;
}

转载于:https://my.oschina.net/duxuefeng/blog/36276

centos6+nagios3.3.1+nrpe2.12相关推荐

  1. Centos6.9离线安装CM5.12.1操作流程

    目录 一.概述 二.前期准备 2.1 配置网络 2.2 hostname配置 2.3 设置网络映射 2.4 配置yum 2.5 安装vim vi编辑器加强版 2.6 禁用SELinux 2.7 关闭防 ...

  2. CentOS6.9编译安装Nginx1.12

    1:安装必要的库 Bash yum install gc gcc gcc-c++ pcre-devel zlib-devel openssl-devel 2:创建Nginx用户和组 Bash grou ...

  3. CENTOS6.5安装CDH5.12.1(一) https://mp.weixin.qq.com/s/AP_m0QqKgzEUfjf0PQCX-w

    CENTOS6.5安装CDH5.12.1(一) 原创: Fayson Hadoop实操 2017-09-13 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.概述   本文档主要描 ...

  4. nagios系列(一)centos6.5环境部署nagios服务端

    nagios软件安装包存放目录:/home/oldboy/tools nagios服务安装目录:/usr/local/nagios 1.配置yum源 echo "------ step 1: ...

  5. CenOS5.6下安装nagios3.2监控服务器群的运行状况

    centos 5.6安装nagios3.2.0 Nagios功能列表    所需软件包及环境 基本的监控:      NAGIOS    gcc.gcc-devel.appache.php.gd.gd ...

  6. centos6.x 安装php5.6 tar,CentOS6.x安装php5.6.x

    一.系统及安装说明 系统:CentOS6.x_x64,php5.6.12版本以及四个扩展模块(libmcrypt-2.5.8.tar.gz ;php-redis.tar.gz;jpegsrc.v8d. ...

  7. centos6.x 安装php5.6 tar,CentOs6.x安装php5.6.x Web程序 - 贪吃蛇学院-专业IT技术平台

    系统及安装说 系统:CentOS6.x_x64,php5.6.12版本以及四个扩展模块(libmcrypt-2.5.8.tar.gz ;php-redis.tar.gz;jpegsrc.v8d.tar ...

  8. centos6.7下snort2.9.9.0+base+barnyard2的安装

    0x01 YUM源准备 阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ 第一步:备份原镜像文件 mv /etc/yum.repos.d/CentOS-Base.r ...

  9. Linux运维学习笔记之三十一:监控利器Nagios实战

    第四十二章 监控利器Nagios实战 一.Nagios介绍 1.哪些内容需要监控呢? (1)本地资源 a.负载:uptime: b.CPU:top,sar,cpu温度: c.磁盘:df: d.内存:f ...

最新文章

  1. 删除数据库中与同步数据冗余的数据(多对多)
  2. 进击的 Java ,云原生时代的蜕变
  3. 代码覆盖率工具 Istanbul 入门教程
  4. myEtherWallet在线钱包的使用
  5. 【转载】通往性能优化的天堂-地狱 JOIN方法说明
  6. Java对MongoDb的CURD操作
  7. [病毒分析]熊猫烧香应急处理方法
  8. oppo手机解锁_ColorOS一键解锁工具
  9. android 添加字幕,手机视频加字幕app 怎样用安卓手机在视频画面加文字字幕
  10. Miracle密码算法开源库(二)源码分析 :mralloc.c、mrarth0.c
  11. 独家深挖!F1赛车协会“刹车表现”是如何进行数据分析的?
  12. unity shader 溶解,上下左右,cutoff
  13. 2019:自我觉醒的一年
  14. 百变小鹿机器人金鸡奖登场,成为首个走上红毯的机器人
  15. 解决电脑安装mathtype后microsoft office 2016的.ppt文件打不开问题
  16. 51单片机流水灯现象1
  17. 哈佛国际评论学术写作挑战赛介绍
  18. insightface心得
  19. VSC/SMC(十四)——全局快速Terminal滑模控制(含程序模型)
  20. ADNI以及study design简介

热门文章

  1. error C3646: “noexcept”: 未知重写说明符_三个世纪以来首次发现:大脑中还藏着一种未知的器官?...
  2. ES6进阶Async与Await,你不知道的同步与异步
  3. 怎么改python系统路径_动态修改python系统路径
  4. 4 angular 重构 项目_再遇angular(angular4项目实战指南)
  5. oracle sql2000,sql2000的代码改成oracle的
  6. php 增加数组下标_PHP数组排序更改下标KEY方法
  7. red hat linux 改ip,Red Hat Enterprise Linux 7(RHEL7)配置静态IP地址
  8. 去除标签_生活小常识:3m胶怎么去除
  9. 2014全国计算机等级考试四级数据库工程师考试大纲,4月全国计算机等级考试四级数据库工程师笔试试卷(1)...
  10. linux neo4j weget,关于在linux中安装neo4j的步骤