知乎專欄 | 多維度架構 | 微信號 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 }