最近有需求又搞了下nagios记录下备忘,采用快速安装lamp方式
1、快速安装lamp
yum groupinstall "Web Server"
yum groupinstall "
MySQL Database"
yum install php-mysql
2、安装nagios
tar -xjvf nagios-cn-3.2.3.tar.bz2
cd nagios-cn-3.2.3
./configure --prefix=/usr/local/nagios --with-gd-lib=/usr/lib --with-gd-inc=/usr/include --with-nagios-user=nagios --with-nagios-group=nagios
make all && make install
make install-init && make install-commandmode
make install-config
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
3、修改/etc/httpd/conf/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.users
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.users
Require valid-user
</Directory>
重启httpd: service httpd restart
4、插件及客户端安装
#!/bin/sh
set -x
#if [ -d /usr/local/nagios ]; then
# rm -rf /usr/local/nagios*
#fi
if [ -d /usr/local/nrpe ]; then
rm -rf /usr/local/nrpe*
fi
useradd nagios
yum -y install xinetd
wget -c http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.14/nagios-plugins-1.4.14.tar.gz/download
tar zxvf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14
./configure --prefix=/usr/local/nagios --enable-redhat-pthread-workaround
make && make install
chown -R nagios.nagios /usr/local/nagios
cd ../
wget -c http://
cdnetworks-kr-1.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz
tar zxvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure --prefix=/usr/local/nagios --enable-command-args
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
cd /etc/xinetd.d/
sed -i 's/127.0.0.1/127.0.0.1 192.168.120.7/g' nrpe
echo "nrpe 5666/tcp # nrpe" >> /etc/services
service xinetd restart
6、添加配置文件在nagios.cfg中
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
注释#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
7、定义hosts.cfg文件
# Define a host for the local machine
define host{
use standard-server
host_name localhost-220
alias localhost
address 127.0.0.1
define host{
use standard-server
host_name DB
alias 192.168.120.3
address 192.168.120.3
}
8、定义模版文件templates.cfg
define service{
name service-all
use generic-service
contact_groups admingroup
register 0
}
define service{
name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 3
retry_check_interval 1
contact_groups admingroup
notification_options w,c,r
notification_interval 0
notification_period 24x7
register 0
}
define host{
name generic-host ; The name of this host template
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
notification_period 24x7 ; Send host notifications at any time
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}
define host{
name standard-server
use generic-host
check_period 24x7
check_interval 3
retry_interval 1
max_check_attempts 5
check_command check-host-alive
notification_period 24x7
notification_interval 0
notification_options d,u,r
contact_groups admingroup
}
9、定义时间文件
# 24x7 monitor
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
# workhours monitor
define timeperiod{
timeperiod_name workhours
alias Normal Work Hours
monday 09:00-17:00
tuesday 09:00-17:00
wednesday 09:00-17:00
thursday 09:00-17:00
friday 09:00-17:00
}
# custom monitor time
define timeperiod{
timeperiod_name smsworkhours
alias no sleep time
sunday 08:30-23:00
monday 07:00-23:00
tuesday 07:00-23:00
wednesday 07:00-23:00
thursday 07:00-23:00
friday 07:00-23:00
saturday 08:30-23:00
}
10、定义服务配置文件
define service {
use service-all
host_name localhost-220
service_description check-http
check_command check_http
}
define service {
use service-all
host_name localhost-220
service_description check-disk
check_command check_nrpe!check_disk
}
define service {
use service-all
host_name localhost-220
service_description check-alive
check_command check-host-alive
}
define service {
use service-all
host_name localhost-220
service_description check-load
check_command check_nrpe!check_load
11、错误处理总结
①#如果提示“Whoops! Error: Could not read object configuration data! ”,这是因为没有启动nagios后台进程,执行以下命令
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg 或者service nagios restart
②It appears as though you do not have permission to view information for any of the services you requested…
解决:打开cgi.cfg配置文件,里面有个参数:
use_authentication=1
为了保障系统的安全性,nagios设置了这个参数,默认为1,改为0即可