Nagios学习笔记
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
- 安装
yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server
yum install xinetd openssl-devel
- 用户权限
groupadd nagcmd
useradd -G nagcmd nagios
passwd nagios
usermod -a -G nagcmd apache
- 下载
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
- 时间保证一致
- 解压 安装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
- 编译
make all
make install
make install-init // service
make install-commandmode
make install-config
make install-webconf
- 设置密码
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin 创建一个加密文件 参数是用户名
设置密码 nagiosadmin
- 验证是否到当前目录寻找这个文件
less /etc/httpd/conf.d/nagios.conf
- 启动服务
service httpd start
chkconfig httpd on
chkconfig --add nagios
chkconfig nagios on
service nagios start
3.2 安装插件
- 解压并安装
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
- 重启服务
service nagios restart
service httpd restart
/usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg
- 关闭SELINUX
getenforce
setenforce 0
getenforce
vim /etc/sysconfig/selinux
4 认识Nagios配置文件
- Nagios配置文件都在/etc/nagios目录下
- Nagios.cfg主配置文件
n cfg_file 需要附加的object目录下的文件
n cfg_dir 直接包含某个目录 目录下的所有文件全部包含进来
n resource.cfg 中信息敏感,$USER1$全局宏变量定义文件,最多支持32个,/usr/local/nagios/libexec/插件所在目录,
- 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 监控一台主机的步骤
- 定义localhost.cfg
该主机的配置文件(在/etc/Nagios/object/目录下新建一个即可)
- 定义一个主机
define host{
use linux-server //引用模板
host_name localhost //全局唯一
alias localhost //别名
address 127.0.0.1 //ip地址
}
- 定义主机组(先不看)
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members localhost
}
- 定义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 安装过程
- 安装NSClient++
- 指定访问用户名和密码
- 安装完成可以直接启动服务
- Netstat -an
查看端口12489(check_nt和NSclient通信)5666是nrpe端口
先到插件目录下检测一下是否能使用
- Check_nt 检测是否可以通信
- 测试:
-H ip -p 端口 -v 测试内容 -w -c -l 5,80,90 (过去5分钟参数,80警告,90紧急)
注意输出:
一般信息和性能信息。必须要使用|隔开
6.3 使用nagios检测
- 编辑/etc/Nagios/command.cfg文件
添加一个新的命令
- 编辑windows.cfg
- 定义主机
- 定义主机组
- 定义service
-l 后面所有都是一个参数
- 在/etc/Nagios/Nagios.cfg中引入这个文件
- 检查语法错误
/usr/local/Nagios/bin/Nagios -v
/etc/Nagios/Nagios.cfg
- 重启nagios
Service Nagios
restart
7 基于nrpe检测linux
7.1 通信过程
Nagios Server使用check_nrpe与被监控端NRPE进程通信
被监控端必须安装NRPE,NRPE依赖于nagios-plugins
NRPE默认监听5666端口
7.2 工作工程
7.3 被监控端安装步骤
- 安装依赖
yum -y groupinstall "Development
Tools" "Development Libraries
- 修改时间
date
0000
- 添加用户
useradd
-s /sbin/nologin nagios
- 配置,先安装nagios-plugins
tar xf nagios-plugins-2.0.tar.gz
./configure
--with-nagios-user=nagios --with-nagios-group=nagios 可以加上--sysconfig=
- 编译
make
all
make
install
- 安装nrpe安装依赖
yum
install openssh openssl-devel
tar
-zxvf nrpe-nrpe-2-15.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
make install-daemon (安装成守护进程)
make
install-daemon-config
- 修改配置信息/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
- 将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
}
- 定义命令
在被监控端,可以通过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 监控端安装步骤
- 安装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
- 安装好之后,自动生成/usr/local/nagio/libexec/check_nrpe插件
- 定义命令
define command
{
command_name
check_nrpe
command_line
$USER1$/check_nrpe –H "$HOSTADDRESS$" -c $ARG1$
//
-H 自动对应hostaddress $ARG1$指定对方执行的命令
}
- 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
- 定义服务
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
}
- 注意关闭所有的防火墙
- 定义主机文件linhost.cfg
- 定义主机组
- 定义服务
- 编辑nagios.cfg,引入这个linhost.cfg
- 检测配置文件是否正确
- 重启nagios
7.5 nrpe监控windows
需要修改NFS配置文件
check_nrpe -h 获取帮助
Nagios学习笔记的更多相关文章
- Nagios学习笔记四:基于NRPE监控远程Linux主机
1.NRPE简介 Nagios监控远程主机的方法有多种,其方式包括SNMP.NRPE.SSH和NCSA等.这里介绍其通过NRPE监控远程Linux主机的方式. NRPE(Nagios Remote P ...
- Nagios学习笔记三:配置Nagios
1.Nagios的主配置文件 Nagios的主配置文件为nagios.cfg,其语法非常简洁,通常#开头的行为注释行,而参数的设置格式为<parameter>=<value>: ...
- Nagios学习笔记二:Nagios概述
1.简介 Nagios是插件式的结构,它本身没有任何监控功能,所有的监控都是通过插件进行的,因此其是高度模块化和富于弹性的.Nagios监控的对象可分为两类:主机和服务.主机通常指的是物理主机,如服务 ...
- Nagios学习笔记一:基本安装和配置
()解决安装Nagios的依赖关系: Nagios基本组件的运行依赖于httpd.gcc和gd.可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装: # yum -y install ...
- Puppet学习笔记(CentOS6.3+Puppet3.01)
Puppet学习笔记(CentOS6.3+Puppet3.01) 技术 Add comments Oct262012 下了决心,好好学习puppet,周末专门去参加一个puppet的培训,难得朋友那 ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
随机推荐
- ubuntu下编译源码 make 出现 make: 'Makefile' is up to date.
其实只需要 make就行了,不需要 make Makefile 当然,make的前提是,执行 ./configure 不报错
- Introduction to Big Data with PySpark
起因 大数据时代 大数据最近太热了,其主要有数据量大(Volume),数据类别复杂(Variety),数据处理速度快(Velocity)和数据真实性高(Veracity)4个特点,合起来被称为4V. ...
- 用Angule Cli创建Angular项目
Angular4.0来了,更小,更快,改动少 接下来为Angular4.0准备环境和学会使用Angular cli项目 1.环境准备: 1)在开始工作之前我们必须设置好开发环境 如果你的机器上还没有安 ...
- c#多线程中Lock()关键字的用法小结
本篇文章主要是对c#多线程中Lock()关键字的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段 ...
- Caffe Blob针对图像数据在内存中的组织方式
Caffe使用Blob结构在CNN网络中存储.传递数据.对于批量2D图像数据,Blob的维度为 图像数量N × 通道数C × 图像高度H × 图像宽度W 显然,在此种场景下,Blob使用4维坐标定位数 ...
- 零基础学python之入门和列表数据(附详细的代码解释和执行结果截图)
Python学习笔记 1 快速入门 下载安装好Python之后,在开始找到 双击打开一个窗口,这是一个shell界面编辑窗口,点击左上角的file——new file新建一个窗口,这里可以输入完整的代 ...
- SICP读书笔记 3.2
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...
- 高可用OpenStack(Queen版)集群-6.Nova控制节点集群
参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...
- ubuntu下修改nginx的进程数
1. 进入nginx配置文件:vim /etc/nginx/nginx.conf2. 将events下的worker_processes 修改为 你希望的数字,保存文件并退出3. 重启nginx: s ...
- 深入理解JavaScript函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...