设为首页收藏本站

Discuz! Board

 找回密码
 注-册

QQ登录

只需一步,快速开始

搜索
查看: 4214|回复: 2

nagios安装过程

[复制链接]
发表于 2011-6-17 23:31:37 | 显示全部楼层 |阅读模式
nagios是一款强大的linux下的监控软件,与其说是一款软件,不如说是一个监控平台.在它上面可以挂接任意多的报警监控.只要按照要求写出plugin,挂上去配置即可.
下面简单介绍一下nagios的基本安装过程

所需软件:
nagios-3.2.3.tar.gz
nagios-plugins-1.4.15.tar.gz

安装过程:
1、nagios安装

tar xvzf nagios-3.2.3.tar.gz
mkdir /xyx/nagios
useradd -d /xyx/nagios nagios
chmod 755 /xyx/nagios
cd nagios-3.2.3
./configure --prefix=/xyx/nagios --with-gd-lib=/usr/local/lib --with-gd-inc=/usr/local/include
make all
make install
make install-init ##This installs the init script in /usr/local/etc/rc.d
make install-commandmode
make install-config

2、nagios-plugins的安装

tar –xvzf nagios-plugins-1.4.15.tar.gz
#mkdir /xyx/nagios
cd nagios-plugins-1.4.15
./configure --prefix=/xyx/nagios
make all
make install   
安装完成以后在/xyx/nagios/libexec目录下生成基本的plugins. 包含ping, http, ftp, smtp等基本命令
#mv /xyx/nagios-plugins/libexec /xyx/nagios   
 楼主| 发表于 2011-11-22 23:54:37 | 显示全部楼层

使用linux下Nagios开源监控软件来监控服务器

http://hi.baidu.com/thinkwzb/blo ... 352096e850cdf6.html

Nagios是一个系统和网络监控软件,它可以监测所指定的主机和服务,并在出现问题以及问题恢复后发出报警。Nagios最早是被设计运行于Linux环境下的,但在大多数Unix操作系统下也可以使用。同时它是一个开源软件,我们可以免费获得它的源码,和使用它。Nagios是个不错的系统监控软件。

nagios-3.0.6.tar.gz
nagios-plugins-1.4.13.tar.gz
nrpe-2.12.tar.gz

1.安装Nagios
# groupadd nagios
# useradd -g nagios -d /usr/local/nagios nagios
# gunzip ./nagios-3.0.6.tar.gz
# tar xvf ./nagios-3.0.6.tar.gz
# cd ./nagios-3.0.6.tar.gz
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios \
--with-nagios-group=nagios --with-gd-lib=/usr/sfw/lib \
--with-gd-inc=/usr/sfw/include
# make all
# make fullinstall
# make install-config

2.安装openssl
# gunzip ./openssl-0.9.8j-sol10-sparc-local.gz
# pkgadd -d ./openssl-0.9.8j-sol10-sparc-local
# export LD_LIBRARY_PATH=/usr/local/ssl/lib:$LD_LIBRARY_PATH

3.安装Nagios Plugins
# gunzip ./nagios-plugins-1.4.13.tar.gz
# tar xvf ./nagios-plugins-1.4.13.tar
# cd nagios-plugins-1.4.13
# ./configure --without-mysql --prefix=/usr/local/nagios --with-openssl=/usr/local/ssl
# make
# make install
# make clean
# chown -R nagios:nagios /usr/local/nagios/libexec

4.配置Apache
在/etc/apache2/httpd.conf文件追加如下内容
#setting for nagios
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd
Require valid-user
</Directory>

Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd
Require valid-user
</Directory>

5.生成登录用户和验证口令
# /usr/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd <user_name>
此处的user_name为登录Nagios Web应用需要输入的用户名www.britepic.org
按照提示输入要设置的口令即可
配置/usr/local/nagios/etc/cgi.cfg,添加用户edison
authorized_for_system_information=nagiosadmin,edison
authorized_for_configuration_information=nagiosadmin,edison
authorized_for_system_commands=nagiosadmin,edison

authorized_for_all_services=nagiosadmin,edison
authorized_for_all_hosts=nagiosadmin,edison

authorized_for_all_service_commands=nagiosadmin,edison
authorized_for_all_host_commands=nagiosadmin,edison

6.启动Nagios
Nagios的启动程序是/usr/local/nagios/bin/nagios
# ./nagios --help

首先通过-v选项验证配置文件是否正确
# cd /usr/lcoal/nagios/bin
# ./nagios -v ../etc/nagios.cfg


如果没有错误,就可以启动它了。
# cd /usr/local/nagios/bin
# ./nagios -d /usr/local/nagios/etc/nagios.cfg
nagios web界面提示
It appears as though you do not have permission to view information for any of the services you requested...
打开cgi.cfg配置文件,里面有个参数:
use_authentication=1
为了保障系统的安全性,nagios设置了这个参数,默认为1,改为0即可
查看/usr/local/nagios/var/nagios.log日志文件,观察启动是否正常。
在IE浏览器中查看监控情况。
点击左边导航栏的 Host Detail

1. 问题的由来
     对于一个网站来说,外部用户能够看到就是该网站的页面。网站页面能否被正常访问,以及显示是否正常势必会成为网站整体水平最直接的外在表现。
     那么,如何才能在第一时间检测到网页是否正常,并且给相应的技术人员发出报警来及时解决问题,而不是等接到用户抱怨的电话后才在慌忙中仓促的解决问题呢?解决这个问题的关键就是要在第一时间发现问题,发现那些不能显示的网页或是显示不正常的网页,并及时发出报警。当然我们可以通过人工的方法去监测,但对于一些大型的、复杂的网站来说就不是很合适了,我们可以使用监控软件来解决这个问题。我所使用的就是Nagios软件,它提供的插件(Plugins)中有相应的命令可以完成对网页的监控。
     2. 如何通过Nagios解决此类问题
     对于Nagios、NRPE以及Nagios Plugins的安装配置网站的资料很多。
     想使用Nagios监控网页状况,Nagios插件中的一个命令不得不被提及,那就是check_http,我没可以使用它来检查网页是否正常、可用。该命令的具体说明和用法如下。
       Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]        [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L]        [-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>]        [-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string]        [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string]        [-k string] [-S] [-C <age>] [-T <content-type>]NOTE: One or both of -H and -I must be specified Options: -h, --help     Print detailed help screen -V, --version     Print version information -H, --hostname=ADDRESS     Host name argument for servers using host headers (virtual host)     Append a port to include it in the header (eg: example.com:5000) -I, --IP-address=ADDRESS     IP address or name (use numeric address if possible to bypass DNS lookup). -p, --port=INTEGER Port number (default: 80) -4, --use-ipv4     Use IPv4 connection -6, --use-ipv6     Use IPv6 connection -S, --ssl    Connect via SSL. Port defaults to 443 -C, --certificate=INTEGER    Minimum number of days a certificate has to be valid. Port defaults to 443    (when this option is used the url is not checked.)   -e, --expect=STRING     String to expect in first (status) line of server response (default: HTTP/1.)     If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing) -s, --string=STRING     String to expect in the content -u, --url=PATH     URL to GET or POST (default: /) -P, --post=STRING     URL encoded http POST data -N, --no-body     Don't wait for document body: stop reading after headers.     (Note that this still does an HTTP GET or POST, not a HEAD.) -M, --max-age=SECONDS     Warn if document is more than SECONDS old. the number can also be of     the form "10m" for minutes, "10h" for hours, or "10d" for days. -T, --content-type=STRING     specify Content-Type header media type when POSTing   -l, --linespan     Allow regex to span newlines (must precede -r or -R) -r, --regex, --ereg=STRING     Search page for regex STRING -R, --eregi=STRING     Search page for case-insensitive regex STRING --invert-regex     Return CRITICAL if found, OK if not   -a, --authorization=AUTH_PAIR     Username:password on sites with basic authentication -A, --useragent=STRING     String to be sent in http header as "User Agent" -k, --header=STRING      Any other tags to be sent in http header. Use multiple times for additional headers -L, --link     Wrap output in HTML link (obsoleted by urlize) -f, --onredirect=<ok|warning|critical|follow>     How to handle redirected pages -m, --pagesize=INTEGER<:INTEGER>     Minimum page size required (bytes) : Maximum page size required (bytes) -w, --warning=DOUBLE     Response time to result in warning status (seconds) -c, --critical=DOUBLE     Response time to result in critical status (seconds) -t, --timeout=INTEGER     Seconds before connection times out (default: 10) -v, --verbose     Show details for command-line debugging (Nagios may truncate output)

     通过check_http的帮助我们可以清楚的了解到该命令可以为我们做什么,以及如何去做。选项虽然很多,其实常被用到的却只有几项,而且很多选项是有默认值的一般无需设置。下面就我们需要用到的几个选项做一个简要的说明。
选   项 说   明
-H, --hostname=ADDRESS 主机名或域名
-I, --IP-address=ADDRESS server的IP地址,用于在不能DNS的情况下
-p, --port=INTEGER 端口号,默认80
-u, --url=PATH url,默认是/
-w, --warning=DOUBLE warning状态的响应时间,单位是秒
-c, --critical=DOUBLE critical状态的响应时间,单位是秒
-t, --timeout=INTEGER 连接超时时间,默认10秒

     举一个简单的实例,一个网站的域名是www.testhost.test,端口是默认80,需要监测它的主页/index.html,warning时间和critical时间、 timeout时间使用默认值,不设置。具体命令书写如下。
$ ./check_http -H www.testhost.test -u /index.html
HTTP OK HTTP/1.1 200 OK - 115357 bytes in 1.717 seconds |time=1.716934s;;;0.000000 size=115357B;;;0

     可以看出该网页是正常的,如果网页地址不对或显示有错误也会有相应的反馈信息。
     3. 具体配置Nagios来监控网页
     通过Nagios监控网页一般有两种方式,一种是直接通过Nagios监控主机配置监控服务监视网页;另一种是在某一安装了NRPE的客户端主机上配置监控命令,通过NRPE监控网页情况,再将结果传回给Nagios监控主机。通过一个装有NRPE的客户端作为桥梁的方式可以使主机更加安全,减轻 Nagios主机的负担,同时可以避免在Nagios主机上配置DNS等不必要的麻烦。
     方式一、直接通过Nagios主机监控网页。
     方式二、通过NRPE监控网页。代理监控传输给主机监控端
     方式一的配置十分简单,只需要在Nagios的配置文件里添加一个服务即可。
     配置内容如下
     修改./etc/objects/commands.cfg,增加如下内容。
   
     #'check_http' check web pagedefine command{         command_name     check_webpage         command_line     $USER1$/check_http $ARG1$         }
   
     修改./etc/objects/localhost.cfg,增加如下内容。
   
define host{
        use                      linux-server                     
        host_name                web_pages         
        alias                    web_pages         
        address                  127.0.0.1         
}   
#the check web pages on the remote host.
define service{
         use           generic-service
         host_name            web_pages       ;主机名,为了便于显示可以定义一个虚拟的host
        service_description      web page1
        check_command            check_webpage!-H www.testhost.test -u /index.html  
}
   
     方式二的配置方法略复杂一些,需要修改两台主机的配置文件。
     修改NRPE的配置文件,增加如下内容。
   
    #check webpagecommand
[check_webpage]=/usr/local/nagios//libexec/check_http -H www.testhost.test -u /index.html
   
     修改Nagios配置文件,增加如下内容。
   
     #the check_apache on the remote host.
define service{
         use                      generic-service
         host_name                hostname
         service_description      web page
         check_command            check_nrpe! check_webpage
}
   
     以上仅仅是举个简单的例子来说明,当然实际环境要更复杂、页面要更多,可以通过增加服务(service)的方式将其一一纳入监控范围


------------------
陈龙
QQ:84047848
MSN:dragonchen82@hotmail.com

 楼主| 发表于 2011-11-22 23:56:48 | 显示全部楼层

Nagios飞信linux系统免费短信报警配置

Nagios飞信linux系统免费短信报警配置

本人声明如需转载请保留如下信息:
作者:SOLARIS小兵
MAIL:solarisxb@hotmail.com
BLOG:http://solarisxb.cublog.cn/

一、 前言:
1、 nagios是一个非常好的系统监控工具,现在我的nagios系统已经正常运行,使用短信猫和邮件可以报警。使用飞信可以节约我们的短信猫和短信费用。
2、 飞信首先手机要开通中国移动的飞信业务。目前使用飞信发送短信是免费的。需要把接受短信的手机和飞信发送手机加为好友。
3、 下载飞信的linux客户端程序.解开包后只有一个文件sms。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要libace的glibc库的支持。
二、 飞信linux程序下载:
1、 飞信官方网站:http://www.it-adv.net/
2、 飞信官方命令下载:sms
http://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
3、 飞信官方lib库下载:
32位官方lib库:http://www.it-adv.net/fetion/library32.rar
64位官方lib库:http://www.it-adv.net/fetion/library64_linux.tar.gz

三、 飞信程序测试:
1、 飞信命令测试:
# wget http://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
# tar xvfz fetion_linux_20080402.tar.gz
# cp sms /usr/bin
# sms -h
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
-f:Fetion mobile account(only supports mobile phone No.)
-p:Account password
-t:Destination mobile list
-m:Message
-i:File name(only supports utf8)
-a:Auto send invite using invite_message.
-d:Debug on.
如果没有安装lib库,将会提示 缺少libACE.so.5.4.7包
四、 解决缺少lib库的方法:
说明: 在centOS5下装提示需要libACE.so.5.4.7这个库,千万不要自己去安装ACE包,很麻烦,官方已经给了liunx的下载版本:
1.先检查一下缺少的lib文件
[root@nagios libexec]# ldd sms
       linux-gate.so.1 =>   (0x00b00000)
       libACE.so.5.4.7 => not found
       libACE_SSL.so.5.4.7 => not found
       libssl.so.0.9.8 => not found
       libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x02a05000)
       libm.so.6 => /lib/libm.so.6 (0x00cd4000)
       libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x029f7000)
       libc.so.6 => /lib/libc.so.6 (0x00b92000)
       /lib/ld-linux.so.2 (0x001c3000)
2.下载lib库:
32位官方lib库:http://www.it-adv.net/fetion/library32.rar
64位官方lib库:http://www.it-adv.net/fetion/library64_linux.tar.gz
3、安装lib库
[root@nagios library32]# ls
libACE.so.5.4.7   libACE_SSL.so.5.4.7   libcrypto.so.0.9.8   libssl.so.0.9.8
[root@nagios library32]# cp *.* /lib/
[root@nagios library32]# cp *.* /usr/lib/
4、测试sms:
[root@nagios libexec]# ./sms
************************ IMPORTANT STATEMENT ************************
**                                                                 **
** PLEASE DON'T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES. **
** OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES.                **
**                                                                 **
**                                     [version:2008-4-2]        **
*********************************************************************
This program is for sending short messages via CMCC Fetion!
http://www.fetion.com.cn/
AUTHOR:KelvinHan MSN/EMAIL:shichangguo@msn.com 2008/3/8
Usage:
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
       -f:Fetion mobile account(only supports mobile phone No.)
       -p:Account password
       -t:Destination mobile list
       -m:Message
       -i:File name(only supports utf8)
       -a:Auto send invite using invite_message.
       -d:Debug on.
五、 Nagios飞信测试:
1、 需要注册一个可以使用飞信的手机号码,测试期间可以自己发送给自己做测试。
2、 给别的手机发飞信,需要给把手机绑定为好友。
3、 飞信环境解决了,发短信测试一下
136933XXXXX为发飞信的注册手机号码
136833XXXXX、36733XXXXX 为接收飞信短信的手机号码

[root@nagios libexec]# ./sms -f 136933XXXXX -p password -t 136833XXXXX -m hello,this is test

也可以要发的消息在一个文本文件里,如 message.txt
./sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -i message.txt

如果接收短信的手机号码在你的好友列表里,就会发送成功。
如果不在好友列表里,发送是不成功的。如果你想让程序邀请他们加入,那么就用 -a 参数
sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -m 你好,飞信 -a UBUNTU

这样,对方就会收到移动发的确认短信。
六、 Nagios配置:
1、 nagios命令配置commands.cfg:
more /usr/local/nagios/etc/commands.cfg
define command{
       command_name notify-service-by-sms

       command_line /usr/bin/sms -f 13901111111 -p 562128   -t $CONTACTPAGER$ -m "$HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$
on $TIME$ result is $SERVICEOUTPUT$" $CONTACTPAGER$
}

2、 nagios发送配置contacts.cfg:

[root@nagios ~]# more /usr/local/nagios/etc/contacts.cfg
define contact{
       contact_name                    sa
       alias                         system admin
       host_notification_period        24x7
       service_notification_period     24x7
       host_notification_options    d,r,
       service_notification_options c,w,r
   service_notification_commands notify-service-by-email,notify-service-by-sms
#    service_notification_commands notify-service-by-email
       host_notification_commands    notify-host-by-email
#        email                         1234@sina.com
   pager                         158010775111
       }
[root@nagios ~]#

七、 备注:

添加内容:现在新的lib库,测试以后在32位和64位操作系统都可以使用!!
测试系统:centos 5.2
wget http://www.it-adv.net/fetion/lib_lin_32.tar.gz

fetion_linux_20080402.tar.gz (29.53 KB)

library32.rar (936.92 KB)

library64_linux.tar.gz (1.27 MB)
您需要登录后才可以回帖 登录 | 注-册

本版积分规则

小黑屋|手机版|Archiver|数码鹭岛 ( 闽ICP备05008334号 )  

counter

GMT+8, 2018-12-14 21:26 , Processed in 0.362530 second(s), 26 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表