nagios安装过程
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
使用linux下Nagios开源监控软件来监控服务器
http://hi.baidu.com/thinkwzb/blog/item/9283a700ce352096e850cdf6.htmlNagios是一个系统和网络监控软件,它可以监测所指定的主机和服务,并在出现问题以及问题恢复后发出报警。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
=/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
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 -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文件
# 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库
# ls
libACE.so.5.4.7 libACE_SSL.so.5.4.7 libcrypto.so.0.9.8 libssl.so.0.9.8
# cp *.* /lib/
# cp *.* /usr/lib/
4、测试sms:
# ./sms
************************ IMPORTANT STATEMENT ************************
** **
** PLEASE DON'T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES. **
** OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES. **
** **
** **
*********************************************************************
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 -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 为接收飞信短信的手机号码
# ./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:
# 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
}
#
七、 备注:
添加内容:现在新的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)
页:
[1]