经典难过死(nagios)监控详解及其配置 附件
·nagios特征Nagios 是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主 机和服务进行监控,在状态变差和变好的时候给出告警信息。
1.网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
2.主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)
3.可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)
4.可以通过配置Nagios远程执行插件远程执行脚本
5.远程监控支持SSH或SSL加通道方式进行监控
6.简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shellscripts、C++、Perl、ruby、Python、PHP、C#等)
7.包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
8.可并行服务检查
9.能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查
10.当服务或主机出现问题时发出通告,可通过email, pager, sms或任意用户自定义的plugin进行通知
11.能够自定义事件处理机制重新激活出问题的服务或主机
12.自动日志循环
13.支持冗余监控
14.包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等
Nagios原理
Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功 能都是通过各种插件来完成的。
启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。
Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。
Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来,以供管理员及时发现故障。
Nagios 系统提供了一个插件NRPE。Nagios 通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如下图所示:
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
Nagios的四种状态
状态
代码
颜色
数字
正常
ok
绿色
0
警告
warning
***
1
严重
critical
红色
2
未知
unknown
深***
3
---------------------------------------------------------------------------------
安装nagios
1.配置yum
# mount /dev/cdrom/media/
# vim/etc/yum.repos.d/rhel-debuginfo.repo
name=RedHat Enterprise Linux $releasever - $basearch -Debugbaseurl=file:///media/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2.安装依赖包
# yum -y install gccglibc glibc-common gd gd-devel httpd php mysql
3.修改配置文件支持php解析
# vim php.ini
501default_charset = "utf-8"
# vim/etc/httpd/conf/httpd.conf
200LoadModule php5_module modules/libphp5.so
769AddType application/x-httpd-php .php .phtml
391DirectoryIndex index.html index.html.var index.php
4.创建的用户
# useradd nagios
创建一个用户组用于从web接口处执行外部命令,将用户nagios和apache添加到这个组
# groupadd nagcmd
# usermod -G nagcmdapache
# usermod -G nagcmdnagios
5.安装nagios
# tar -zxvfnagios-3.2.0.tar.gz -C /usr/src/
# cd/usr/src/nagios-3.2.0/
#./configure --with-command-group=nagcmd
# make all 编译
# makeinstall
安装nagios主程序的cgi和html文件
# makeinstall-init
在/etc/rc.d/init.d目录下创建nagios启动脚本
#make install-commandmode
配置目录权限
# makeinstall-config
创建nagios示例配置文件,这里的安装路径是 /usr/local/nagios/etc
# makeinstall
# pwd
/usr/local/nagios/etc/objects
# vim contacts.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
指定接收nagios邮件的地址,默认是本机的nagios的用户
# service sendmail restart
# chkconfig--add nagios
# chkconfig--level 35 nagios on
6.nagios目录文件介绍
bin
Nagios 可执行程序所在目录
etc
Nagios 配置文件所在目录
sbin
Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
share
Nagios网页文件所在的目录
libexec
Nagios 外部插件所在目录
var
Nagios 日志文件、lock 等文件所在的目录
var/archives
Nagios 日志自动归档目录
var/rw
用来存放外部命令文件的目录
etc目录下文件
文件名或目录名
用途
cgi.cfg
控制CGI访问的配置文件
nagios.cfg
Nagios 主配置文件
resource.cfg
变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$
objects
objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象
objects/commands.cfg
命令定义配置文件,其中定义的命令可以被其他配置文件引用
objects/contacts.cfg
定义联系人和联系人组的配置文件
objects/localhost.cfg
定义监控本地主机的配置文件
objects/printer.cfg
定义监控打印机的一个配置文件模板,默认没有启用此文件
objects/switch.cfg
定义监控路由器的一个配置文件模板,默认没有启用此文件
objects/templates.cfg
定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg
定义Nagios 监控时间段的配置文件
objects/windows.cfg
监控Windows 主机的一个配置文件模板,默认没有启用此文件
7.nagios配置
# makeinstall-webconf
安装nagios的web配置配置文件到apache的conf.d下
# htpasswd-c /usr/local/nagios/etc/htpasswd.users nagiosadmin
创建一个用户用于登陆nagios的web接口不要更改nagiosadmin,不然在别的配置文件中也要更改
8.插件安装
nagios-plugins是官方提供的插件程序,nagios监控主机主要是通过插件完成的。
# tar -zxvfnagios-plugins-1.4.14.tar.gz -C /usr/src/
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make &&make install
# service iptables
# setenforce 0
访问验证
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
Nagios监控windows主机
Nagios在配置方面非常灵活,默认的配置文件并不是必须的,可以使用,也可以创建 自己的配置文件,然后再在主配置nagios.cfg中引用即可
配置文件间的关系
nagios的配置文件是互为关联,相互引用的,Nagios的配置过程中需要定义的有主机,主机组,服务,服务组,联系人,联系人组,监控时间,和监控命令
Objects里面存放的是主配置文件nagios.cfg包含进去的文件,在nagios.cfg中就可以指定单独包含一个cfg,也可以包含一个目录,也就是该目录下所有的cfg文件都会包含进来
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
Nsclient++介绍
NSClient++是用来监控Windows主机时安装在Windows主机上的组件。被监控机上安装NSClient,,当监控主机将监控请求发给NSClient后,NSClient直接完成/监控,所有的监控是由NSClient完成的.不需要额外的插件。
nsclient++集成了非常多的插件nsca,nrpe等都支持,一般检测windows用check_nt插件
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
NSClient原理
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
Nsclient++安装
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
方框中可以全部打勾
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
注意关闭windows防火墙
查看是否启用了5666和12489端口
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
查看nsclient++服务是否启动
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
Nsclient++配置文件
当要修改监控主机的IP地址,或者忘记密码时可以修改这个文件
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
在linux主机测试插件check_nt是否能查询windows信息
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
-H 要查询的主机ip地址 -p指定端口 -v要查询的信息
配置检测一台windows主机的思路首先是安装nsclient++,这个前面已经安装好了,重点要说的是在linux上配置启动监控windows主机;中心点是要监控的主机一切围绕被监控的主机展开
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
修改文件前请全部备份
1.# vim windows.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
# pwd
/usr/local/nagios/etc
# vim nagios.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
重新启动服务,这样一台主机就添加玩了,
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
是不是觉得很简单,嗯,是的我想告诉你,你想多了,功能这么强大的nagios会这么简单?开玩笑,,咳咳,回归正题,其实添加一台主机也没那么难下面来添加第二台windows主机,
----------------------
先把检测的命令写好
# vim commands.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
里面的这些命令我们都可以引用
# vim windows1.cfg 定义监控的主机
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
如果要监控多个服务,可以多谢几个define service
# pwd
/usr/local/nagios/etc
# vim nagios.cfg 添加windows1.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
重启服务就可以了
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
================================
监控linux主机
nagios监控linux服务器, 都是依靠插件去完成的,而监控linux主要使用NRPE插件,
NRPE总共由两部分组成:
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
check_nrpe插件,运行在监控主机上。
NRPE daemon,运行在远程的linux主机上(通常就是被监控机)
整个的监控过程:(如下图)
当Nagios需要监控某个远程linux主机的服务或者资源情况时:
1).nagios运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.
2).check_nrpe插件会通过SSL连接到远程的NRPEdaemon.
3).NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务.
4).NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.
注意:NRPE daemon需要nagios插件安装在远程被监控linux主机上,否则,daemon不能做任何的监控. 别外因为它们间的通信是加密的SSL,所以在编译安装时都要加上选项, ./configure--enable-ssl --with-ssl-lib=/lib/,否则也会出错.
需要提前安装openssl
在监控主机上安装nrpe插件
# tar -zxvf nrpe-2.12.tar.gz -C /usr/src/
# ./configure --enable-ssl --with-ssl-lib=/usr/lib/
# make all
# make install-plugin
配置被监控端
# useradd nagios
安装nagios-plugin
# tar -zxvf nagios-plugins-1.4.14.tar.gz -C/usr/src/
# cd /usr/src/nagios-plugins-1.4.14/
# ./configure--with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround(非必加,如果出现
checking for redhat spopen problem…时可以加上这个选项,关于他是干什么的,目前还不知道)
# make
# make install
# chown -R nagios:nagios/usr/local/nagios/
在被监控主机上安装nrpe插件
创建运行nrpe的用户
# useradd nagios
# tar -zxvf nrpe-2.12.tar.gz -C /usr/src/
# cd /usr/src/nrpe-2.12/
# ./configure --enable-ssl--with-ssl-lib=/usr/lib/
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config
配置nrpe
# pwd
/usr/local/nagios/etc
# vim nrpe.cfg
79 allowed_hosts=100.1.1.100 允许来检测的IP地址,多台主机用“,”隔开
# /usr/local/nagios/bin/nrpe -c nrpe.cfg -d 启动nrpe
检查是否启动
# netstat -anpt|grep nrpe
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 6939/nrpe
在监控端执行
# ./check_nrpe -H 100.1.1.103
NRPE v2.12 查看被监控端nrpe的版本
在被监控端如果出现:
# ./check_nrpe -H 127.0.0.1
CHECK_NRPE:Error - Could not complete SSL handshake.
请修改/usr/local/nagios/etc/nrpe.cfg
# vim nrpe.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
重新启动nrpe进程
# ./check_nrpe -H 127.0.0.1
NRPE v2.12
添加一台监控主机(在监控主机上)
# vim commands.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
# cp localhost.cfg linux103.cfg
# vim linux103.cfg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
# vim nagios.cfg 添加
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
重启服务就可以看到新添加的主机了
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
附件:http://down.运维网.com/data/2365798
页:
[1]