https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/
install
yum -y install nagios-4.1.0rc1-2.el6.x86_64.rpm
yum -y install nagios-plugins-icmp
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
/etc/nagios/nagios.cfg
# nagios.cfg
cfg_dir=/etc/nagios/config
object_cache_file=/var/nagios/objects.cache
precached_object_file=/var/nagios/objects.precache
resource_file=/etc/nagios/resource.cfg
status_file=/var/nagios/status.dat
status_update_interval=10
nagios_user=nagios
nagios_group=nagios
check_external_commands=1
command_file=/var/nagios/rw/nagios.cmd
lock_file=/var/nagios/nagios.pid
temp_file=/var/nagios/nagios.tmp
temp_path=/tmp
event_broker_options=-1
log_rotation_method=d
log_file=/var/log/nagios/nagios.log
log_archive_path=/var/log/nagios/archives
use_syslog=1
log_notifications=1
log_service_retries=1
log_host_retries=1
log_event_handlers=1
log_initial_states=0
log_current_states=1
log_external_commands=1
log_passive_checks=1
service_inter_check_delay_method=s
max_service_check_spread=30
service_interleave_factor=s
host_inter_check_delay_method=s
max_host_check_spread=30
max_concurrent_checks=0
check_result_reaper_frequency=10
max_check_result_reaper_time=30
check_result_path=/var/nagios/spool/checkresults
max_check_result_file_age=3600
cached_host_check_horizon=15
cached_service_check_horizon=15
enable_predictive_host_dependency_checks=1
enable_predictive_service_dependency_checks=1
soft_state_dependencies=0
auto_reschedule_checks=0
auto_rescheduling_interval=30
auto_rescheduling_window=180
service_check_timeout=60
host_check_timeout=30
event_handler_timeout=30
notification_timeout=30
ocsp_timeout=5
perfdata_timeout=5
retain_state_information=1
state_retention_file=/var/nagios/retention.dat
retention_update_interval=60
use_retained_program_state=1
use_retained_scheduling_info=1
retained_host_attribute_mask=0
retained_service_attribute_mask=0
retained_process_host_attribute_mask=0
retained_process_service_attribute_mask=0
retained_contact_host_attribute_mask=0
retained_contact_service_attribute_mask=0
interval_length=60
check_for_updates=1
bare_update_check=0
use_aggressive_host_checking=0
execute_service_checks=1
accept_passive_service_checks=1
execute_host_checks=1
accept_passive_host_checks=1
enable_notifications=1
enable_event_handlers=1
process_performance_data=0
obsess_over_services=0
obsess_over_hosts=0
translate_passive_host_checks=0
passive_host_checks_are_soft=0
check_for_orphaned_services=1
check_for_orphaned_hosts=1
check_service_freshness=1
service_freshness_check_interval=60
service_check_timeout_state=c
check_host_freshness=0
host_freshness_check_interval=60
additional_freshness_latency=15
enable_flap_detection=1
low_service_flap_threshold=5.0
high_service_flap_threshold=20.0
low_host_flap_threshold=5.0
high_host_flap_threshold=20.0
date_format=us
illegal_object_name_chars=`~!$%^&*|'"<>?,()=
illegal_macro_output_chars=`~$&|'"<>
use_regexp_matching=0
use_true_regexp_matching=0
admin_email=nagios@localhost
admin_pager=pagenagios@localhost
daemon_dumps_core=0
use_large_installation_tweaks=0
enable_environment_macros=0
debug_level=0
debug_verbosity=1
debug_file=/var/log/nagios/nagios.debug
max_debug_file_size=1000000
allow_empty_hostgroup_assignment=0
/etc/nagios/config/commands.cfg
# commands.cfg
define command {
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****
Notification Type: $NOTIFICATIONTYPE$
Host: $HOSTNAME$
State: $HOSTSTATE$
Address: $HOSTADDRESS$
Info: $HOSTOUTPUT$
Date/Time: $LONGDATETIME$
" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}
define command {
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****
Notification Type: $NOTIFICATIONTYPE$
Service: $SERVICEDESC$
Host: $HOSTALIAS$
Address: $HOSTADDRESS$
State: $SERVICESTATE$
Date/Time: $LONGDATETIME$
Additional Info:
$SERVICEOUTPUT$
" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
define command {
command_name process-host-perfdata
command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$ $HOSTNAME$ $HOSTSTATE$ $HOSTATTEMPT$ $HOSTSTATETYPE$ $HOSTEXECUTIONTIME$ $HOSTOUTPUT$ $HOSTPERFDATA$
" >> /var/nagios/host-perfdata.out
}
define command {
command_name process-service-perfdata
command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $SERVICEATTEMPT$ $SERVICESTATETYPE$ $SERVICEEXECUTIONTIME$ $SERVICELATENCY$ $SERVICEOUTPUT$ $SERVICEPERFDATA$
" >> /var/nagios/service-perfdata.out
}
define command {
command_name check-host-alive
command_line $USER1$/check_icmp -H $HOSTADDRESS$ -w 500.000ms,80% -c 500.000ms,80% -n 3
}
define command {
command_name check_icmp
command_line $USER1$/check_icmp -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -n 3
}
/etc/nagios/config/timeperiods.cfg
# timeperiods.cfg
define timeperiod {
timeperiod_name workday
alias workday
monday 9:00-18:00
tuesday 9:00-18:00
wednesday 9:00-18:00
thursday 9:00-18:00
friday 9:00-18:00
}
define timeperiod {
timeperiod_name weekend
alias weekend
saturday 0:00-24:00
sunday 0:00-24:00
}
define timeperiod {
timeperiod_name 7x24
alias 7x24
monday 0:00-24:00
tuesday 0:00-24:00
wednesday 0:00-24:00
thursday 0:00-24:00
friday 0:00-24:00
saturday 0:00-24:00
sunday 0:00-24:00
}
/etc/nagios/config/contacts.cfg
# contacts.cfg
define contact {
contact_name admin
alias admin
email admin@local
contactgroups admin
host_notification_period 7x24
service_notification_period 7x24
host_notification_options d,r
service_notification_options c,r
host_notification_commands notify-host-by-email
service_notification_commands notify-service-by-email
}
define contact {
contact_name monitor
alias monitor
email monitor@local
contactgroups admin
host_notification_period 7x24
service_notification_period 7x24
host_notification_options d,r
service_notification_options c,r
host_notification_commands notify-host-by-email
service_notification_commands notify-service-by-email
}
/etc/nagios/config/contactgroups.cfg
# contactgroups.cfg
define contactgroup {
contactgroup_name admin
alias admin
members admin,monitor
}
/etc/nagios/config/templates.cfg
# templates.cfg
define host {
name generic-host
check_command check-host-alive
check_interval 1
retry_interval 1
max_check_attempts 2
check_period 7x24
contacts admin
contact_groups admin
register 0
}
define service {
name generic-service
check_interval 1
retry_interval 1
max_check_attempts 2
check_period 7x24
contacts admin
contact_groups admin
register 0
}
define host {
name host-notice-off
notifications_enabled 0
register 0
}
define host {
name host-notice-on
notifications_enabled 1
notification_interval 10
notification_period 7x24
notification_options d,r
register 0
}
define service {
name service-notice-off
notifications_enabled 0
register 0
}
define service {
name service-notice-on
notifications_enabled 1
notification_interval 10
notification_period 7x24
notification_options c,r
register 0
}
define service {
name icmp
service_description icmp
check_command check_icmp!500.000ms,80%!500.000ms,80%
register 0
use generic-service
}
/etc/nagios/config/hosts.cfg
# hosts.cfg
define host {
host_name bjyh-48-82
alias bjyh-48-82
address 192.168.48.82
use generic-host,host-notice-off
}
define host {
host_name bjyh-48-83
alias bjyh-48-83
address 192.168.48.83
use generic-host,host-notice-on
}
/etc/nagios/config/services.cfg
# services.cfg
define service {
host_name bjyh-48-82
service_description icmp
use icmp,service-notice-off
}
define service {
host_name bjyh-48-83
service_description icmp
use icmp,service-notice-on
}
/etc/nagios/config/hostgroups.cfg
# hostgroups.cfg
define hostgroup {
hostgroup_name bjyh
alias bjyh
members bjyh-48-82,bjyh-48-83
}