首页 > 代码库 > Centos部署nagios+apache实现服务器监控
Centos部署nagios+apache实现服务器监控
1.Nagios介绍
nagios是 一款功能强大的网络监视工具,它可以有效的监控windows、linux、unix主机状态以及路由器交换机的网络设置,打印机工作状态等,并将状态出 现异常的服务及时以邮件、msn短信等形式第一时间通告管理员。由于它是一款遵循GPLv2的开源网络监控软件,以其出色的性能低廉的使用成本,深受广大 用户的好评。
2.安装前提
2. 1确定是否有以下组件:
gcc glibc glibc-common gd gd-devel xinetd openssl-devel
proc-devel pcre-devel perl libxml2-devel
直接通过yum安装:
yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel proc-devel pcre-devel perl libxml2-devel
3.安装nagios,nagios-plugin
创建nagios用户
# adduser nagios
安装nagios
# tar xvf nagios-cn-3.2.0.tar
# cd nagios-cn-3.2.0
# ./configure –prefix=/usr/local/nagios
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
安装nagios-plugin
# tar xvf nagios-plugins-2.0.tar.gz
# cd nagios-plugins-2.0
# ./configure –prefix=/usr/local/nagios
# make && make install
4.安装apache
# tar xvf httpd-2.4.9.tar.gz
#cd httpd-2.4.9
#./configure --prefix=/usr/local/apache2
# make && make install
如果安装提示缺少apr和apr-util包
#tar xvf apr-1.5.0.tar.gz
#cd apr-1.5.0
#./configure –prefix=/usr/local/apr
#make && make install
#tar xvf apr-1.5.0.tar.gz
#cd apr-1.5.0
#./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
#make && make install
安装好了之后在安装apache
#./configure --prefix=/usr/local/apache2 –with-apr-util=/usr/local/apr-util
#make && make install
5.安装php
#tar xvf php-5.4.10.tar.gz
#cd php-5.4.10
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
#make && make install
6.配置apahe
找到apache 的配置文件/usr/local/apache2/conf/httpd.conf
找到:
User daemon
Group daemon
修改为
User nagios
Group nagios
然后找到
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
修改为
<IfModule dir_module>
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php
</IfModule>
为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf 文件最后添加如下信息:
#setting for nagios
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>
创建apache目录验证文件
# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd ssap
7.启动apache和nagios
启动apache
# /usr/local/apache2/bin/apachectl start
启动nagios
Service nagios start
nagios登录
nagios首页
8.配置nagios
Nagios安装完毕后,需要配置nagios,配置文件在/usr/local/nagios/etc目录下。
文件名或目录名 | 用途 |
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.cfg | 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用 |
objects/timeperiods.cfg | 定义Nagios 监控时间段的配置文件 |
objects/windows.cfg | 监控Windows 主机的一个配置文件模板,默认没有启用此文件 |
假设我们nagios安装在IP为192.168.195.136的服务器上,需要监控192.168.195.136服务器,将对配置文件做以下修改:
修改localhost.cfg
define host{
use linux-server
host_name Nagios-Server
alias Nagios-Server
address 127.0.0.1
}
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members Nagios-Server
}
define service{
use local-service
host_name Nagios-Server
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service
host_name Nagios-Server
service_description Root Partition
check_command check_local_disk!20%!10%!/
}
define service{
use local-service
host_name Nagios-Server
service_description Current Users
check_command check_local_users!20!50
}
define service{
use local-service
host_name Nagios-Server
service_description Total Processes
check_command check_local_procs!250!400!RSZDT
}
define service{
use local-service,srv-pnp
host_name Nagios-Server
service_description Current Load
check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}
define service{
use local-service
host_name Nagios-Server
service_description Swap Usage
check_command check_local_swap!20!10
}
define service{
use local-service
host_name Nagios-Server
service_description SSH
check_command check_ssh
notifications_enabled 0
}
define service{
use local-service
host_name Nagios-Server
service_description HTTP
check_command check_http
notifications_enabled 0
}
新增hosts.cfg
define host{
use linux-server
host_name test-Linux
alias test-Linux
address 192.168.195.137
}
新增service.cfg
define service{
use local-service
host_name test-Linux
service_description check-host-alive
check_command check-host-alive
}
修改nagios.cfg
添加配置文件hosts.cfg,service.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/service.cfg
检测修改的配置
/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
检测无误后,重新启动nagios服务
Service nagios restart
nagios监控页
注意事项:
1) 如果设置的用户名不是nagiosadmin,会存在权限问题,不能访问监控页面,需要修改cgi.cfg,在nagiosadmin后追加自己设置的用户名。
nagios登录用户权限配置
2)Nagios乱码问题
主要是apache没有开启cgi脚本的缘故,进入apache的主配置文件httpd.conf;
#LoadModule cgid_module modules/mod_cgid.so;
#LoadModule actions_module modules/mod_actions.so;
将上面2行的#去掉,重启apache就OK了。
Centos部署nagios+apache实现服务器监控