1 Nagios功能

1.1  监控工具

1.2  可以监控主机/服务或者资源

1.3  四种状态值

OK,WARNING,CRITICAL,UNKNOWN

CPU:90%(CRITICAL),80%(WARNING),OK,UNKOW

1.4  报警系统

2  Nagios core(Nagios核心)

2.1  本身不做任务监控工作

2.2  Plugins(高度插件化)

check_nginx

2.3  N种对象实现监控工作

1)        主机,主机组

2)        服务/资源, 服务组

3)        联系人(发送通知),联系人组

4)        时段

5)        命令 定义在模板中-> 应用到某个被监控对象,以实现具体的监控

2.4  N主机

Linux多个监控对象,如果有很多属性相同可以定义为模板

2.5  如何对远方主机进行监控

1)        获取远端主机信息

2)        Linux  nrpe ssh

3)        Windows NSclient++

4)        被动监控nsca被动监控

3 安装监控端

3.1  安装nagios

  1. 安装

yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server

yum install xinetd openssl-devel

  1. 用户权限

groupadd nagcmd

useradd -G nagcmd nagios

passwd nagios

usermod -a -G nagcmd apache

  1. 下载

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.8.tar.gz

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

  1. 时间保证一致
  1. 解压  安装nagios

tar xf nagios-4.0.8.tar.gz

cd nagios-4.0.8

./configure --sysconfdir=/etc/nagios --with-command-group=nagcmd --enable-event-broker

  1. 编译

make all

make install

make install-init   // service

make install-commandmode

make install-config

make install-webconf

  1. 设置密码

htpasswd -c /etc/nagios/htpasswd.users nagiosadmin  创建一个加密文件 参数是用户名

设置密码  nagiosadmin

  1. 验证是否到当前目录寻找这个文件

less /etc/httpd/conf.d/nagios.conf

  1. 启动服务

service httpd start

chkconfig httpd on

chkconfig --add nagios

chkconfig nagios on

service nagios start

3.2  安装插件

  1. 解压并安装

tar xf nagios-plugins-2.0.tar.gz

ls

cd nagios-plugins-2.0

./configure --with-nagios-user=nagios --with-nagios-group=nagios       注意:此处不适用nagcmd

make

make install

  1. 重启服务

service nagios restart

service httpd restart

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

  1. 关闭SELINUX

getenforce

setenforce 0

getenforce

vim /etc/sysconfig/selinux

4  认识Nagios配置文件

  1. Nagios配置文件都在/etc/nagios目录下
  2. Nagios.cfg主配置文件

n  cfg_file 需要附加的object目录下的文件

n  cfg_dir 直接包含某个目录  目录下的所有文件全部包含进来

n  resource.cfg 中信息敏感,$USER1$全局宏变量定义文件,最多支持32个,/usr/local/nagios/libexec/插件所在目录,

  1. Object目录 (各种配置文件)

n  Command.cfg命令配置文件

u  Command_name 和 command_line

u  举例,-w 警告信息  -c 严重信息 -p 检测多少数据包

u  命令可以传递参数(如何传递?)

n  Contact.cfg配置联系人文件

u  Contack_name 全局唯一,名字

u  Use  从那个模板继承

u  Alias  别名

u  Email  email地址

n

Timeperiods.cfg

5 监控一台主机的步骤

  1. 定义localhost.cfg

该主机的配置文件(在/etc/Nagios/object/目录下新建一个即可)

  1. 定义一个主机

define host{

use                     linux-server  //引用模板

host_name               localhost   //全局唯一

alias                   localhost       //别名

address                 127.0.0.1             //ip地址

}

  1. 定义主机组(先不看)

define hostgroup{

hostgroup_name  linux-servers

alias           Linux Servers

members         localhost

}

  1. 定义service服务

define service{

use                        local-service

host_name                  localhost

service_description            
PING

check_command              check_ping!100.0,20%!500.0,60%

}

-H 自动指定  $ARG1$ $ARG2$ 对应上面!之间的参数

6  监控Windows主机

6.1  通信方式

SNMP 和 NSClient++,NSClient支持nrpe,nsca(被动检测)

6.2  安装过程

  1. 安装NSClient++
  2. 指定访问用户名和密码
  3. 安装完成可以直接启动服务
  4. Netstat -an

查看端口12489(check_nt和NSclient通信)5666是nrpe端口

先到插件目录下检测一下是否能使用

  1. Check_nt 检测是否可以通信
  2. 测试:

-H ip -p 端口 -v 测试内容 -w -c -l 5,80,90  (过去5分钟参数,80警告,90紧急)

注意输出:

一般信息和性能信息。必须要使用|隔开

6.3  使用nagios检测

  1. 编辑/etc/Nagios/command.cfg文件

添加一个新的命令

  1. 编辑windows.cfg
  2. 定义主机
  3. 定义主机组
  4. 定义service

-l 后面所有都是一个参数

  1. 在/etc/Nagios/Nagios.cfg中引入这个文件
  2. 检查语法错误

/usr/local/Nagios/bin/Nagios -v
/etc/Nagios/Nagios.cfg

  1. 重启nagios

Service Nagios
restart

7  基于nrpe检测linux

7.1  通信过程

Nagios Server使用check_nrpe与被监控端NRPE进程通信

被监控端必须安装NRPE,NRPE依赖于nagios-plugins

NRPE默认监听5666端口

7.2  工作工程

7.3  被监控端安装步骤

  1. 安装依赖

yum -y groupinstall "Development
Tools" "Development Libraries

  1. 修改时间

date
0000

  1. 添加用户

useradd
-s /sbin/nologin nagios

  1. 配置,先安装nagios-plugins

tar xf nagios-plugins-2.0.tar.gz

./configure
--with-nagios-user=nagios --with-nagios-group=nagios   可以加上--sysconfig=

  1. 编译

make
all

make
install

  1. 安装nrpe安装依赖

yum
install openssh openssl-devel

tar
-zxvf nrpe-nrpe-2-15.tar.gz

  1. 编译安装

./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

  1. 修改配置信息/usr/local/nagios/etc/nrpe.conf 
    (最后有命令定义!!)

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

log_facility=daemon

pid_file=/var/run/nrpe.pid

server_address=172.16.100.11  (服务监听地址,默认0.0.0.0)

server_port=5666

nrpe_user=nagios

nrpe_group=nagios

这个得改allowed_hosts=172.16.100.1   (允许谁来监控)

command_timeout=60

connection_timeout=300

debug=0

  1. 将nrpe修改为进程

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

vim
/etc/init.d/nrped

#!/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/xinetd.d目录中创建nrpe文件,使其成为一个基于非独立守护进程的服务,文件内容如下:

service nrpe

{

flags = REUSE

socket_type = stream

wait = no

user = nagios

group = nagios

server =
/usr/local/nagios/bin/nrpe

server_args = -c
/etc/nagios/nrpe.cfg -i

log_on_failure += USERID

disable = no

}

  1. 定义命令

在被监控端,可以通过NRPE监控的服务或资源需要通过nrpe.conf文件使用命令进行定义,定义命令的语法格式为:command[<command_name>]=<command_to_execute>。比如:

command[check_rootdisk]=/usr/local/nagios/libexec/check_disk
-w 20% -c 10% -p /

command[check_swap]=/usr/local/nagios/libexec/check_disk
-w 40% -c 20%

command[check_sensors]=/usr/local/nagios/libexec/check_sensors

command[check_users]=/usr/local/nagios/libexec/check_users
-w 10 -c 20

command[check_load]=/usr/local/nagios/libexec/check_load
-w 10,8,5 -c 20,18,15

command[check_zombies]=/usr/local/nagios/libexec/check_procs
-w 5 -c 10 -s Z

command[check_all_procs]=/usr/local/nagios/libexec/check_procs
-w 150 -c 200

7.4  监控端安装步骤

  1. 安装nrpe

tar
-zxvf nrpe-2.12.tar.gz

cd
nrpe-2.12.tar.gz

./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

  1. 安装好之后,自动生成/usr/local/nagio/libexec/check_nrpe插件
  2. 定义命令

define command

{

command_name
check_nrpe

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

//
-H 自动对应hostaddress $ARG1$指定对方执行的命令

}

  1. check_nrpe语法格式

通过NRPE监控远程Linux主机要使用chech_nrpe插件进行,其语法格式如下:

check_nrpe -H
<host> [-n] [-u] [-p <port>] [-t <timeout>] [-c
<command>] [-a <arglist...>]

-H 指定主机

-c 指定要在被监控服务器执行的命令

-a 指定参数(可接受多个参数)

编译nrpe的时候需要增加参数--enable-command-args
修改nrpe.cfg文件中参数dont_blame_nrpe=1

  1. 定义服务

define service

{

use
generic-service

host_name
linuxserver1,linuxserver2

hostgroup_name
linux-servers

service_description
SWAP

check_command
check_nrpe!check_swap

normal_check_interval
30

}

使用示例3:(重要)

如果还希望在监控远程Linux主机时还能向其传递参数,则可以使用类似如下方式进行:

定义监控远程Linux主机disk资源的命令:

define
command

{

command_name
check_swap_nrpe

command_line
$USER1$/check_nrpe –H "$HOSTADDRESS$" -c "check_swap" -a
$ARG1$ $ARG2$

}

定义远程Linux主机的swap资源:

define
service

{

use
generic-service

host_name
linuxserver1,linuxserver2

hostgroup_name
linux-servers

service_description
SWAP

check_command
check_swap_nrpe!20!10

normal_check_interval
30

}

  1. 注意关闭所有的防火墙
  2. 定义主机文件linhost.cfg
  3. 定义主机组
  4. 定义服务
  5. 编辑nagios.cfg,引入这个linhost.cfg
  6. 检测配置文件是否正确
  7. 重启nagios

7.5  nrpe监控windows

需要修改NFS配置文件

check_nrpe -h 获取帮助

Nagios学习笔记的更多相关文章

  1. Nagios学习笔记四:基于NRPE监控远程Linux主机

    1.NRPE简介 Nagios监控远程主机的方法有多种,其方式包括SNMP.NRPE.SSH和NCSA等.这里介绍其通过NRPE监控远程Linux主机的方式. NRPE(Nagios Remote P ...

  2. Nagios学习笔记三:配置Nagios

    1.Nagios的主配置文件 Nagios的主配置文件为nagios.cfg,其语法非常简洁,通常#开头的行为注释行,而参数的设置格式为<parameter>=<value>: ...

  3. Nagios学习笔记二:Nagios概述

    1.简介 Nagios是插件式的结构,它本身没有任何监控功能,所有的监控都是通过插件进行的,因此其是高度模块化和富于弹性的.Nagios监控的对象可分为两类:主机和服务.主机通常指的是物理主机,如服务 ...

  4. Nagios学习笔记一:基本安装和配置

    ()解决安装Nagios的依赖关系: Nagios基本组件的运行依赖于httpd.gcc和gd.可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装: # yum -y install ...

  5. Puppet学习笔记(CentOS6.3+Puppet3.01)

    Puppet学习笔记(CentOS6.3+Puppet3.01)  技术 Add comments Oct262012 下了决心,好好学习puppet,周末专门去参加一个puppet的培训,难得朋友那 ...

  6. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  9. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

随机推荐

  1. Wannafly挑战赛25C 期望操作数

    Wannafly挑战赛25C 期望操作数 简单题啦 \(f[i]=\frac{\sum_{j<=i}f[j]}{i}+1\) \(f[i]=\frac{f[i]}{i}+\frac{\sum_{ ...

  2. 什么是 CI/CD?(翻译)

    CI/CD是什么? 原文:https://opensource.com/article/18/8/what-cicd 在谈论软件开发时,经常会提到持续集成Continuous Integration( ...

  3. SpringBoot日记——Thymeleaf进阶小篇

    我们做好了登录页,那设计一个场景吧,比如我们登录后跳转到公司主页,想从公司主页再跳转到员工列表页: 这样的场景我们该如何实现,首先要知道一些基础知识,就是SpringBoot的一些关于请求的架构知识: ...

  4. 在Visual Studio中使用.lib和.dll的环境搭建

    1 静态库和动态链接库的区别 动态链接库是在运行的时候被调用的,静态库在链接的时候被链接到最终生成的应用程序(.exe)中 静态库需要用到的文件 (.lib .h) 头文件(.h)提供接口,库文件(. ...

  5. oracle存储过程 关于update的动态SQL-工作心得

    本随笔文章,由个人博客(鸟不拉屎)转移至博客园 发布时间: 2018 年 12 月 20 日 原地址:https://niaobulashi.com/archives/oracle-procedure ...

  6. 2.5星|《AI进化论》:疑似基于PPT与公关稿整理汇编而成

    AI进化论·解码人工智能商业场景与案例 全书是目前AI在一些热门领域的应用的介绍,包括各行业内AI可以实现的功能.现有相关公司的具体业务等.对各公司的介绍仅限于能实现什么业务,具体做的怎么样,有什么优 ...

  7. CHAPTER 24 History of Our Planet 第24章 我们行星的历史

    CHAPTER 24 History of Our Planet 第24章 我们行星的历史 Uncovering the bones of ancient beasts is only part of ...

  8. Flink架构分析之HA

    抽象 LeaderElectionService 这个接口用于从一组竞选者中选出一个leader,其start方法需要传递一个LeaderContender竞选者作为参数,如果有多个竞选者,则每一个竞 ...

  9. DevOps on AWS之Elastic BeanStalk

    Elastic BeanStalk相关概念 童话世界中存在着一种魔力beanstalk(豆荚),种在花盆里可以无限的向上生长,越长越高直达云端.AWS Elastic Beanstalk也采用类似概念 ...

  10. 机器学习基础 --- numpy的基本使用

    一.numpy的简介 numpy是Python的一种开源的数值计算扩展库.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该 ...