| 知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
$ sudo vim /etc/nagios3/nagios.cfg cfg_dir=/etc/nagios3/hosts cfg_dir=/etc/nagios3/servers cfg_dir=/etc/nagios3/switches cfg_dir=/etc/nagios3/routers admin_email=nagios, neo.chen@example.com
add user neo for nagios
$ sudo htpasswd /etc/nagios3/htpasswd.users neo New password: Re-type new password: Adding password for user neo
# grep default_user_name cgi.cfg #default_user_name=guest # grep authorized cgi.cfg authorized_for_system_information=nagiosadmin authorized_for_configuration_information=nagiosadmin authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin #authorized_for_read_only=user1,user2
$ sudo vim /etc/nagios3/cgi.cfg authorized_for_all_services=nagiosadmin,neo authorized_for_all_hosts=nagiosadmin,neo
$ sudo vim /etc/nagios3/conf.d/contacts_nagios2.cfg
###############################################################################
# contacts.cfg
###############################################################################
define contact{
contact_name neo
alias Neo
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email neo.chen@example.com
}
###############################################################################
###############################################################################
#
# CONTACT GROUPS
#
###############################################################################
###############################################################################
# We only have one contact in this simple configuration file, so there is
# no need to create more than one contact group.
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members root, neo
}
當服務出現w—報警(warning),u—未知(unkown),c—嚴重(critical),r—從異常恢復到正常,在這四種情況下通知聯繫人
當主機出現d-當機(down),u—返回不可達(unreachable),r—從異常情況恢復正常,在這3種情況下通知聯繫人
確認 contact_groups 已經設置
neo@monitor:/etc/nagios3$ grep admins conf.d/generic-host_nagios2.cfg
contact_groups admins
neo@monitor:/etc/nagios3$ grep admins conf.d/generic-service_nagios2.cfg
contact_groups admins
$ sudo vim /etc/nagios3/conf.d/hostgroups_nagios2.cfg
define hostgroup {
hostgroup_name mysql-servers
alias MySQL Servers
members *
}
$ cat /etc/nagios3/conf.d/generic-service_nagios2.cfg
# generic service template definition
define service{
name generic-service ; The 'name' of this service template
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service 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_interval 0 ; Only send notifications on status change by default.
is_volatile 0
check_period 24x7
normal_check_interval 5
retry_check_interval 1
max_check_attempts 4
notification_period 24x7
notification_options w,u,c,r
contact_groups admins
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
notification_interval 報警發送間隔,單位分鐘
normal_check_interval 間隔時間
retry_check_interval 重試間隔時間
max_check_attempts 檢查次數,4次失敗後報警
發出警報聲
$ sudo vim /etc/nagios3/cgi.cfg # SOUND OPTIONS # These options allow you to specify an optional audio file # that should be played in your browser window when there are # problems on the network. The audio files are used only in # the status CGI. Only the sound for the most critical problem # will be played. Order of importance (higher to lower) is as # follows: unreachable hosts, down hosts, critical services, # warning services, and unknown services. If there are no # visible problems, the sound file optionally specified by # 'normal_sound' variable will be played. # # # <varname>=<sound_file> # # Note: All audio files must be placed in the /media subdirectory # under the HTML path (i.e. /usr/local/nagios/share/media/). host_unreachable_sound=hostdown.wav host_down_sound=hostdown.wav service_critical_sound=critical.wav service_warning_sound=warning.wav service_unknown_sound=warning.wav normal_sound=noproblem.wav
vim /etc/nagios3/commands.cfg
# 'notify-host-by-sms' command definition
define command{
command_name notify-host-by-sms
command_line /srv/sms/sms $CONTACTPAGER$ "Host: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"
}
# 'notify-service-by-sms' command definition
define command{
command_name notify-service-by-sms
command_line /srv/sms/sms $CONTACTPAGER$ "Service: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$"
}
sudo vim /etc/nagios3/conf.d/contacts_nagios2.cfg
define contact{
contact_name neo
alias Neo
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email, notify-service-by-sms
host_notification_commands notify-host-by-email, notify-host-by-sms
email neo.chen@example.com
pager 13113668899
}
neo@monitor:/etc/nagios3/hosts$ sudo cat www.example.com.cfg
define host{
use generic-host ; Inherit default values from a template
host_name www.example.com ; The name we're giving to this host
alias Some Remote Host ; A longer name associated with the host
address 172.16.1.10 ; IP address of the host
hostgroups http-servers ; Host groups this host is associated with
}
# NRPE disk check.
define service {
use generic-service
host_name www.example.com
service_description nrpe-disk
check_command check_nrpe_1arg!check_all_disks!172.16.1.10
}
define service {
use generic-service
host_name www.example.com
service_description nrpe-users
check_command check_nrpe_1arg!check_users!172.16.1.10
}
define service {
use generic-service
host_name www.example.com
service_description nrpe-swap
check_command check_nrpe_1arg!check_swap!172.16.1.10
}
define service {
use generic-service
host_name www.example.com
service_description nrpe-procs
check_command check_nrpe_1arg!check_total_procs!172.16.1.10
}
define service {
use generic-service
host_name www.example.com
service_description nrpe-load
check_command check_nrpe_1arg!check_load!172.16.1.10
}
define service {
use generic-service
host_name www.example.com
service_description nrpe-zombie_procs
check_command check_nrpe_1arg!check_zombie_procs!172.16.1.10
}