一、搭建LAMP环境

1.yum install httpd php php-mysql mysql mysql-server php-snmp –y 

2.检查/etc/httpd/conf/httpd.conf 是否有LoadModule  status_module  modules/mod_status.so 

3.启动相关服务,设置mysqlroot帐户密码 

4.测试phpmysql

vim /var/www/html/index.php

<?php

$link=mysql_connect("localhost","root","123456");
if(!$link) echo "MYSQL FAILD!";
else echo "MYSQL OK!";

phpinfo();
?>

     保存退出,访问首页测试是否显示phpinfo 

5.安装snmp  udp161162
yum install net-snmp net-snmp-libs  net-snmp-utils  net-snmp-devel
修改snmp的主配置文件/etc/snmp/snmpd.conf
1)、查找以下字段:
      sec.name  source          community
com2sec notConfigUser  default       public
"comunity"字段改为你要设置的密码.比如"public".                                             
“default”改为你想哪台机器可以看到你的snmp信息,10.10.10.10
服务端改为127.0.0.1
2
)、查找以下字段:
# Finally, grant the group read-only access to the systemview view.
#       group          context sec.model sec.level prefix read   write  notif
access  notConfigGroup ""      any       noauth    exact  all none none
"read"字段改为all.
3
)、查找以下字段:
#           incl/excl subtree                          mask
#view all    included  .1                               80

将该行前面的"#"去掉.

6.创建cacti所用的数据库并授权

mysql> create database cactidb;
mysql> GRANT all privileges ON cactidb.* TO
cactier@localhost IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO
cactier@127.0.0.1 IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO
cactier@192.168.0.0 IDENTIFIED BY '123456';
mysql> flush privileges; 

 

二、安装Cacti

1.安装rrd

yum -y localinstall --nogpgcheck rrdtool-1.2.27-3.el5.i386.rpm

yum -y localinstall --nogpgcheck rrdtool-devel-1.2.27-3.el5.i386.rpm

yum -y localinstall --nogpgcheck rrdtool-php-1.2.27-3.el5.i386.rpm(perl) 

2.安装cacti

tar zxvf cacti-0.8.7g.tar.gz

mv cacti-0.8.7g  /var/www/html/cacti

cd  /var/www/html/cacti

mysql -uroot -p cactidb < cacti.sql  

3.编辑cacti的主配置文件,为其指定对应的数据库参数:

vim /var/www/html/cacti/include/config.php

将下列各参数的值修改为前面所设定的:

$database_type = "mysql";

$database_default = "cactidb";

$database_hostname = "localhost";

$database_username = "cactier";

$database_password = "123456";

$database_port = "3306";

修改完成后保存退出。 

4.添加cactier用户 并给其设置密码

 useradd cactier
 passwd cactier

cd   /var/www/html/cacti/

chown -R cactier rra/ log/     #指定rra/ log/的属组属主为cactier用户

vim /etc/crontab 

5.编辑crontab文件 在空白行添加以下内容

*/5 * * * * cactier php /var/www/html/cacti/poller.php  > /dev/null &

 

6.从浏览器直接访问以下地址 即可看到cacti配置画面

http://xxx.xxx.xxx.xxx/cacti/install/     

如果不出现图片执行以下命令让其手动绘图即可.  

su -  cactier

php  /var/www/html/cacti/poller.php > /dev/null 2>&1

exit 

7.cacti支持插件功能
安装的cacti版本为0.8.7g,支持插件的补丁就选用cacti-plugin-0.8.7g-PA-v2.8.tar.gz,下载后进行解压缩
tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch
cp -R cacti-plugin-arch/* /var/www/html/cacti/
mysql -uroot -p cactidb <pa.sql
patch -p1 -N  < cacti-plugin-0.8.7g-PA-v2.8.diff

打完补丁后图片有时不会显示, 修改/var/www/html/cacti/include目录下的config.php文件$url_path后面的值:$url_path = "/cacti/",修改完成直接web页面登陆,http://yourIP/cacti,选择左下的User Managenment 之后点击admin ,在其中最后一项**plugins 打钩,并保存。



三、安装Nagios


1.     服务器端
a.
环境
nagios需要一些基础支持套件才能运行,如apachegccglibcgd库等。
useradd -m nagios
         
groupadd nagios  #
添加nagios用户组,用以通过web页面提交外部控制命令
usermod -a -G nagios daemon #
将运行apache用户daemon加入nagios

b. 安装nagios主程序
tar zxvf nagios-3.2.2.tar.gz  
cd nagios-3.2.2
./configure --with-command-group=nagios 
make all
make install
make install-init  
make install-config
make install-commandmode 
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

c.安装nagios-plugins
tar zxvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

(1)nagios添加为系统服务并将之加入到自动启动服务队列:

(2)检查其主配置文件的语法是否正确:

 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(3) service nagios start

(4) selinux设置

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin

chcon -R -t httpd_sys_content_t /usr/local/nagios/share

(5)通过web界面查看nagios

http://xx.xx.xx.xx/nagios

d.安装ndoutils

1
tar zxf ndoutils-1.4b9.tar.gz

cd ndoutils-1.4b9

./configure --enable-mysql --with-mysql-lib=/usr/lib/mysql --with-mysql-inc=/usr/include/mysql  --disable-pgsql

make

cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo}  /usr/local/nagios/bin

如果nagios主版本号是2系列,则需要拷贝名为ndomod-2x.ondo2db-2x的两个文件,后两项是通用文件,无论哪个版本都需要复制。

 

2)NDOUtils创建数据库
mysql -uroot -p

mysql> create database ndodb;

mysql> GRANT ALL PRIVILEGES ON ndodb.* TO ndouser@localhost IDENTIFIED BY '123456';

mysql> flush privileges;

生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行:

cd db

./installdb -u ndouser -p 123456 -h localhost -d ndodb

或者 mysql -u root -p -D nagios -h localhost < ./db/mysql.sql

如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。

 

3)复制、编辑配置文件

cp -v config/{ndo2db.cfg-sample',ndomod.cfg-sample'} /usr/local/nagios/etc

mv /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg

mv /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg

chmod 644 /usr/local/nagios/etc/ndo*

chown nagios:nagios /usr/local/nagios/etc/*

chown nagios:nagios /usr/local/nagios/bin/*

注:以上config目录中的ndo2db.cfgndomod.cfgndoutils-1.4b9中是以ndo2db.cfg-samplendomod.cfg-sample命名的,如果使用的是这个版本的ndoutils,请在复制时做出如上相应的修改;

 vim /usr/local/nagios/etc/nagios.cfg

在文件中添加:

broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

 

此外,请确保您的/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:

event_broker_options=-1                //Nagios开启event broker

 

4)编辑ndo2db守护进程和ndomod的配置文件

vim /usr/local/nagios/etc/ndo2db.cfg

socket_type=tcp

db_servertype=mysql

db_host=localhost

db_port=3306
db_name=ndodb 

db_prefix=nagios_

db_user=ndouser

db_pass=123456

 

编辑ndomod的配置文件,为其指定数据的输出方式和输出目标主机:

vim /usr/local/nagios/etc/ndomod.cfg

output_type=tcpsocket

output=127.0.0.1

 

5)启动ndo2db守护进程

 /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

echo '/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg' >> /etc/rc.local

重新启动nagios,可进入nagiosweb管理页面查看log,如果出现以下字样,则表示正常运行。

 

 

 

2.nagios客户端

1.安装nagios-plugin

useradd nagios

passwd nagios

tar -zxvf nagios-plugins-1.4.12.tar.gz

cd nagios-plugins-1.4.12

./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround

Make

make install

 

2.改变主目录权限

chown –R  nagios.nagios /usr/local/nagios

 

3.安装客户端的nrpe

tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz

cd nagios-nrpe_2.8.1

./configure  (会自动加载SSL)

#如果后面make报错,加如下参数

./configure --enable-ssl --with-ssl-lib=/usr/lib/(当然前提要有openssl)

make all

make install-plugin

make install-daemon

make install-daemon-config

 

4.配置nrpe信息

vi /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=192.168.0.20,127.0.0.1,192.168.0.99

 

5.启动nrpe

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

 

6.验证nrpe

netstat -an | grep 5666

/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

 

7.配置监控对象

    vi /usr/local/nagios/etc/nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/hda1

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

 

注:可手动允许./check_users –help命令获得更多参数

 


三、Ntop安装


 useradd -M -s /sbin/nologin -r ntop
 tar zxvf ntop-4.0.1.tar.gz
 cd ntop-4.0.1
 ./autogen.sh

make
make install
chown -R ntop:ntop /usr/local/share/ntop
chown -R ntop:root /usr/local/var/ntop

3、配置并启动ntop
首先为ntopadmin用户设置密码: ntop –A
接下来启动ntop: ntop --user ntop
使之开机自动启动:echo 'ntop   -u ntop &> /dev/null' >> /etc/rc.d/rc.local
web页面访问
http://yourip:3000/

4、整合到cacti

tar zxvf ntop-0.1.tar.gz -C /var/www/html/cacti/plugins/

vim /var/www/html/cacti/include/config.php添加如下内容:$plugins[] = 'ntop';  

cacti的控制台中"settings"中配置此插件,将其指向实际的ntop服务器所在的URL;然后再到cacti控制台的"user Management"中的admin用户中启用此插件

 


四、Nagios Plugin for CactiNPC)插件

作用:将nagios的数据通过ndo2db导入到mysql数据库,然后cacti读取数据库信息将nagios的结果通过NPC展示出来。
tar zxvf npc-2.0.4.tar.gz
mv npc /var/www/html/cacti/plugins/
vi /var/www/html/cacti/include/config.php

 在该文件中的"$plugins = array()"后增加如下一行内容
$plugins[] = 'npc'; #
经测试无需添加

tar zxvf json-1.2.1.tgz &&  cd json-1.2.1       #npc需要json来支持某些功能/usr/bin/phpize 
./configure
make 
make install
查看有没有安装成功 find / -name '*json.so'
 
修改etc/php.d/php.ini
在这个文件中添一个json.ini
vim json.ini
内容如下:
extension=json.so
之后用web测试 ,index.php(前文有测试方法)如果有图片所示的这一项,则表示正常json正常安装

 如果phpize 没有此指令, 安装php-devel

 

nagios npc安装后状态为off的解决方法


 

 

1、检查ndo2db的进程是不是二个
nagios   16825  0.0  0.1   6784   396 ?        Ss   19:05   0:00 /usr/local/nagios/bin/ndo2db -c /usr/l
nagios   17032  0.0  0.3   6784  1268 ?        S    19:09   0:00 /usr/local/nagios/bin/ndo2db -c
2
、检查nagios.log日志看看最后有没有
could not safely copy module '/usr/local/nagios/bin/ndomod-3x.o'
这样的错误
如果是下面这样是正确的
ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad (
nagios@nagios.org)
[1272020945] ndomod: Successfully connected to data sink.  4897 queued items to flush.
[1272020951] ndomod: Successfully flushed 4897 queued items to data sink.
[1272020951] Event broker module '/usr/local/nagios/bin/ndomod-3x.o' initialized successfully.
上面只是检查工作,解决方法如下
1
、安装nagios3.0 如果是2.9的朋友可以升级安装、升级安装方法的方法很简单

#cd /usr/local/
#cp -r nagios/ nagios2.9
#cd /etc/init.d/
#cd nagios nagios2.9
#cp nagios nagios2.9
#tar -zvxf nagios-3.0.3.tar.gz
#cd nagios-3.0.3
# ./configure --with-command-group=nagios
#make all
#make install
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
可能会报comments downtime警告信息一个错误critical
   vi /usr/local/nagios/etc/nagios.cfg
#comment_file=/usr/local/nagios/var/comments.dat
加上#
#downtime_file=/usr/local/nagios/var/downtime.dat
加上#

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 在执行就不会报了
然后在执行下面
cd /usr/local/nagios/var/
cat comments.dat >>retention.dat
cat downtime.dat >>retention.dat
critical
错误解决
check_result_buffer_slots=4096
加上#
service nagios restart
2
ndoutils-1.4b7安装此版块、其他版本可能会出程序问题、安装方法如下
tar zxvf ndoutils-1.4b7.tar.gz
cd ndoutils-1.4b7
./configure --with-mysql-lib=/usr/lib/mysql/ --with-mysql-inc=/usr/include/mysql/
cp ndomod-3x.o /usr/local/nagios/bin/ndomod-3x.o
cp ndo2db-3x /usr/local/nagios/bin/ndo2db
cp ndo2db.cfg /usr/local/nagios/etc/
cp ndomod.cfg /usr/local/nagios/etc/
进入拷贝的目录给文件加入到nagios用户组
chown nagios:nagios ndo2db.cfg ndomod.cfg
chown nagios:nagios ndomod-3x.o  ndo2db

然后修改ndo2db.cfg  ndomod.cfg配置文件
cat /usr/local/nagios/etc/ndo2db.cfg |grep -v '^#'|sed /^$/d
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
db_servertype=mysql
db_host=127.0.0.1
db_port=3306
db_name=cacti
db_prefix=npc_
db_user=cactiuer
db_pass=cactiuser
max_timedevents_age=1440
max_systemcommands_age=10080
max_servicechecks_age=10080
max_hostchecks_age=10080
max_eventhandlers_age=44640
debug_level=1
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000

cat /usr/local/nagios/etc/ndomod.cfg |grep -v '^#'|sed /^$/d
instance_name=default
output_type=tcpsocket
output=127.0.0.1
tcp_port=5668
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
data_processing_options=-1
config_output_options=2

最后看nagios.cfg最后一行配置文件是否正确
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
这行要和文件和路径对应好

修改完成后重启ndo2db
kill ndo2db
运行的进程
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
然后执行重启
ps aux
nagios   16825  0.0  0.1   6784   396 ?        Ss   19:05   0:00 /usr/local/nagios/bin/ndo2db -c
nagios   17032  0.0  0.3   6784  1268 ?        S    19:09   0:00 /usr/local/nagios/bin/ndo2db -c
如果是这样说明ndo2db运行正常