搭建lamp


安装epel源

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

epel.repo epel-testing.repo

修改epel.repo中的enable=1

yum install -y mysqlmysql-server php-mysql httpd php php-pdo lm_sensors net-snmp php-snmpnet-snmp-utils perl-Net-Daemon perl-PlRPC perl-DBI rrdtool perl-rrdtoolperl-DBD-MySQL net-snmp-libs libart_lgpl-devel


service httpdstart

如果启动报错:[root@linux211yum.repos.d]# service httpd start

Starting httpd: httpd:Could not reliably determine the server's fully qualified domain name, using192.168.2.211 for ServerName

[ OK ]

vi /etc/httpd/conf/httpd.conf


将ServerName www.example.com:80前面的注释去掉



root@linux211 conf]# service httpd start

Starting httpd: [ OK ]



service mysqld start


[root@linux211 conf]# service mysqld start

Initializing MySQL database: Installing MySQL system tables...

OK

Filling help tables...

OK


To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system


PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin -u root -h linux211 password 'new-password'


Alternatively you can run:

/usr/bin/mysql_secure_installation


which will also give you the option of removing the test

databases and anonymous user created by default. This is

strongly recommended for production servers.


See the manual for more instructions.


You can start the MySQL daemon with:

cd /usr ; /usr/bin/mysqld_safe &


You can test the MySQL daemon with mysql-test-run.pl

cd mysql-test ; perl mysql-test-run.pl


Please report any problems with the /usr/bin/mysqlbug script!


The latest information about MySQL is available on the web at

http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

[ OK ]

Starting mysqld: [ OK ]





设置为开机启动

chkconfig httpd on

chkconfig mysqld on


查看防火墙状态

[root@linux211 conf]# /etc/init.d/iptables status

Firewall is stopped.


如果没有关闭,就关闭防火墙

/etc/init.d/iptablesstop

验证lamp是否可用


vim /var/www/html/index.php


<?
phpinfo();
?>


http://ip地址/index.php

显示除了php的版本信息,说明lamp是可用的

2.安装nagios


groupadd nagcmd

useradd -m nagios

usermod -a -G nagcmdnagios

把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限

usermod -a -G nagcmdapache


下载Nagios,开始编译安装

wget http://sourceforge.net/projects/nagios/?source=directory

--2014-02-25 14:01:05-- http://sourceforge.net/projects/nagios/?source=directory

Resolving sourceforge.net... 216.34.181.60

Connecting to sourceforge.net|216.34.181.60|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 43274 (42K) [text/html]

Saving to: `index.html?source=directory'


100%[=============================================================================================================================>] 43,274 51.3K/s in 0.8s


2014-02-25 14:01:08 (51.3 KB/s) - `index.html?source=directory' saved [43274/43274]


下载nagios安装包

wget http://prdownloads.sourceforge.net/sourceforge/nagios

/nagios-3.4.3.tar.gz

tar -zxvfnagios-3.4.3.tar.gz

cd nagios


[root@linux211 nagios]# ./configure --with-command-group=nagcmd

checking for a BSD-compatible install... /usr/bin/install -c

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking for gcc... gcc

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables...

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ANSI C... none needed

checking whether make sets $(MAKE)... yes

checking for strip... /usr/bin/strip

checking how to run the C preprocessor... gcc -E

checking for egrep... grep -E

checking for ANSI C header files... yes

checking whether time.h and sys/time.h may both be included... yes

checking for sys/wait.h that is POSIX.1 compatible... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking arpa/inet.h usability... yes

checking arpa/inet.h presence... yes

checking for arpa/inet.h... yes

checking ctype.h usability... yes

checking ctype.h presence... yes

checking for ctype.h... yes

checking dirent.h usability... yes

checking dirent.h presence... yes

make all

make[1]: Entering directory `/root/nagios/base'

gcc -Wall -g -O2 -DHAVE_CONFIG_H -DNSCORE -c -o broker.o broker.c

gcc -Wall -g -O2 -DHAVE_CONFIG_H -DNSCORE -c -o nebmods.o nebmods.c

gcc -Wall -g -O2 -DHAVE_CONFIG_H -DNSCORE -c -o ../common/shared.o ../common/shared.c

gcc -Wall -g -O2 -DHAVE_CONFIG_H -DNSCORE -c -o checks.o checks.c

make install

make install-init

make install-config

makeinstall-commandmode

实现在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件

makeinstall-webconf

创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用

htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin

New password:

Re-type new password:

Adding password for user nagiosadmin

以上过程配置结束以后需要重新启动httpd:

servicehttpd restart


Stopping httpd: [ OK ]

Starting httpd: [ OK ]





编译、安装nagios-plugins

下载安装包

wget http://assets.nagios.com/downloads/nagiosplugins/

nagios-plugins-1.5.tar.gz

tar -zxvfnagios-plugins-1.5.tar.gz

cd nagios-plugins-1.5

./configure --with-nagios-user=nagios--with-nagios-group=nagios

make

make install




把nagios添加为系统服务并将之加入到自动启动服务队列

chkconfig --add nagios
chkconfig nagios on




检查其主配置文件的语法是否正确


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




Checking contact groups...

Checked 1 contact groups.

Checking service escalations...

Checked 0 service escalations.

Checking service dependencies...

Checked 0 service dependencies.

Checking host escalations...

Checked 0 host escalations.

Checking host dependencies...

Checked 0 host dependencies.

Checking commands...

Checked 24 commands.

Checking time periods...

Checked 5 time periods.

Checking for circular paths between hosts...

Checking for circular host and service dependencies...

Checking global event handlers...

Checking obsessive compulsive processor commands...

Checking misc settings...


Total Warnings: 0

Total Errors: 0


Things look okay - No serious problems were detected during the pre-flight check



启动nagios服务

service nagios start

安装NRPE

wget http://prdownloads.sourceforge.net/sourceforge/

nagios/nrpe-2.13.tar.gz

tar -zxvfnrpe-2.13.tar.gz

cd nrpe-2.13

./configure

checking for initgroups... yes

checking for closesocket... no

checking for socklen_t... yes

checking for type of socket size... size_t

checking for SSL headers... SSL headers found in /usr/local/ssl

checking for SSL libraries... configure: error: Cannot find ssl libraries

安装缺失的库

yum -y installopenssl-devel

然后重新执行./configure就ok啦

checking for strtoul... yes

checking for initgroups... yes

checking for closesocket... no

checking for socklen_t... yes

checking for type of socket size... size_t

checking for SSL headers... SSL headers found in /usr/local/ssl

checking for SSL libraries... SSL libraries found in /usr/lib64


*** Generating DH Parameters for SSL/TLS ***

Generating DH parameters, 512 bit long safe prime, generator 2

This is going to take a long time

........................+......................+.+......................+........................................+....................+.......+.....+............+........................................................................++*++*++*++*++*++*

checking for Kerberos include files... could not find include files

checking for perl... /usr/bin/perl

configure: creating ./config.status

config.status: creating Makefile

config.status: creating src/Makefile

config.status: creating subst

config.status: creating include/config.h



*** Configuration summary for nrpe 2.13 11-11-2011 ***:


General Options:

-------------------------

NRPE port: 5666

NRPE user: nagios

NRPE group: nagios

Nagios user: nagios

Nagios group: nagios



Review the options above for accuracy. If they look okay,

type 'make all' to compile the NRPE daemon and client.


make all

cp src/check_nrpe/usr/local/nagios/libexec/


至此服务端搭建成功




客户端配置

tar -zxvfnagios-plugins-1.5.tar.gz

cd nagios-plugins-1.5

/configure--with-nagios-user=nagios --with-nagios-group=nagios

make

报错

/usr/bin/install: invalid user `nagios'

make[2]: *** [install-libexecPROGRAMS] Error 1

make[2]: Leaving directory `/opt/nagios/nagios-plugins-1.5/plugins'

make[1]: *** [install-am] Error 2

make[1]: Leaving directory `/opt/nagios/nagios-plugins-1.5/plugins'

make: *** [install-recursive] Error 1

解决办法如下

useradd nagios

mkdir /usr/local/nagios 如果目录存在就不需要创建了

chown nagios:nagios/usr/local/nagios

ll /usr/local

make

make install



安装NRPE

tar -zxvfnrpe-2.13.tar.gz

cd nrpe-2.13

./configure

make all

make install-plugin

make install-daemon

make install-daemon-config

make install-xinetd

cp src/check_nrpe /usr/local/nagios/libexec/

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

allowed_hosts=127.0.0.1,server IP



vim /etc/xinetd.d/nrpe

# default: on

# description: NRPE (Nagios Remote PluginExecutor)

service nrpe

{

flags = REUSE

socket_type = stream

port = 5666

wait = no

user = nagios

group = nagios

server =/usr/local/nagios/bin/nrpe

server_args = -c/usr/local/nagios/etc/nrpe.cfg --inetd

log_on_failure += USERID

disable = no

only_from = 127.0.0.1 192.168.2.211




vim /etc/services

nrpe 5666/tcp #nrpe


service xinetd star

[root@tomcat1 nrpe-2.13]# service xinetd start

xinetd: unrecognized service

报错处理

yum -y install xinetd

安装成功之后执行

service xinetd star


[root@tomcat1 nrpe-2.13]# service xinetd start

Starting xinetd: [ OK ]


测试NRPE是否正常工作

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

root@tomcat1 nrpe-2.13]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

NRPE v2.13


cd /usr/local/nagios/

ls

cd etc/

ll

mkdir objects

为服务端增加NRPE命令

vi commands.cfg



define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$-c $ARG1$
}