所需软件: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