所需软件:httpd-2.4.1.tar.gz mysql-5.0.96.tar.gz php-5.3.25.tar.gz

nagios-3.2.0.tar.gz nagios-plugins-1.4.16.tar.gz nrpe-2.12.tar.gz

rrdtool-1.4.8.tar.gz cacti-0.8.8a.tar.gz cacti-spine-0.8.8a.tar.gz

ntop-v0.2-1.tgz monitor-v1.3-1.tgz ndoutils-1.5.2.tar.gz

npc-2.0.4.tar.gz json-1.2.1.tgz PDO_MYSQL-1.0.2.tgz

一.设置lamp环境

编译安装httpd

Shell>tar zxvf httpd-2.4.1.tar.gz

Shell>cd httpd-2.4.1

Shell>./configure --prefix=/usr/local/apache --enable-so

Shell>make && make install

编译安装msyql

Shell>tar zxvf mysql-5.3.25.tar.gz

Shell>cd mysql-5.3.25

Shell>./configure --prefix=/usr/local/mysql --enable-thread-safe-client

Shell>make && make install

Shell>groupadd mysql

Shell>useradd mysql -g mysql

Shell>chown -r mysql.mysql /var/lib/mysql

Shell>/usr/local/mysql/bin/mysql_install_db ##初始化数据库##

Shell>cp support-files/my-medium.cnf /etc/my.cnf

Shell>/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=root &

##启动mysql##

Shell>/usr/local/msyql/bin/mysqldadmin -uroot -p 123456 #修改mysql登陆密码##

Shell>ps -ef |grep mysqld ##查看mysq进程##

编译安装

Shell>tar zxvf php-5.3.25.tar.gz

Shell>cd php-5.3.25

Shell>./confiugre --prefix=/usr/local/php --with--mysql=/usr/local/mysql

--with-apxs2=/usr/local/apache/bin/apxs --enable-sockets

--with-config-file-path=/usr/local/php/etc ##修改php.ini的存放位置##

Shell>make && make install

Shell>cp php.ini-production /etc/php.ini


安装pdo_mysql扩展模块

Shell>tar zxvf PDO_MYSQL-1.0.2.tgz

Shell>cd PDO_MYSQL-1.0.2

Shell>/usr/local/php/bin/phpize

Shell>make && make install

Shell>vim /usr/local/php/etc/php.ini

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626/"

extension = pdo_mysql.so

重启apahce 查看是否已加载 php -m |grep pdo-mysql

二、Apache php整合

打开Apache配置文件httpd.conf

添加PHPIniDir "/etc/php.ini"

跳转到373后添加

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps


跳转到246行添加 index.php

保存退出重启apache

Shell>/usr/local/apache/bin/apachectl start

测试apache,php是否整合

Shell>vim /usr/local/apache/htdocs/text.php

<?php

Phpinfo;

?>

打开浏览器输入http://ip/test.php,输出php信息说明配置成功


测试php mysql整合

Shell>vim /usr/local/apache/htdocs/test.php

<?php

$link=mysql_connect("localhost","root","123456");

if(!$link) echo "FAILD!";

else echo "OK!";

?>

保存退出打开浏览器http://ip/test.php 输出ok说明配置成功


三、安装nagios

Shell>useradd -s /sbin/nologin nagios

Shell>mkdir -p /usr/local/nagios

Shell>chown -R nagios.nagios /usr/local/nagios

Shell>usermod -G nagios -a apache ##将apache用户加入到nagios组中

Shell>tar zxvf nagios-3.2.0.tar.gz

Shell>cd nagios-3.2.0

Shell>./configure --prefix=/usr/local/nagios

Shell>make all

Shell>make install

Shell>make install-init

Shell>make install-commandmode

Shell>make install-config


安装nagios插件

Shell>tar zxvf nagios-plugins-1.4.16.tar.gz

Shell>cd nagios-plugins-1.4.16

Shell>./configure --prefix=/usr/local/nagios

Shell>make && make install



打开apache配置文件httpd.conf 在末尾添加以后代码:

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>


创建nagios登陆用户

Shell>/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd admin ##输入登陆密码

修改nagios目录下cgi.cfg

Shell>vim /usr/local/nagios/etc/cgi.cfg

authorized_for_system_information=admin #多个用户用逗号分隔

authorized_for_configuration_information=admin

authorized_for_system_commands=admin

authorized_for_all_services=admin

authorized_for_all_hosts=admin

authorized_for_all_service_commands=admin

authorized_for_all_host_commands=admin


修改nagios目录下nagios.cfg

command_check_interval=10s ##检查时间间隔

check_external_commands=1 ##允许web界面下重启、关闭nagios进程等


检查下nagios配置文件是否正确

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

修改apache 运行的用户

Shell>vim /usr/local/apache/conf/httpd.conf

User apache

Group apache


启动nagios

Shell>/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

启动apache

Shell>/usr/local/apache/bin/httpd -k start

打开浏览器输入http://ip/nagios就可以看到nagios的主界面


四、安装nrpe

被监控机上安装

Shell>groupadd nagios

Shell>useradd -g nagios -d /usr/local/nagios -s /sbin/nologin nagios

Shell>tar zxvf nagios-plugins-1.4.16.tar.gz

Shell>cd nagios-plugins-1.4.16

Shell>./configure --prefix=/usr/local/nagios

Shell>make && make install

Shell>tar zxvf nrpe-2.12.tar.gz

Shell>cd nrpe-2.12

Shell>./configure

Shell>make all

Shell>make instlal-plugin

Shell>make install-daemon

Shell> make install-daemon-config

Shell>chown -R nagios.nagios /usr/local/nagios

配置nrpe

Shell>vim /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1,监控机ip

Shell>echo “nrpe:监控机ip” >>/etc/host.allow

启动nrpe

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

Shell>echo “/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d “ >>/etc/rc.local

## 设置开机启动nrpe

检查nrpe是否正常

Shell>netstat -atnlp |grep 5666

Shell>/usr/local/nagios/libexec/check_nrpe -H localhost

NRPE v2.12 ##说明nrpe启动成功


监控机上安装

Shell>tar zxvf nrpe-2.12.tar.gz

Shell>cd nrpe-2.12

Shell>./configure --prefix=/usr/local/nagios

Shell>make

Shell>make install-plugin


测试是否可以连接被监控机

Shell>/usr/local/nagios/libexec/check_nrpe -H 被监控机ip

NRPE v2.12 ##说明可以和被监控机通信


五.安装cacti

安装rrdtool

Shell>tar zxvf rrdtool-1.4.8.tar.gz

Shell>cd rrdtool-1.4.8

Shell>./configure

Shell>make &&make install


安装net-snmp

Shell>yum install net-snmp* -y


配置mysql

Shell>/usr/local/mysql/bin/mysql -uroot -p

Mysql>create database cactidb;

Mysql>grant all privileges on cactidb.* to “cactier”@”locahost” identified by “123456”

Mysql>grant all privileges on cactidb.* to “cactier”@”localhost” identified by “123456”


配置snmp.conf (红色字体为修改部分)

Shell>vim /etc/snmp/snmp.conf

# sec.name source community

com2sec notConfigUser default public

# name incl/excl subtree mask(optional)

view systemview included .1.3.6.1.2.1.1

view systemview included .1.3.6.1.2.1.25.1.1

# group context sec.model sec.level prefix read write notif

access notConfigGroup "" any noauth exact all none none

## incl/excl subtree mask

view all included .1 80

Shell>service snmpd start


安装cacti

Shell>tar zxvf cacti-0.8.8a.tar.gz

Shell>mv cacti-0.8.8a cacti

Shell>mv cacti /usr/local/apache/htdocs

Shell>cd /usr/local/apache/htdocs/cacti

Shell>/usr/local/mysql/bin/mysql -uroot -p cactidb <cacti.sql

Shell>chown -R cactier /usr/local/apache/htdocs/cacti/rra /usr/local/apache/htdocs/cacti/log

编辑cacti/include/config.php文件

Shell>vim /usr/local/apache/htdocs/cacti/config.php

$database_type = "mysql";

$database_default = "cactidb";

$database_hostname = "localhost";

$database_username = "cactier";

$database_password = "123456";

$database_port = "3306";

保存退出

Shell>useradd cactier

Shell>passwd cactier

Shell>crontab -u cactier -e

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

登陆cacti

打开浏览器输入http://ip/cacti ---->设置

注意第一次登陆cacti默认用户名和密码为admin,登陆后要修改密码



安装spine

Shell>tar zxvf cacti-spine-0.8.8a.tar.gz

Shell>cd cacti-spine-0.8.8a

Shell>./configure --prefix=/usr/local/spine

Shell>make &&make install

Shell>mv /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf

Shell>vim /usr/local/spine/etc/spine.conf

DB_Host localhost

DB_Database cactidb

DB_User cactier

DB_Pass 123456

DB_Port 3306

DB_PreG 0


Shell>ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock


设置spine路径,Console——Settings——Paths--->>/usr/local/spine/bin/spine


更改cacti轮询器为spine,Console——Settings——Poller--->>poller type:spine -->>Poller Interval:every minute Cron Interval:every minute

Shell>/usr/local/spine/bin/spine



整合ntop monitor到cacti中

Shell>tar zxvf ntop-4.0.tar.gz

Shell>cd ntop-4.0

Shell>./autogen.sh

Shell>./configure --prefix=/usr/local/ntop

Shell>make && make install

Shell>chown -R ntop.ntop /usr/local/ntop/share/ntop

Shell>chown -R ntop.ntop /usr/local/ntop/var/ntop

配置启动ntop

Shell>ntop -A 输入密码

Shell>n/usr/local/ntop/bin/top -i eth0 -d -L -u ntop

Shell>echo '/usr/local/ntop/bin/ntop -i eth0 -d -L -u ntop &> /dev/null' >> /etc/rc.local


安装ntop插件

Shell>tar zxvf ntop-v0.2-1.tgz -C /usr/local/apache/htdocs/cacti/plugins/

Shell>vim /usr/local/apache/htdocs/cacti/include/config.php

添加$plugins[] = "ntop";


设置cacti: console---utilities---user managemet---admin---plugin management view ntop

两个选项选上,保存 console---configureation---plugin management---启用ntop


安装monitor

Shell>tar zxvf monitor-v1.3-1.tgz -C /usr/local/apache/htdocs/cacti/plugins/

Shell>vim /usr/local/apache/htdocs/cacti/include/config.php

   添加$plugins[] = "monitor";

设置cacti:略 (步骤和安装ntop一样)



Nagios、cacti整合

安装ndoutils

Shell>tar zxvf ndoutils-1.5.2.tar.gz

Shell>cd ndoutils-1.5.2

Shell>./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql

--with-mysql-inc=/usr/local/mysql/include

--with-mysql-lib=/usr/local/mysql/lib/mysql

Shell>make && make install

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

Shell>./installdb -ucactier -p123456 -hlocalhost -d cactidb

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

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

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

Shell>chown -R nagios.nagios /usr/local/nagios/etc/ndo*

Shell>chown -R nagios.nagios /usr/local/nagios/bin/*

Shell>vim /usr/local/nagios/etc/nagios.cfg添加

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

config_file=/usr/local/nagios/etc/ndomod.cfg

event_broker_options=-1

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

socket_type=tcp

db_servertype=mysql

db_host=localhost

db_port=3306

db_name=cactidb

db_prefix=nagios_

db_user=cactier

db_pass=123456

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

output_type=tcpsocket

output=127.0.0.1

Shell>cp ./daemon-init /etc/init.d/ndo2db

Shell> vi /etc/init.d/ndo2db

# 检查里面的路径确保不会出现“//”,并将Ndo2dbBin修改成下面的值:

Ndo2dbBin=/var/www/html/nagios/bin/ndo2db-3x

Shell>chmod +x /etc/init.d/ndo2db

Shell>service ndo2db start

查看是否有错误

Shell>tail -f /var/logl/messages 或者 tail -f /usr/local/nagios/var/nagios.log


安装npc

Shell> tar zxvf npc-2.0.4.tar.gz -C /usr/local/apache/htdocs/cacti/plugins

Shell>vim /usr/local/apache/htdocs/cacti/include/config.php

添加$plugins[] = 'npc';


安装npc支持json

Shell>tar zxvf json-1.2.1.tgz

Shell>cd json-1.2.1

Shell>/usr/local/php/bin/phpize

Shell>./configure

Shell>make && make install

安装完后会有类似这样的提示:

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/

查看是否有导入信息

Shell>/usr/local/php/bin/php -i |grep php.ini

##Configuration File Loaded Configuration File php.ini路径

Shell>vim /etc/php.ini

添加extension = json.so

查看json 是否加载

Shell>/usr/local/php/bin/php -m |grep json



修改ndo2db.cfg文件

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

db_prefix=nagios_ 修改为db_prefix=npc_


修改cacti npc插件

Console-->settings-->npc -->Remote Commands选项打勾--->输入nagios command file pathc -->输入nagios URL -->host icons service icons选项打勾

-->logging level 选择DEBUG 保存



修改数据库表结构:

Shell>/usr/local/mysql/bin/mysql -uroot -p

Msyql>use cactidb;

Msyql>

ALTER TABLE `npc_hostchecks` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

ALTER TABLE `npc_hoststatus` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

ALTER TABLE `npc_servicechecks` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

ALTER TABLE `npc_servicestatus` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

ALTER TABLE `npc_statehistory` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

ALTER TABLE `npc_eventhandlers` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

ALTER TABLE `npc_systemcommands` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

ALTER TABLE `npc_notifications` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;

Mysql>exit


重启ndo2db nagios 服务

Shell>service ndo2db restart

Shell>/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg