1、安装前准备
yum install libgd libgb-devel libpng libpng-devel libjpeg libjpeg-devel zlib zlib-devel gd gd-devel
创建用户和用户组
useradd -s /sbin/nologin nagios
mkdir /home/apps/nagios
chown -R nagios.nagios /home/apps/nagios
开启sendmail服务
service sendmail start
2、安装nagios核心
wget http://heanet.dl.sourceforge.net/project/nagios/nagios-3.x/nagios-3.2.0/nagios-3.2.0.tar.gz
tar zxvf /nagios-3.2.0.tar.gz
cd nagios-3.2.0
./configure --prefix=/home/apps/nagios //安装路径/home/apps/nagios
make all
#make install安装nagios主程序的CGI和HTML文件
make install
#make install-init命令可以在/etc/rc.d/init.d目录下创建nagios启动脚本
make install-init
#make install-commandmode命令配置目录权限
make install-commandmode
#make install-config命令用来安装nagios示例配置文件,这里安装路径为/home/apps/nagios
make install-config
设置开机启动
chkconfig --add nagios
chkconfig --level 35 nagios on
chkconfig --list nagios //查看设置是否生效
nagios 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭
3、安装nagios插件
wget http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz#_ga=1.169254566.64720271.1463550979
tar zxvf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure --prefix=/home/apps/nagios
make
make all //安装完插件后会在nagios主程序目录(即/home/apps/nagios下的libexec目录)下生成很多执行文件,这些都是nagios所需的插件
4、安装nagios汉化插件
wget http://jaist.dl.sourceforge.net/project/nagios-cn/sourcecode/zh_CN%203.2.0/nagios-cn-3.2.0.tar.bz2
tar jxvf nagios-cn-3.2.0.tar.bz2
cd nagios-cn-3.2.0
./configure --prefix=/home/apps/nagios
make all
make install
5、安装配置apache、php
(1)yum安装apache、php
yum install httpd
yum install php
(2)配置apache
配置文件路径/etc/httpd/conf/httpd.conf
把
User nobody
Group #-1
修改为:
User nagios
Group nagios
然后找到;
DirectoryIndex index.html index.html.var
修改为
DirectoryIndex index.html index.php
在配置文件最后增加如下内容:
AddType application/x-httpd-php .php
安全起见,一般要求必须经过授权才能访问Nagios的web监控界面,因此要增加验证配置,即在httpd.conf文件的最后添加如下信息:
ScriptAlias /nagios/cgi-bin "/home/apps/nagios/sbin"
<Directory "/home/apps/nagios/sbin">
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile "/home/apps/nagios/etc/htpasswd"
Require valid-user
</Directory>
Alias /nagios "/home/apps/nagios/share"
<Directory "/home/apps/nagios/share">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile "/home/apps/nagios/etc/htpasswd"
Require valid-user
</Directory>
(3)创建apache目录验证文件
在上面的配置中,指定了目录验证文件htpasswd,下面创建这样一个文件:
创建用户monitor
htpasswd -c /home/apps/nagios/etc/htpasswd monitor
然后输入密码,创建完成。
这样就在/home/apps/nagios/etc/htpasswd目录下创建了一个htpasswd验证文件,对应的用户为monitor。
通过http://ip/nagios/访问web监控界面时就需要输入用户名和密码。
(4)启动apache
service httpd start
然后通过http://ip/nagios/登录nagios监控界面, 如果httpd启动后,无法正常访问web,查看httpd log有哪些错误,然后做相应的修改。如果nagios登录时,输入的用户名、密码正确,但无法登录进去。可能是selinux禁用了某些服务。把selinux关闭,执行setenforce 0。永久关闭selinux,把/etc/selinux/config中的SELINUX设置成disabled,SELINUX=disabled。然后重启httpd
6、nagios配置
/home/apps/nagios/etc/objects
(1)hosts.cfg文件
此文件默认情况下不存在,需要手动创建。
hosts.cfg主要用来指定被监控的主机地址及相关属性信息。一个配置好的示例如下:
########### 360xh06 #####################
define host{
use linux-server,hosts-pnp
host_name 360xh06
alias web
address 10.9.0.25
}
########### 360xh07 #####################
define host{
use linux-server,hosts-pnp
host_name 360xh07
alias drawboard
address 10.9.0.27
}
define hostgroup{ #定义一个主机组
hostgroup_name 360xh-servers #主机组名称,可以随意指定
alias 360xh servers #主机组别名
members 360xh06,360xh07 #主机组成员,其中360xh06、360xh07就是上面定义
#的两个主机
}
(2)services.cfg文件
此文件在默认情况下也不存在,需要手动创建。services.cfg文件主要用于定义监控的服务和主机资源,列如监控HTTP服务、FTP服务、主机磁盘空间、主机系统负载、IO、内存等。
一个配置好的示例:
define service{
use local-service,services-pnp
host_name 360xh06
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service,services-pnp
host_name 360xh07
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service,services-pnp
host_name 360xh06
service_description SSH
check_command check_ssh
}
define service{
use local-service,services-pnp
host_name 360xh0
service_description SSH
check_command check_ssh
}
define service{
use local-service,services-pnp
host_name 360xh06
service_description SSHD
check_command check_tcp!22
}
define service{
use local-service,services-pnp
host_name 360xh07
service_description SSHD
check_command check_tcp!22
nagios报告汇总中因为告警太多显示不出来,可以通过设置limit值来显示
http://nagios.dtdt2.com/nagios/cgi-bin/summary.cgi?report=1&displaytype=1&timeperiod=last7days&smon=9&sday=1&syear=2016&shour=0&smin=0&ssec=0&emon=9&eday=23&eyear=2016&ehour=24&emin=0&esec=0&hostgroup=all&servicegroup=all&host=all&alerttypes=3&statetypes=3&hoststates=7&servicestates=120& limit=25
yum install libgd libgb-devel libpng libpng-devel libjpeg libjpeg-devel zlib zlib-devel gd gd-devel
创建用户和用户组
useradd -s /sbin/nologin nagios
mkdir /home/apps/nagios
chown -R nagios.nagios /home/apps/nagios
开启sendmail服务
service sendmail start
2、安装nagios核心
tar zxvf /nagios-3.2.0.tar.gz
cd nagios-3.2.0
./configure --prefix=/home/apps/nagios //安装路径/home/apps/nagios
make all
#make install安装nagios主程序的CGI和HTML文件
make install
#make install-init命令可以在/etc/rc.d/init.d目录下创建nagios启动脚本
make install-init
#make install-commandmode命令配置目录权限
make install-commandmode
#make install-config命令用来安装nagios示例配置文件,这里安装路径为/home/apps/nagios
make install-config
设置开机启动
chkconfig --add nagios
chkconfig --level 35 nagios on
chkconfig --list nagios //查看设置是否生效
nagios 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭
3、安装nagios插件
wget http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz#_ga=1.169254566.64720271.1463550979
tar zxvf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure --prefix=/home/apps/nagios
make
make all //安装完插件后会在nagios主程序目录(即/home/apps/nagios下的libexec目录)下生成很多执行文件,这些都是nagios所需的插件
4、安装nagios汉化插件
wget http://jaist.dl.sourceforge.net/project/nagios-cn/sourcecode/zh_CN%203.2.0/nagios-cn-3.2.0.tar.bz2
tar jxvf nagios-cn-3.2.0.tar.bz2
cd nagios-cn-3.2.0
./configure --prefix=/home/apps/nagios
make all
make install
5、安装配置apache、php
(1)yum安装apache、php
yum install httpd
yum install php
(2)配置apache
配置文件路径/etc/httpd/conf/httpd.conf
把
User nobody
Group #-1
修改为:
User nagios
Group nagios
然后找到;
DirectoryIndex index.html index.html.var
修改为
DirectoryIndex index.html index.php
在配置文件最后增加如下内容:
AddType application/x-httpd-php .php
安全起见,一般要求必须经过授权才能访问Nagios的web监控界面,因此要增加验证配置,即在httpd.conf文件的最后添加如下信息:
ScriptAlias /nagios/cgi-bin "/home/apps/nagios/sbin"
<Directory "/home/apps/nagios/sbin">
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile "/home/apps/nagios/etc/htpasswd"
Require valid-user
</Directory>
Alias /nagios "/home/apps/nagios/share"
<Directory "/home/apps/nagios/share">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile "/home/apps/nagios/etc/htpasswd"
Require valid-user
</Directory>
(3)创建apache目录验证文件
在上面的配置中,指定了目录验证文件htpasswd,下面创建这样一个文件:
创建用户monitor
htpasswd -c /home/apps/nagios/etc/htpasswd monitor
然后输入密码,创建完成。
这样就在/home/apps/nagios/etc/htpasswd目录下创建了一个htpasswd验证文件,对应的用户为monitor。
通过http://ip/nagios/访问web监控界面时就需要输入用户名和密码。
(4)启动apache
service httpd start
然后通过http://ip/nagios/登录nagios监控界面, 如果httpd启动后,无法正常访问web,查看httpd log有哪些错误,然后做相应的修改。如果nagios登录时,输入的用户名、密码正确,但无法登录进去。可能是selinux禁用了某些服务。把selinux关闭,执行setenforce 0。永久关闭selinux,把/etc/selinux/config中的SELINUX设置成disabled,SELINUX=disabled。然后重启httpd
6、nagios配置
/home/apps/nagios/etc/objects
(1)hosts.cfg文件
此文件默认情况下不存在,需要手动创建。
hosts.cfg主要用来指定被监控的主机地址及相关属性信息。一个配置好的示例如下:
########### 360xh06 #####################
define host{
use linux-server,hosts-pnp
host_name 360xh06
alias web
address 10.9.0.25
}
########### 360xh07 #####################
define host{
use linux-server,hosts-pnp
host_name 360xh07
alias drawboard
address 10.9.0.27
}
define hostgroup{ #定义一个主机组
hostgroup_name 360xh-servers #主机组名称,可以随意指定
alias 360xh servers #主机组别名
members 360xh06,360xh07 #主机组成员,其中360xh06、360xh07就是上面定义
#的两个主机
}
(2)services.cfg文件
此文件在默认情况下也不存在,需要手动创建。services.cfg文件主要用于定义监控的服务和主机资源,列如监控HTTP服务、FTP服务、主机磁盘空间、主机系统负载、IO、内存等。
一个配置好的示例:
define service{
use local-service,services-pnp
host_name 360xh06
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service,services-pnp
host_name 360xh07
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service,services-pnp
host_name 360xh06
service_description SSH
check_command check_ssh
}
define service{
use local-service,services-pnp
host_name 360xh0
service_description SSH
check_command check_ssh
}
define service{
use local-service,services-pnp
host_name 360xh06
service_description SSHD
check_command check_tcp!22
}
define service{
use local-service,services-pnp
host_name 360xh07
service_description SSHD
check_command check_tcp!22
nagios报告汇总中因为告警太多显示不出来,可以通过设置limit值来显示
http://nagios.dtdt2.com/nagios/cgi-bin/summary.cgi?report=1&displaytype=1&timeperiod=last7days&smon=9&sday=1&syear=2016&shour=0&smin=0&ssec=0&emon=9&eday=23&eyear=2016&ehour=24&emin=0&esec=0&hostgroup=all&servicegroup=all&host=all&alerttypes=3&statetypes=3&hoststates=7&servicestates=120& limit=25