1、下载apache所需软件包
安装apache2.4.9必须先安装apr、apr-util、pcre包
apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz cd.sh httpd-2.4.9.tar.gz pcre-8.33.zip
2、安装
# 解压缩 tar fvxz apr-1.5.1.tar.gz tar fvxz apr-util-1.5.3.tar.gz tar httpd-2.4.9.tar.gz tar fvxz httpd-2.4.9.tar.gz tar fvxz pcre-8.33.zip unzip pcre-8.33.zip # 编译安装apr cd /data/apr-1.5.1 ./configure --prefix=/usr/local/apr make && make install # 编译安装apr-util cd ../apr-util-1.5.3 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install # 编译安装pcre cd ../pcre-8.33 ./configure --prefix=/usr/local/pcre make && make install # 编译安装apache # 安装之前请确保系统之前预装的httpd已被卸载 cd ../httpd-2.4.9 # 参数依次是: httpd安装路径 httpd配置文件存放路径 启用模块化方式 启用ssl安全连接# 启用cgi脚本功能 启用url重写 启用服务器压缩 启用正则表达式支持 apr安装路径 # apr util安装路径 启用常用模块以确保apache正常工作 将多进程模型非静态化 # 启用事件异步模型 ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event make && make install
3、错误提示
安装openssl依赖关系 即可解决下面问题
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
4、启动&测试
# /usr/local/apache/bin/apachectl start
如果成功,可以停止 Apache 服务器并继续安装 PHP:
/usr/local/apache2/bin/apachectl stop OR /usr/local/apache/bin/apachectl -k stop(推荐)
5、安装php5.5.12
tar fvxz php-5.5.12.tar.gz ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs make && make install
6、配置php.ini
cp php.ini-development /usr/local/lib/php.ini
7、编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 达式右边的路径必须指向系统中的 PHP 模块。以上的 make install 命令可能已经完成了这些,但务必要检查
LoadModule php5_module modules/libphp5.so
8、apache解析php,添加如下内容:
# 让Apache将扩展名.php 解析成 PHP。为了避免潜在的危险,例如上传或者创建类似 exploit.php.jpg 的文件并被当做 PHP 执行,我们不再使用 Apache 的 AddType 指令来设置。 <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # 将.php,.php2,.php3,.php4,.php5,.php6,以及.phtml文件都当做PHP来运行 <FilesMatch "\.ph(p[2-6]?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> # .phps 文件由 PHP 源码过滤器处理,使得其在显示时可以高亮源码 <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> # mod_rewrite也有助于将那些不需要运行的.php文件的源码高亮显示,而并不需要将他们更名.phps文件 RewriteEngine On RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
9、安装nagios及插件
1.创建nagios用户和用户在 # useradd -s /sbin/nologin nagios # mkdir /usr/local/nagios # chown -R nagios.nagios /usr/local/nagios 2. 编译安装nagios # tar fvxz nagios-4.0.5.tar.gz # cd nagios-4.0.5 # ./configure -prefix=/usr/local/nagios 指定nagios的安装目录,这里指定安装在/usr/local/nagios目录下 # make all && make install 通过make install命令来安装nagios主程序的CGI和HTML文件 # make install-init 通过make install-init命令可以在/etc/rc.d/init.d目录下创建nagios启动脚本 # make install-commandmode 通过make install-commandmode命令来配置目录权限 # make install-config 通过make install-config命令来安装nagios示例配置文件,这里安装路径是/usr/local/nagios/etc 3.设置开机自启动 # chkconfig --add nagios # chkconfig --level 35 nagios on # chkconfig --list nagios nagios 0:off 1:off 2:off 3:on 4:on 5:on 6:off 4.安装nagios插件 # tar fvxz nagios-plugins-2.0.tar.gz # cd nagios-plugins-2.0 # ./configure --prefix=/usr/local/nagios # make && make install 插件的安装最好喝nagios安装路径一致,这样插件会在nagios主程序目录(即/usr/local/nagios下的libexec目录)生成很多可执行文件 5.安装nagios汉化插件 # tar jvxf nagios-cn-3.2.3.tar.bz2 # cd nagios-cn-3.2.3 # ./configure # make all && make install
10、配置apache
# vim /etc/httpd/httpd.conf user daemon #修改为nagios group daemon #修改为nagios <IfModule dir_module> DirectoryIndex index.html index.php #增加index.php </IfModule> LoadModule php5_module modules/libphp5.so # 去掉前面注释 在最后增加如下内容: 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> AddType application/x-httpd-php .php
11、创建apache目录验证文件
# /usr/local/apache2/bin/htpasswd \ > -c /usr/local/nagios/etc/htpasswd nagios New password: (输入密码) Re-type new password: (在输入一次密码) Adding password for user nagios
12、关闭selinx 和 iptables服务
两种方法: 第一种最直接,关闭 SELinux,对于 SELinux 不是很熟悉的用户,请选择此。 [root@Nagios-Server ~]# cat /etc/sysconfig/selinux SELINUX=disabled 第二种给打上正确的安全脉络。 chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ chcon -R -t httpd_sys_content_t /usr/local/nagios/share/ # /etc/init.d/iptables stop
13、启动apache和nagios服务
# /usr/local/apache/bin/apachectl start # /etc/init.d/nagios start
14、验证nagios页面
15、错误提示
用IE浏览器提示乱码错误 或 提示需要下载.cgi 弹窗
此时要修改apache配置文件
# vi /etc/httpd/httpd.conf 找到 并去除前面的注释即可 LoadModule cgi_module modules/mod_cgi.so
16、重新启动apache服务即可
# /usr/local/apache/bin/apachectl -k stop # /usr/local/apache/bin/apachectl start
17、nagios配置文件介绍
cgi.cfg | 控制CGI访问的配置文件 |
nagios.cfg | nagios主配置文件 |
resource.cfg | 变量定义文件,又称为资源文件;此文件中定义变量,以便由其他配置文件引用,如$USER1$ |
objects | objects目录下有很大配置文件模板,用于定义nagios对象 |
objects/commands.cfg | 命令定义配置文件,其中定义的命令可以被其他配置文件所引用 |
objects/contacts.cfg | 定义联系人和联系人组的配置文件 |
objects/localhost.cfg | 定义监控本地主机的配置文件 |
objects/printer.cfg | 定义监控打印机的一个配置文件模板,默认没有启动 |
objects/switch.cfg | 监控路由器的一个配置文件模板,默认没有启动 |
objects/templates.cfg8 | 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用 |
objects/timeperiods.cfg | 定义nagios监控时间段的配置文件 |
objects/windows.cfg |
监控windows主机的配置文件模板,默认没有启动 |
18、配置文件
1.主机定义文件 定义你要监控的对象,这里定义的 host_name 被应用到其它的所有配置文件中,这个是我们配 置 Nagios 必须修改的配置文件。 [Nagios~]# vi /usr/local/nagios/etc/objects/hosts.cfg define host{ host_name Nagios-Server #设置主机的名字,该名字会出现在hostgroups.cfg 和 services.cfg 中。 alias Nagios Server #别名 address 192.168.140.128 #主机的 IP 地址 check_command check-host-alive #检查的命令 check_interval 5 #检测的时间间隔 retry_interval 1 #检测失败后重试的时间间隔 max_check_attempts 5 #最大重试次数 check_period 24x7 #检测的时段 process_perf_data 0 retain_nonstatus_information 0 contact_groups sagroup #联系组 notification_interval 30 #通知的时间间隔 notification_period 24x7 #通知的时间段 notification_options d,u,r #通知的选项 #w―报警(warning),u―未知(unkown) #c―严重(critical),r―从异常情况恢复正常 } define host{ host_name Nagios-Client alias Nagios Client address 192.168.140.129 check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 process_perf_data 0 retain_nonstatus_information 0 contact_groups sagroup notification_interval 30 notification_period 24x7 notification_options d,u,r } 2.主机组定义文件 将刚才定义的两个主机加入到主机组中,针对生产环境就像把所有的 MySQL 服务器加到一个 MySQL 主机组里,方便管理和查看。 [Nagios~]# vi /usr/local/nagios/etc/objects/hostgroups.cfg define hostgroup { hostgroup_name Nagios-Example #主机组名字 alias Nagios Example #主机组别名 members Nagios-Server,Nagios-Client #主机组成员,用逗号隔开 } 3.服务定义文件 服务定义文件定义你需要监控的对象的服务,比如本例子为检测主机是否存活,在后面会讲到如 何监控其它服务,比如服务器负载、内存、磁盘等。 [Nagios~]# vi /usr/local/nagios/etc/objects/services.cfg define service { host_name Nagios-Server #主机名 service_description check-host-alive #服务描述 check_period 24x7 #检测的时间段 max_check_attempts 4 normal_check_interval 3 retry_check_interval 2 contact_groups sagroup notification_interval 10 notification_period 24x7 notification_options w,u,c,r check_command check-host-alive } define service { host_name Nagios-Client service_description check-host-alive check_period 24x7 max_check_attempts 4 normal_check_interval 3 retry_check_interval 2 contact_groups sagroup notification_interval 10 notification_period 24x7 notification_options w,u,c,r check_command check-host-alive } [Nagios~]# vi /usr/local/nagios/etc/objects/servicegroup.cfg define servicegroup{ servicegroup_name Host-Alive alias Host Alive members Nagios-Server,check-host-alive,Nagios-Client,check-host-alive } 5 联系人定义文件 [Nagios~]# vi /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name nagiosadmin use generic-contact alias System Administrator email nagios@localhost } 6 联系人组定义文件 [Nagios-Server ~]# vi /usr/local/nagios/etc/objects/contactgroups.cfg define contactgroup{ contactgroup_name sagroup alias Nagios Administrators members nagiosadmin } 7 检测配置是否正确 [Nagios~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg