Archive for the ‘ 服务器 ’ Category

Linux(Centos)防DDOS攻击软件-DDoS-Deflate

(D)DoS-Deflate是一款免费的用来防御和减轻DDoS攻击。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.

DDoS-Deflate安装及配置

1、安装

wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh
./install.sh

阅读全文

Ubuntu下安装&使用压力测试工具Webbench-1.5

Webbench是有名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。它的帮助文件和文档请到:www.webbench.com上查看。

Webbech 能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webBech的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。
阅读全文

Ubuntu 10.04 64bit 编译安装MySQL5.1.x、 PHP 5.3、NGINX 0.8.x

一时兴起,决定体验Ubuntu,当然少不了要配置开发环境。从网上收集了一些资料,开始配置安装过程。

首先我们现配置下系统,避免以后的问题。
1、locale 的问题,可能会造成在 SSH 终端下的乱码,Debian 可以用 dpkg-reconfigure locales 来设定,Ubuntu就不是这样了。可以先查看一下 /usr/share/i18n/SUPPORTED 这个文件,有哪些受支持的 locale 设定,然后用命令激活即可。

locale-gen en_US.UTF-8
locale-gen fr_FR
locale-gen zh_CN.UTF-8
locale-gen zh_CN
locale-gen zh_CN.GBK
locale-gen zh_CN.GB18030

然后设定系统默认的编码语言,这样 SSH 下面就不会有乱码了,打开 /etc/default/locale 文件,输入以下内容,然后重启系统即可。

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"

2、因为系统的pygrub已经更换成pvgrub,此时我们可以根据自己的喜好升级系统内核了…那么我们就敲命令把内核也一起升掉好了…

apt-get update
apt-get upgrade
apt-get dist-upgrade

现在我们需要确认一下系统内核,然后把多余的系统内核给卡擦了…

uname -a #确定下版本,不要把现在正在用的给删了
dpkg --get-selections | grep linux  #可以看到系统内核的列表

然后更改 /boot/grub/menu.lst,修改其中的版本就可以了,当然建议重启一下然后再删除系统内核。
4、安装一些必备的软件:

aptitude install vim
aptitude install wget
aptitude install rcconf
aptitude install cron
aptitude install build-essential
aptitude install imagemagick
aptitude install postfix
aptitude install vsftpd
aptitude install mailx
aptitude install gawk
aptitude install bison

阅读全文

[多图] Ubuntu 8.04 中开启3D桌面特效与设置方法

Ubuntu 8.04 (Hardy Heron) 中集成了强大3D交互界面,Ubuntu 的 3D桌面特效给用户带来了一种全新的视觉用户。想必有很多朋友也因为看到了 Ubuntu 8.04 那炫目的 3D 桌面特效才开始慢慢地了解Ubuntu 8.04 (Hardy Heron) 的。虽然在这之前也不少的朋友写过设置 Ubuntu  Linux 3D桌面特效的文章,但新发行版的发布也会有新的朋友看到了 Ubuntu 3D 桌面特效而接触 Ubuntu  Linux 。因此,我觉得有必要把在Ubuntu 8.04 (Hardy Heron) 开启 3D 桌面特效的方法给新手们再详细的介绍一下。
阅读全文

centos 5.2 安装pptpd配置vpn服务器

1、安装ppp和iptables

yum install -y ppp iptables

2、下载pptpd的rpm包并安装

32位 http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm

64 位 http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.x86_64.rpm

要注意64位的系统要下载64位的rpm包,32位的系统要下载32位的rpm包,别搞错了

阅读全文

有趣的Nginx QUERY_STRING BUG

今天在开发一个验证签名的功能,所以需要从$_SERVER['QUERY_STRING']截取到签名前的字符串。但是开发环境中是APACHE的,生产环境是NGINX+PHP_FASTCGI,问题就从这里来了,请看下面。

NGINX下的QUERY_STRING:
[QUERY_STRING] => gateway/login/&&MemberID=110000009569680&EmpFlg=N&UserName=LIJOSHUA&EmpOrgName=&sysDate=03%2F25%2F2010+10%3A55%3A30&paSignature=6CA0B32525DEEF5A4571AE2CB7D16C326E1636E08367F8658B422B279FFA787C9206F0FFBFF1D876E5602928E0F745FB83856D12FE3DF2C5EF28A4BE1EF15D7DB6F1E0A4C841F0029F6463C0483E761789F1C9

APACHE下的QUERY_STRING:
[QUERY_STRING] => MemberID=110000009569680&EmpFlg=N&UserName=LIJOSHUA&EmpOrgName=&sysDate=03%2F25%2F2010+10%3A55%3A30&paSignature=6CA0B32525DEEF5A4571AE2CB7D16C326E1636E08367F8658B422B279FFA787C9206F0FFBFF1D876E5602928E0F745FB83856D12FE3DF2C5EF28A4BE1EF15D7DB6F1E0A4C84

用法修改:
$query_string = $_SERVER['QUERY_STRING'];
改为:
$uri = $_SERVER['REQUEST_URI'];
$arrURL = parse_url($uri);
$query_string = $arrURL['query'];

Cent OS 5 安装飞信机器人(Fetion Robt) 发送短信、错误警报

飞信机器人介绍

飞信机器人是国内第一款面向企业应用的第三方飞信产品:
1、高效CLI(命令行)操作方式
2、高效C++语言开发
3、跨平台应用(X86下LINUX/WINDOWS,其它平台请联系定制服务)
4、插件支持,完全开放的插件接口,用户通过重写插件,可以实现自己的应用
5、支持批处理运行
6、支持SOCKET调用(查看socket_interface/demo)下代码
7、内部集成小型WEB服务器,支持WEB状态查询及交互
8、软件完全免费

官方网站
http://www.it-adv.net

新版交互式飞信安装方法

开始我下载的是64位的,但是报错:bash: ./fetion: cannot execute binary file,后来安装Redhat32位的,问题得到解。

下载安装程序:

fetion20080522004-linrh4tar
libraryrh4x32tar

cd /usr/local
wget http://www.it-adv.net/fetion/download/fetion20080522004-linrh4.tar.gz
tar xf fetion20080522004-linrh4.tar.gz
mv install sms
rm fetion20080522004-linrh4.tar.gz

安装支持库:

cd fetion
mkdir lib
wget http://www.it-adv.net/fetion/libraryrh4x32.tar.gz
tar xf libraryrh4x32.tar.gz
rm libraryrh4x32.tar.gz
ln -s /usr/local/sms/lib/libcrypto.so.0.9.7a /usr/local/fetion/lib/libcrypto.so.4
ln -s /usr/local/sms/lib/libssl.so.0.9.7a /usr/local/fetion/lib/libssl.so.4
echo "/usr/local/sms/lib" > /etc/ld.so.conf.d/fetion-i386.conf
/sbin/ldconfig

开始使用
看看帮助信息,很有必要

 ./fetion -h
 ************************ IMPORTANT STATEMENT ************************
 **                                                                 **
 **   PLEASE DON'T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES.   **
 **   OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES.                  **
 **                                                                 **
 **                                Version:[20080522004-linrh4]      **
 *********************************************************************
 This program is the console version of China Fetion!
 It's free for personal user.
 Fetion official website: http://www.fetion.com.cn/
 This project website: http://www.it-adv.net/
 
 AUTHOR:KelvinH MSN/EMAIL:shichangguo@msn.com
 
 Usage:
    fetion -h
        -h: help
    fetion -u mobile -p pwd [-b batchfile] [-EN] [-d]
    fetion -u mobile -p pwd [-b batchfile] [-EN] [-d]
        -u: Fetion user account(only supports mobile phone No.)
        -p: Account password
        -b: Batch file name
        -d: Debug on and write logs to [mobile]-debug.log
        -EN: English

连接

./fetion -u 15800xxxx -p xxxx
登录...
***********************************************************************************
WEB服务连接: http://localhost:40000/, 请用IE/Firefox直接打开访问.
***********************************************************************************
713xxxx@[15800xxxxx]>> ..............加载好友列表.........................
请输入help或? 获取命令列表,quit或exit 退出系统 
713xxxx@[15800xxxxx]>>

发送:

713xxxxx@[158xxxxx]>> sms 15800353332 "服务器免费短信测试1" 
713xxxxx@[158xxxxx]>> 
***********************************************************************************
发送到[ 158xxxxx2]的短信成功 
***********************************************************************************

旧版本安装:
程序下载
fetion_linux_20080402tar

wget http://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
tar xf fetion_linux_20080402.tar.gz
./sms -f 158xxxxxx -p xxxxxx -t 158xxxxxxxx -m 测试信息
[Mon Jan 19 14:39:50 2009] :) Send msg to 15800353332 ok!

Nagios 配置篇

nagios.cfg

nagios_group=nagcmd

Nagios 配置文件详解

作者:Joshua

注意

  • 当创建或编辑配置文件时,要遵守如下要求:
  • 以符号’#'开头的行将视为注释不做处理;
  • 变量必须是新起的一行 - 变量之前不能有空格符;
  • 变量名是大小写敏感的;

配置文件列表:
主配置文件

主配置文件[--prefix/nagios/etc/nagios.cfg]:

##############################################################################
#
# NAGIOS.CFG - Sample Main Config File for Nagios 3.0.6
#
# Read the documentation for more information on this configuration
# file.  I've provided some comments here, but things may not be so
# clear without further explanation.
#
# Last Modified: 10-15-2008
#
##############################################################################
 
# LOG FILE
# This is the main log file where service and host events are logged
# for historical purposes.  This should be the first option specified
# in the config file!!!
# 这个变量用于设定Nagios在何处创建其日志文件。
# 它应该是你主配置文件里面的第一个变量,当Nagios找到你配置文件并发现配置里有错误时会向该文件中写入错误信息。
# 如果你使能了日志回滚,Nagios将在每小时、每天、每周或每月对日志进行回滚。
 
log_file=/usr/local/nagios/var/nagios.log
 
# OBJECT CONFIGURATION FILE(S)
# 对象的配置文件
# These are the object configuration files in which you define hosts,
# host groups, contacts, contact groups, services, etc.
# You can split your object definitions across several config files
# if you wish (as shown below), or keep them all in a single config file.
# 该变量用于指定一个包含有将用于Nagios监控对象的对象配置文件。
# 对象配置文件中包括有主机、主机组、联系人、联系人组、服务、命令等等对象的定义。
# 配置信息可以切分为多个文件并且用cfg_file=语句来指向每个待处理的配置文件
 
# You can specify individual object config files as shown below:
# 您可以指定单个对象的配置文件, 如下所示:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
 
# Definitions for monitoring the local (Linux) host
# 定义监测本地( Linux )主机
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
 
# Definitions for monitoring a Windows machine
# 定义监测( windows )主机
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
 
# Definitions for monitoring a router/switch
# 定义监测路由器或交换机
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg
 
# Definitions for monitoring a network printer
# 定义监测打印机
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg
 
# You can also tell Nagios to process all config files (with a .cfg
# extension) in a particular directory by using the cfg_dir
# directive as shown below:
# 您也可以告诉Nagios处理所有配置文件(带有.cfg扩展名)在特定的目录使用cfg_dir指令如下所示:
 
#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers

配置文件里的变量:

日志文件

格式:    log_file=<file_name>
样例:    log_file=/usr/local/nagios/var/nagios.log

说明:

这个变量用于设定Nagios在何处创建其日志文件。它应该是你主配置文件里面的第一个变量,当Nagios找到你配置文件并发现配置里有错误时会向该文件中写入错误信息。如果你使能了日志回滚,Nagios将在每小时、每天、每周或每月对日志进行回滚。

对象配置文件

格式:    cfg_file=<file_name>
样例:
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/commands.cfg

说明:

该变量用于指定一个包含有将用于Nagios监控对象的对象配置文件。对象配置文件中包括有主机、主机组、联系人、联系人组、服务、命令等等对象的定义。配置信息可以切分为多个文件并且用cfg_file=语句来指向每个待处理的配置文件.

对象配置目录:

格式:    cfg_dir=<directory_name>
样例:
cfg_dir=/usr/local/nagios/etc/commands
cfg_dir=/usr/local/nagios/etc/services
cfg_dir=/usr/local/nagios/etc/hosts

说明:

该变量用于指定一个目录,目录里包含有将用于Nagios监控对象的对象配置文件。所有的在这个目录下的且以.cfg为扩展名的文件将被作为配置文件来处理。另外,Nagios将会递归该目录下的子目录并处理其子目录下的全部配置文件。你可以把配置放入不同的目录并且用cfg_dir=语句来指向每个待处理的目录。

FreeBSD安装Nagios监控系统

通过前篇文章《Linux安装Nagios监控系统, perl-fcgi, nginx》看,Nagios的安装比较简单,即使是用nginx来替代apache。复杂的是设置和配置参数的设定。不过你要放松一点,毕竟我们要搞定它,不是吗?那就开始吧:

1:获得最新的安装包,http://www.nagios.org/download
2:以root身份登录服务器,目前最新的版本是3.0.6:
1)nagios,版本2.5:

wget http://nchc.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz

2)获得nagios插件,版本1.4.3:

wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz

3)获得图库文件:

http://dl.sf.net/nagios/imagepak-base.tar.gz

4)NRPE,版本2.5.2

http://ufpr.dl.sourceforge.net/sourceforge/nagios/nrpe-2.5.2.tar.gz

5)NSCA,版本2.6

http://kent.dl.sourceforge.net/sourceforge/nagios/nsca-2.6.tar.gz

3:切换到root用户:
sudo su

4:解压缩
tar zxvf nagios-2.5.tar.gz

5:建立运行nagios的用户:
adduser nagios

6:建立安装nagios的文件夹,并使这个文件夹的所有者为nagios:nagios
mkdir /usr/local/nagios
chown nagios.nagios /usr/local/nagios

7:确认web服务器的用户
可能会通过web接口执行一些命令,必须确定web服务器以哪个用户运行的,通常为:apache:
grep “^User” /usr/local/apache2/conf/httpd.conf

8:建立命令文件组
这个新的组会包括apache的用户和nagios的用户
pw groupadd nagcmd
pw usermod apache -G nagcmd
pw usermod nagios -G nagcmd
———————————-
cat /etc/group
nagcmd:*:9007:apache,nagios
———————————-

8:运行配置脚本并安装nagios
cd nagios-3.0.6

./configure –prefix=/usr/local/nagios –with-gd-lib=/usr/local/lib –with-gd-inc=/usr/local/include
make all
make install
make install-init
make install-commandmode
make install-config

9:安装nagios-plugins
tar zxvf nagios-plugins-1.4.13.tar.gz
cd nagios-plugins-1.4.13
./configure –prefix=/usr/local/nagios-plugins
make all
make install
安装完成以后在/usr/local/nagios-plugins-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下即可。
mv /usr/local/nagios-plugins-plugins/libexec/ /usr/local/nagios/

10:imagepak-base.tar.gz的安装
tar –xvzf imagepak-base.tar.gz
解压以后是base目录
mv base/ /usr/local/nagios/share/images/logos/

———————————————————————-
现在开始配置:
———————————————————————-
1:配置web接口
假设你已经运行了apache,如果没有,请参考:

http://localhost/upload/blog.php?do-showone-tid-18.html

vi /usr/local/apache2/conf/httpd.conf
添加如下内容:
引用
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName “Nagios Access”
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

Alias /nagios /usr/local/nagios/share
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName “Nagios Access”
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

修改完毕,保存文件,并重启apache:
/usr/local/apahce2/bin/apachectl restart

2:配置apache的BASIC认证:
生成认证密码:
/usr/local/apache2/bin/htpasswd –c /usr/local/nagios/etc/htpasswd.users nagios nagios
apache接口配置完成。

开始配置nagios:
cd /usr/local/nagios/etc/
在/usr/local/nagios/etc下是nagios的配置模板文件-sample,把.cfg-sample文件全部拷贝成.cfg
例如:cp nagios.cfg-sample nagios.cfg
全部拷贝完成即可.

vi minimal.cfg
注释所有command:
注释的方法是在每一个定义语句前面添加”#“
修改cgi.cfg
修改use_authentication=1为use_authentication=0,即不用验证.不然有一些页面不会显示。

现在检查配置文件是否有语法错误:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果正确,会显示以下结果:
Total Warnings: 0
Total Errors: 0
否则,需要根据提示进行修改配置文件。

配置文件等会再弄。现在启动nagios
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

为了使nagios异常中断,我们使用daemontools启动:
安装daemontool:
mkdir -p /package
chmod 1755 /package
cd /package
fetch http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
cd admin/daemontools-0.76/
package/install
检查svscan进程是否启动:
ps aux | grep svscan
root 376 0.0 0.0 1636 0 con- IW – 0:00.00 /bin/sh /command/svscanboot
root 411 0.0 0.0 1224 208 con- S 8Jul06 0:42.50 svscan /service

ok,启动正常了。
cd /service
mkdir nagios
chmod 1755 nagios
touch ./run
chmod 755 ./run
vi run
PATH=/usr/local/bin:/usr/bin:/bin
export PATH

exec env – PATH=$PATH \
/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

mkdir log
cd log
touch ./run
chmod 755 ./run
vi ./run
#!/bin/sh
exec setuidgid logadmin multilog t s1000000 n100 ./main

mkdir main
chmod 777 main
chown nagios.nagios main
touch status
chown nagios.nagios status

svc -u /service/nagios/
svstat /service/nagios/
root@## ps auxww | grep nagios
root 23276 0.0 0.1 1176 488 ?? I 5:00PM 0:01.71 supervise nagios
nagios 34251 0.0 0.3 2316 1552 ?? S 6:06PM 0:00.10 /usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg
root@##

ok,现在把nagios服务做成自动启动的服务了。
通过svc命令可以启动或者停止服务。
———————————————————————————
svc opts services
opts is a series of getopt-style options. services consists of any number of arguments, each argument naming a directory used by supervise.

-u: Up. If the service is not running, start it. If the service stops, restart it.
-d: Down. If the service is running, send it a TERM signal and then a CONT signal. After it stops, do not restart it.
-o: Once. If the service is not running, start it. Do not restart it if it stops.
-p: Pause. Send the service a STOP signal.
-c: Continue. Send the service a CONT signal.
-h: Hangup. Send the service a HUP signal.
-a: Alarm. Send the service an ALRM signal.
-i: Interrupt. Send the service an INT signal.
-t: Terminate. Send the service a TERM signal.
-k: Kill. Send the service a KILL signal.
-x: Exit. supervise will exit as soon as the service is down. If you use this option on a stable system, you’re doing something wrong; supervise is designed to run forever.
———————————————————————————
比如:
停止nagios--svc -d /service/nagios/
重启nagios--svc -t /service/nagios/
启动nagios--svc -u /service/nagios/

当然,你也可以使用inited的方式进行:
/usr/local/etc/rc.d/nagios start/stop

好了,反正daemontools很强大,以后慢慢熟悉,转入正题。
现在打开网页:http://localhost/nagios/
一定会让你大吃一惊,呵呵,我的服务器和服务状态都清楚的看到了。
现在我们的nagios中只有一个,那就是它自己,localhost,呵呵,等会我们添加别的主机和主机服务,ok,我们认识一下nagios的庐山真面目:

配置nagios:

1)为主机添加服务
2)添加主机并添加服务
3)停止一个服务
4)删除一台主机和服务
5)查看所有主机的故障
6)查看一台特定的主机状态
7)改变报警的时间间隔
8)改变发现故障的重试次数
9)如何在nagios中使用外部命令

1)为主机添加一个服务
为localhost主机添加qmail服务的监控,方法如下:
vi minimal.cfg
define service{
use generic-service ; Name of service template to use
host_name localhost
service_description qmail_smtp
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_smtp!20%!10%!/
}

可以直接拷贝原有的进行修改,我这个就是拷贝的原有的check_local_disk进行的。
修改host_name,service_description,check_command等

define service{
use generic-service ; Name of service template to use
host_name localhost
service_description qmail_pop3
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_pop!20%!10%!/
}
照猫画虎的进行修改,然后去修改:
vi checkcommands.cfg
#’check_qmail’ command definition
define command{
command_name check_qmail
command_line $USER1$/check_smtp -H 127.0.0.1
}
define command{
command_name check_pop3
command_line $USER1$/check_pop -H 127.0.0.1
}
保存,然后检查配置文件:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果没有错误会显示:
Total Warnings: 0
Total Errors: 0
如果有错误,请根据提示进行错误的修正。
重启nagios
svc -d /service/nagios/ && svc -u /service/nagios/
通过web页面检查nagios的结果:

http://10.5.1.153/nagios/

点击“Service Detail”
会出现:

2)添加主机并添加服务
我们会监控这台主机的负载、磁盘等一些没有通过端口方式启动的服务器状态,以及它的服务,比如:apache、mysql、qmail和ntp等等吧。那么没有端口的nagios直接能监控到吗?答案是不行。所以我们必须在两台主机上安装nrpe,nrpe可以启动5666端口,把检测的信息源源不断的传给监控中心的主机。
ok,我们把apache、mysql、qmail和ntp先加上,这回我们把监控的主机和服务新建一个文件:
cd /usr/local/nagios/etc/
touch 10_5_1_156.cfg
vi nagios.cfg
cfg_file=/usr/local/nagios/etc/10_5_1_156.cfg

vi 10_5_1_156.cfg
定义一个主机:
define host{
use generic-host ; Name of host template to use
host_name test_nrpe
alias client
address 10.5.1.156
check_command check-host-alive
max_check_attempts 1
check_period 24×7
notification_interval 120
notification_period 24×7
notification_options d,r
contact_groups admins
}

定义主机需要检查的服务:
define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description PING
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_ping!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description apache
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_http!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description mysql
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_mysql!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description ntp
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_ntp!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description qmail_smtp
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_smtp!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description qmail_pop3
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_pop!100.0,20%!500.0,60%
}
现在我们象上次一样把
服务也定义完了:

此时是不是多了一个主机和它下面的服务呢?那是肯定的,添加主机和服务可能出现的问题有如下情况:
1:配置参数出现问题,如果你没有检查配置就启动nagios,可能会启动成功,但是显示会不正常;
解决方法:调整配置参数
2:Connection refused
当出现这个问题的时候,我开始以为是ssh的无密码登录没有成功,但是其实我的服务器没有启动该服务造成的,启动服务即可。

但是这些是有端口的服务,没有使用端口的状态任何检测?
使用nrpe,ok,我们现在在服务器上安装nrpe:
一、远程主机的配置
1、安装nrpe与配置
fetch http://ufpr.dl.sourceforge.net/sourceforge/nagios/nrpe-2.5.2.tar.gz
tar zxvf nrpe-2.5.2.tar.gz
cd nrpe-2.5.2
./configure –enable-ssl –enable-command-args
make all
mkdir -p /usr/local/nagios/etc
mkdir /usr/local/nagios/bin
mkdir /usr/local/nagios/libexec
pw addgroup nagios
pw useradd nagios -g nagios -d /usr/local/nagios/ -s /sbin/nologin
chown -R nagios:nagios /usr/local/nagios
cp ./sample-config/nrpe.cfg /usr/local/nagios/etc
cp src/nrpe /usr/local/nagios/bin
2、启动nrpe,端口为5666
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
netstat -ant | grep 5666
tcp4 0 0 *.5666 *.* LISTEN

二、监控服务器上的配置
1、安装nrpe(主要是使用check_nrpe模块)
fetch http://ufpr.dl.sourceforge.net/sourceforge/nagios/nrpe-2.5.2.tar.gz
tar zxvf nrpe-2.5.2.tar.gz
cd nrpe-2.5.2
./configure –enable-ssl –enable-command-args
make all
cp src/check_nrpe /usr/local/nagios/libexec
2、nagios文件的配置
vi checkcommands.cfg
定义check_nrpe命令
# ‘check_nrep’ command definition
define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
三、上面我们已经配置了一部分参数,下面是配置的最终结果:
define host{
use generic-host ; Name of host template to use
host_name test_nrpe
alias client
address 10.5.1.156
check_command check-host-alive
max_check_attempts 1
check_period 24×7
notification_interval 120
notification_period 24×7
notification_options d,r
contact_groups admins
}

# ‘check_load’ command definition
define command{
command_name check_load
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}

# ‘check_load’ command definition
define command{
command_name check_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$
}
define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description PING
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_ping!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description apache
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_http!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description mysql
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_mysql!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description ntp
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_ntp!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description qmail_smtp
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_smtp!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description qmail_pop3
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_pop!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description test_load
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_load!100.0,20%!500.0,60%
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description test_disk
is_volatile 0
check_period 24×7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24×7
check_command check_disk!100.0,20%!500.0,60%
}

四、检查配置参数并重启nagios

9)如何在nagios中使用外部命令
vi /usr/local/nagios/etc/nagios.cfg
check_external_commands=1

mkdir /usr/local/nagios/var/rw
chown nagios.nagcmd /usr/local/nagios/var/rw
chmod u+rw /usr/local/nagios/var/rw
chmod g+rw /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw

svc -t /service/nagios/
/usr/local/apache2/bin/apachectl restart