Chinaunix首页 | 论坛 | 博客
  • 博客访问: 289415
  • 博文数量: 176
  • 博客积分: 2516
  • 博客等级: 少校
  • 技术积分: 1350
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-01 11:18
文章分类
文章存档

2011年(1)

2010年(18)

2009年(157)

我的朋友

分类: LINUX

2009-11-18 17:37:51

1.apache 安装
1.1下载

1.2安装
tar zvxf httpd-2.2.6.tar.gz
cd httpd-2.2.6
./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max && make && make install
这里我们通过 enable-module参数告诉设置脚本,我们需要启动so和rewrite模块,so模块是用来提DSO支持的apache核 心模块,而rewrite模块则是用意实现地址重写的模块,由于rewrite模块需要DBM支持,如果在初次安装时没有编译进apache,以后需要用 到时需要重新编译整个apache才可以实现。为此除非你可以确定以后不会用到rewrite模块,否则还是建议你在第一次编译的时候把rewrite模 块编译好。
enable-shared=max 这个参数的作用时编译apache时,把除了so以外的所有apache的标准模块都编译成DSO模块。而不是编译进apache核心内。
1.3启动
/usr/local/apache/bin/apachectl start  //启动apache
然后用ie看http://服务器地址。
/usr/local/apache/bin/apachectl stop  //关闭apache
2. nagios安装
2.1下载

2.2安装
groupadd nagios && useradd nagios -g nagios -M –r //建立nagios的运行用户和组
tar -zxf ./ nagios-2.10.tar.gz
cd ./nagios-2.10
./configure –prefix=/usr/local/nagios make all && make install
chown –R nagios:nagios /usr/local/nagios //把nagios文件夹给nagios用户
make install-init && make install-commandmode && make install-config //分别安装nagios启动脚本、cgi文件和config文件。
2.3 apache配置文件
//在apache中添加nagios
useradd apache -g daemon -M -r //为apache添加执行用户
vi /usr/local/apache/conf/httpd.conf //编辑apache配置文件
找到 User xxx
Group xxx
改为 User apache
Group daemon
在文件的最后添加:
####################
#setting for nagios#
####################
ScriptAlias /nagios/cgi-bin /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

Alias /nagios /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

保存退出
usermod –G nagios apache //把apache的执行用户添加到nagios组里
//这一步非常重要,是能在web页面执行cgi的关键
/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd test
//为访问nagios用户设置权限,建立了一个用户test,之后提示输入两次密码(我设置的是111111)。
测试:
ls /usr/local/nagios/ //如果安装目录下有etc、bin、 sbin、 share、 var则说明nagios安装成功。
2.4 nagios配置文件说明
(注:这部分是直接复制的cfg文件,自己没有做过)
i. 主体配置文件nagios.cfg
这个文件是nagios的主体配置文件,需要修改以下几个地方:

注释行:
#cfg_file=/usr/local/nagios/etc/localhost.cfg
去掉以下几行的注释:
cfg_file=/usr/local/nagios/etc/contactgroups.cfg //联系组配置文件路径
cfg_file=/usr/local/nagios/etc/contacts.cfg //联系人配置文件路径
cfg_file=/usr/local/nagios/etc/hostgroups.cfg //主机组配置文件路径
cfg_file=/usr/local/nagios/etc/hosts.cfg //主机配置文件路径
cfg_file=/usr/local/nagios/etc/hostgroups.cfg //服务组配置文件路径
cfg_file=/usr/local/nagios/etc/services.cfg //服务配置文件路径
cfg_file=/usr/local/nagios/etc/timeperiods.cfg //监视时段配置文件路径

改check_external_commands=0为check_external_commands=1
//允许在web界面下执行重启nagios、停止主机/服务检查等操作

把command_check_interval的值从默认的1改成command_check_interval=10s(或更高,根据自己需求而定)

ii. CGI脚本控制文件cgi.cfg
首先确保use_authentication=1。
修改
default_user_name=test //这里只能写一个用户

authorized_for_system_information=nagiosadmin,test
authorized_for_configuration_information=nagiosadmin,test
authorized_for_system_commands=test //多个用户之间用逗号隔开
authorized_for_all_services=nagiosadmin,test
authorized_for_all_hosts=nagiosadmin,test
authorized_for_all_service_commands=nagiosadmin,test
authorized_for_all_host_commands=nagiosadmin,test
这里的test用户,就是
/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd test
这个用户。如果要添加新管理员,执行:
# /usr/local/apache/bin/htpasswd /usr/local/nagios/etc/htpasswd test1
之后把test1用户添加到上面的cgi.cfg里的授权用户后,多个用户用逗号隔开。

iii. 时间段定义timeperiods.cfg
# vi /usr/local/nagios/etc/timeperiods.cfg
define timeperiod{
timeperiod_name 24x7 //时间段的名称,这个地方不要有空格
alias 24 Hours A Day,7Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
这 里我们定义了一个时间段,每天都是00:00-24:00,这个时间段我们给它取个名字叫24x7。在之后的host和service配置文件 里都会用到这里定义的时间短,当然我们还可以定义其他的时间短,譬如说再定义一个24x5的时间段。那么这个文件里就定义了两个时间短,我们可以监控用 24x7的,而警报通知用24x5的,当然这只是打个比方。

iv. 联系人定义contacts.cfg
# vi /usr/local/nagios/etc/contacts.cfg
define contact {
contact_name lele //联系人的名称,这个地方不要有空格
alias System Administrator
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email
}

创建了一个名为test的联系人,下面列出其中重要的几个选项做说明
service_notification_period 24x7
服务出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg中定义的.
host_notification_period 24x7
主机出了状况通知的时间段, 这个时间段就是上面在timeperiods.cfg中定义的
service_notification_options w,u,c,r
当服务出现w—报警(warning),u—未知(unkown),c—严重(critical),或者r—从异常情况恢复正常,在这四种情况下通知联系人.
host_notification_options d,u,r
当主机出现d¬¬¬¬—当机(down),u—返回不可达(unreachable),r—从异常情况恢复正常,在这3种情况下通知联系人
service_notification_commands notify-by-email
服务出问题通知采用的命令notify-by-email,这个命令是在commands.cfg中定义的,作用是给联系人发邮件.至于commands.cfg之后将专门介绍
host_notification_commands host-notify-by-email
同上,主机出问题时采用的也是发邮件的方式通知联系人
email
很明显,联系的人email地址
pager 1338757xxxx
联系人的手机,如果支持短信的通知的话,这个就很有用了.
alias是联系人别名,address是地址 意义不大.
按照上面的方式简单的复制修改就可以创建多个联系人了.

v. 联系人组contactgroups.cfg
# vi /usr/local/nagios/etc/contactgroups.cfg
define contactgroup{
contactgroup_name sagroup //联系人组的名称,同样不能空格
alias System Administrator Group //别名
members test //组的成员,来自于上面定义的contacts.cfg,如果有多个联系人则以逗号相隔
}

vi. 定义被监控主机hosts.cfg
# vi /usr/local/nagios/etc/hosts.cfg
define host {
host_name Nagios-Server //被监控主机的名称,别带空格
alias Nagios Server //别名
address 192.168.1.201 //被监控主机的IP地址
contact_groups sagroup //联系人组,上面在contactgroups.cfg中定义的sagroup
check_command check-host-alive //监控的命令check-host-alive,这个命令来自commands.cfg,用来监控主机是否存活
max_check_attempts 3 //检查失败后重试的次数
check_period 24x7 //检查的时间段24x7,同样来自于我们之前在timeperiods.cfg中定义的
notification_interval 50 //提醒的间隔,每隔50分钟提醒一次
notification_period 24x7 //提醒的周期, 24x7,同样来自于我们之前在timeperiods.cfg中定义的
notification_options d,u,r //指定什么情况下提醒,具体含义见之前contacts.cfg部分的介绍
}
通过简单的复制修改就可以定义多个主机了.

vii. 主机组定义hostgroups.cfg
# vi /usr/local/nagios/etc/hostgroups.cfg
define hostgroup{
hostgroup_name sa-servers //主机组名称
alias sa Servers //别名
members nagios-server //组的成员主机,多个主机以逗号相隔,必须是上面hosts.cfg中定义的
}

viii. 监控服务定义services.cfg
这部分是整个监控系统的核心部分. 用nagios主要是监控一台主机的各种信息,包括本机资源,对外的服务等等.这些在nagios里面都是被定义为一个个的项目(nagios称之为服 务,为了与主机提供的服务相区别,我这里用项目这个词),而实现每个监控项目,则需要通过services.cfg文件中定义的命令.
# vi /usr/local/nagios/etc/services.cfg
define service{
host_name nagios-server //被监控的主机,hosts.cfg中定义的
service_description Check Disk //这个监控项目的描述(也可以说是这个项目的名称),可以空格,我们这里定义的是监控这个主机是不是存活
check_command check_local_disk!10%!5%!/ //所用的命令,是commands.cfg中定义的,其中!后面跟的是命令后面需要跟的参数,多个参数可以用多个!来追加,这里 check_local_disk的第一个参数是10%第二个参数是5%
max_check_attempts 3
normal_check_interval 3
retry_check_interval 2
check_period 24x7 //监控的时间段,是timeperiods.cfg中定义的
notification_interval 50
notification_period 24x7 //通知的时间段, ,是timeperiods.cfg中定义的
notification_options w,u,c,r //在监控的结果是wucr时通知联系人,具体含义看前文.
contact_groups sagroup //联系人组,是contactgroups.cfg中定义的
}
可以看到基本上所有的成员都是已经定义的.同样的将上面的内容复制修改,就可以定义多个服务。

ix. 插件注册commands.cfg
# vi /usr/local/nagios/etc/commands.cfg
define command{
command_name check-host-alive
//在hosts.cfg和services.cfg中,check_command所对应的命令名
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 1
//其中$USER1$是在resource.cfg文件中定义的,代表插件的安装路径.就如我们上面看到的那样$USER1$=/usr/local/nagios/libexec,至于$HOSTADDRESS$,则默认被定义为监控主机的地址.
}
我 们在services.cfg中定义了对Nagios-Server执行check-host-alive命令,实际上就是执行了 /usr/local/nagios/libexec/check_ping -H 192.168.1.201(Nagios-Server的ip地址) -w 3000.0,80% -c 5000.0,100% -p 1
commands.cfg 默认已经定义了很多这样的命令,如check_http,check_ftp等,这些命令,我们都可以直接用,但是如果我们要用 的命令这里没有定义,那么我们就需要把/usr/local/nagios/libexec下我们需要用得插件,像上面的格式写到 commands.cfg中,完成插件注册,之后我们就可以在services.cfg和hosts.cfg里调用了。
当我们的services.cfg需要调用命令的时候,就在check_command后面对应写上需要的调用的命令,当命令带参数时,例如:
define command{
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
其中$ARG1$是参数一,$ARG2$是参数二,当我们在services.cfg里调用的时候,check_command应该对应的写上 check_local_disk!10%!5%!/,这里的3个参数用!追加.例如:
define service{
host_name nagios-server
//被监控的主机,hosts.cfg中定义的
service_description Check Disk
//这个监控项目的描述
check_command check_local_disk!10%!5%!/
max_check_attempts 3
normal_check_interval 3



}

参数的意义可以运行/usr/local/nagios/libexec check_disk –h得知.
//测试
配置好以后,使用命令:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
检查配置是否有误。
3.nagios -plugins安装
3.1下载

3.2安装
Nagios是一个框架,真正的所有的监控工作全部是由nagios插件来完成的,而nagios只是做一个汇总,把监控结果整理的明了之后呈现到用户面前。
tar -zxf ./nagios-plugins-1.4.10.tar.gz
cd ./nagios-plugins-1.4.10
./configure –prefix=/usr/local/nagios //注意这里要把安装目录与nagios安装目录相同
make && make install //安装完毕之后回在/usr/local/nagios/下产生一个libexec的目录
ls /usr/local/nagios/libexec //里面有很多插件,安装完成
3.3启动apache+nagios+apache
//启动apache
/usr/local/apache/bin/apachectl start
//检查nagios配置是否有误
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
//启动nagios
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
在任意一台机器上打开网页http://服务器地址/nagios
输入用户名test 密码111111
登入,就可以看到nagios的界面。

4.mysql安装
4.1下载

4.2安装
tar zvxf mysql-5.0.20a.tar.gz //解压缩
cd mysql-5.0.20a //进入解压缩后的文件目录
./configure --prefix=/usr/local/mysql \ //设定安装目录
--enable-thread-safe-client \ //编译线程安全版的客户端库
--without-debug \ //关闭debug功能
--localstatedir=/data/mysqldata \ //设定数据库文件目录
make //编译
make install //安装
cd /
mkdir /data
mkdir /data/mysqldata
/usr/local/mysql/bin/mysql_install_db //初始化授权
这一命令如果出错(...gethostname...)
修改/etc/hosts中第一行开头的1:为:
127.0.0.1
chown –R root:root /usr/local/mysql //文件属性改为root用户
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf //复制配置文件
----------------------------------启动MySQL服务----------------------------------
/usr/local/mysql/bin/mysqld_safe --user=root & //启动MySQL
----------------------------------修改MySQL密码----------------------------------
/usr/local/mysql/bin/mysqladmin -uroot password hrsoft//修改密码
----------------------------------关闭MySQL服务----------------------------------
/usr/local/mysql/bin/mysqladmin -uroot –phrsoft shutdown //关闭MySQL

//添加一个nagios用户供ndo2db使用,密码1234
/usr/local/mysql/bin/mysql -uroot -phrsoft  //登录到mysql
use mysql;
GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY '1234';
//修改mysql用户(nagios)权限
grant select,insert,update,delete on *.* to identified by "1234";

退出mysql,使用nagios登录mysql
/usr/local/mysql/bin/mysql -unagios -p1234
show databases;
//添加数据库给ndo2db使用
create database nagios;

//以下几个是常用的命令
修改mysql用户(nagios)密码:
use mysql;update user set password = PASSOWRD("123456") where user='nagios';
修改mysql用户(nagios)权限
grant select,insert,update,delete on *.* to identified by "1234";
添加用户:
INSERT INTO user VALUES( 'localhost.localdomain', 'monty', PASSWORD('something'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
添加用户:
GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'password';
4.3启动
/usr/local/mysql/bin/mysqld_safe --user=root &  //启动mysql
/usr/local/mysql/bin/mysqladmin -uroot –phrsoft shutdown //关闭MySQL
5.安装perl-DBD-mysql
5.1下载

5.2安装
rpm –i perl-DBD-MySQL-3.0007-1.fc6.i386.rpm
6.Ndoutils安装
6.1下载

6.2安装
tar -zxf ndoutils-1.4b7.tar.gz
cd ndoutils-1.4b7.tar.gz
./configure --prefix=/usr/local/nagios
  --enable-mysql
  --with-mysql-lib=/usr/local/mysql/lib/mysql
  --with-mysql-inc=/usr/local/mysql/include
  --disable-pgsql

如果没有提示错误,
make
编译时如提示mysql的路径问题,
修改 src/Makefile 下的CFLAGS,加入mysql的include路径:
CFLAGS=-O0 -g -DHAVE_CONFIG $(DBFLAGS)

cd db
./installdb -unagios -p1234 -hlocalhost.localdomain -d nagios
会在当前目录下创建一个mysql.sql的文件。
//测试
登录到数据库使用:
/usr/local/mysql/bin/mysql -uroot -phrsoft
show databases;
use mysql
show tables;
可看到数据库中有nagios的表。
但是 select可看到表中没有数据。

6.3设置ndo2db和ndomod
//复制mdoutils文件到安装目录
cp src/ndo2db-2x /usr/local/nagios/bin/  //ndo2db可执行文件
cp src/ndomod-2x.o /usr/local/nagios/bin/  //ndomod库文件
cp src/log2ndo /usr/local/nagios/bin/ 
cp config/ndo2db.cfg /usr/local/nagios/  //ndo2db配置文件
cp config/ndomod.cfg /usr/local/nagios/  //ndomod配置文件

//cfg文件
vi /usr/local/nagios/etc/nagios.cfg  //nagios主配置文件
找到broker_module的地方,添加以下内容,(注,下面的要写在一行)
broker_module=/usr/local/nagios/bin/ndomod-2x.o config_file=/usr/local/nagios/etc/ndomod.cfg  //这条语句将使Nagios下次启动时自动加载NDOMOD事件代理。
确认在Nagios主配置文件中有如下语句:
Event_broker_options=-1

vi /usr/local/nagios/etc/ndo2db.cfg
修改以下内容:
ndo2db_user=nagios
ndo2db_group=nagios
db_servertype=mysql  //数据库类型
db_host=localhost.localdomain //数据库的主机名
db_name=nagios  //数据库名
db_user=nagios  //登录mysql的用户名
db_pass=1234  //密码
6.4启动ndo2db
/usr/local/nagios/bin/ndo2db-2x -c /usr/local/nagios/etc/ndo2db.cfg

7.启动和关闭apache+nagios+mysql+ndo2db
7.1启动的shell
# up apache
/usr/local/apache/bin/apachectl start
#up nagios
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
#up mysql
/usr/local/mysql/bin/mysqld_safe --user=root &
#up ndo2db
/usr/local/nagios/bin/ndo2db-2x -c /usr/local/nagios/etc/ndo2db.cfg

7.2关闭的shell
#down apache
/usr/local/apache/bin/apachectl stop
#down nagios
pkill nagios
#down ndo2db
pkill ndo2db
#down mysql
/usr/local/mysql/bin/mysqladmin -uroot –phrsoft shutdown
阅读(1815) | 评论(0) | 转发(0) |
0

上一篇:学习CGI脚本 (脚本)

下一篇:nagios 配置blog

给主人留下些什么吧!~~