Nagiosの個別プロファイルの詳細

24210 ワード

以下、各プロファイルの詳細について説明します.
インストールの本文を表示するにはここをクリックしてください
a.templates.cfgファイル
    Nagiosは主にホストリソースおよびサービスを監視するために使用され、nagios構成ではオブジェクトと呼ばれ、いくつかの監視オブジェクトを繰り返し定義する必要がないように、Nagiosはテンプレートプロファイルを導入し、いくつかの共通の属性をテンプレートとして定義し、複数回の参照を容易にします.これがtemplates.cfgの役割です.
次にtemplates.cfgファイルの各パラメータの意味を詳しく説明します.
define contact{
        name                            generic-contact    ;      
        service_notification_period     24x7               ;         ,        ,     "24x7" timeperiods.cfg     
        host_notification_period        24x7               ;         ,        ,     "24x7" timeperiods.cfg     
        service_notification_options    w,u,c,r            ;       “          ”。w warn,      ,u unknown,      ;
                                                           ; c criticle,      ,r recover,      ;
                                                           ;             、    、                     。
        host_notification_options       d,u,r                   ;                     ,d down,      ;
                                                                ; u unreachable,        ,r recovery,        。
        service_notification_commands   notify-service-by-email ;      ,       ,        ,          ;
                                                                ;   “notify-service-by-email” commands.cfg     。
        host_notification_commands      notify-host-by-email    ;      ,       ,        ,          ;
                                                                ;   “notify-host-by-email” commands.cfg     。 
        register                        0                    ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
        }
define host{
        name                            generic-host    ;     ,      ,                ;
                                                        ;                     。
        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               ;      0 1,        Nagios       ;
                                                        ;         1,  Nagios               ,    。
        retain_status_information       1               ; Retain status information across program restarts
        retain_nonstatus_information    1               ; Retain non-status information across program restarts
        notification_period             24x7            ;   “    ”    ,                  。
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }
define host{
        name                            linux-server    ;     
        use                             generic-host    ; use    ,      generic-host        linux-server  ;
                                                        ;  nagios   ,          。
        check_period                    24x7            ;    check_period  nagios        
        check_interval                  5               ; nagios          ,   5  。
        retry_interval                  1               ;         ,     。
        max_check_attempts              10              ; nagios          ,   nagios           ,           ;
                                                        ;       ,              ,        ,          ;
                                                        ;    10     10    。
        check_command                   check-host-alive ;            ,  “check-host-alive” commands.cfg     。
        notification_period             24x7            ;      ,         ,  “workhours” timeperiods.cfg      ;
                                                        ;        。
        notification_interval           10              ;         ,        ,nagios             。     ;
                                                        ;      ,               ,          0
        notification_options            d,u,r           ;                     ,d down,      ;
                                                        ; u unreachable,        ;
                                                        ; r recovery,        。
        contact_groups                  ts              ;       ,  “admins” contacts.cfg     。
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }
define host{
        name                    windows-server  ; The name of this host template
        use                     generic-host    ; Inherit default values from the generic-host template
        check_period            24x7            ; By default, Windows servers are monitored round the clock
        check_interval          5               ; Actively check the server every 5 minutes
        retry_interval          1               ; Schedule host check retries at 1 minute intervals
        max_check_attempts      10              ; Check each server 10 times (max)
        check_command           check-host-alive        ; Default command to check if servers are "alive"
        notification_period     24x7            ; Send notification out at any time - day or night
        notification_interval   10              ; Resend notifications every 30 minutes
        notification_options    d,r             ; Only send notifications for specific host states
        contact_groups          ts              ; Notifications get sent to the admins by default
        hostgroups              windows-servers ; Host groups that Windows servers should be a member of
        register                0               ; DONT REGISTER THIS - ITS JUST A TEMPLATE
        }
define service{
        name                            generic-service         ;         
        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
        is_volatile                     0                       ; The service is not volatile
        check_period                    24x7             ;    check_period  nagios        。
        max_check_attempts              3                ; nagios          。
        normal_check_interval           5                ;                 ,    ,nagios                  ;
                                                         ;    5  。
        retry_check_interval            2                ;         ,     。
        contact_groups                  ts           ;       
        notification_options            w,u,c,r          ;       “          ”。w warn,      ;
                                                         ; u unknown,      ;
                                                         ; c criticle,      ,r recover,      ;
                                                         ;             、    、                   。
        notification_interval           10               ; Re-notify about service problems every hour
        notification_period             24x7             ;   “    ”    ,                  。
        register                        0                ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
        }
define service{
        name                            local-service           ; The name of this service template
        use                             generic-service         ; Inherit default values from the generic-service definition
        max_check_attempts              4             ; Re-check the service up to 4 times in order to determine its final (hard) state
        normal_check_interval           5             ; Check the service every 5 minutes under normal conditions
        retry_check_interval            1             ; Re-check the service every minute until a hard state can be determined
        register                        0             ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
        }

b. resource.cfgファイル
    resource.cfgはnagiosの変数定義ファイルで、ファイルの内容は1行しかありません.
$USER1$=/usr/local/nagios/libexec

    ただし、変数$USER 1$はnagiosプラグインをインストールするパスを指定しており、プラグインを別のパスにインストールした場合は、ここで変更するだけです.変数は、他のプロファイルで参照する前に定義する必要があります.
c.commands.cfgファイル
    このファイルはデフォルトで存在し、変更する必要はありません.もちろん、新しいコマンドが追加される場合は、このファイルを追加します.
#notify-host-by-email      
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$                                     # 。         }#notify-service-by-email   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$         } #check-host-alive define command{         command_name    check-host-alive                 # , 。         command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5                                      #  $USER1$ resource.cfg , $USER1$=/usr/local/nagios/libexec;                         #  check_ping /usr/local/nagios/libexec/check_ping;                         # “-w 3000.0,80%” “-w” “WARNING” ,“80%” 。                         # “-c 5000.0,100%” “-c” “CRITICAL”,“100%” 。                         # “-p 1” 。         } define command{         command_name    check_local_disk         command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$            #$ARG1$ , 。         } define command{         command_name    check_local_load         command_line    $USER1$/check_load -w $ARG1$ -c $ARG2$         } define command{         command_name    check_local_procs         command_line    $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$         } define command{         command_name    check_local_users         command_line    $USER1$/check_users -w $ARG1$ -c $ARG2$         } define command{         command_name    check_local_swap         command_line    $USER1$/check_swap -w $ARG1$ -c $ARG2$         } define command{         command_name    check_ftp         command_line    $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$         } define command{         command_name    check_http         command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$         } define command{         command_name    check_ssh         command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$         } define command{         command_name    check_ping         command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5         } define command{         command_name    check_nt         command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$         }

d. hosts.cfgファイル
    このファイルはデフォルトでは存在しません.手動で作成する必要があります.hosts.cfgは主に監視されているホストアドレスと関連属性情報を指定するために使用されます.実験目標に基づいて以下のように構成されています.
define host{   
        use                     linux-server          #    linux-server     ,linux-server   templates.cfg        。
        host_name               Nagios-Linux          #   
        alias                   Nagios-Linux          #    
        address                 192.168.1.111         #        ,       ip,      。
        }   
#          define hostgroup{      
        hostgroup_name          bsmart-servers        #     ,      。
        alias                   bsmart servers        #     
        members                 Nagios-Linux          #     ,  “Nagios-Linux”         。     
        }

注:/etc/nagios/objectsのデフォルトにはlocalhost.cfgとwindows.cfgの2つのプロファイルがあります.localhost.cfgファイルは監視ホスト自体を定義し、windows.cfgファイルはwindowsホストを定義し、hostと関連servicesの定義が含まれています.そこで今回の実験ではlocalhost.cfgで直接モニタホスト(Nagios-Server)を定義し,windows.cfgでwindowsホスト(Nagios-Windows)を定義する.必要に応じて、関連する構成を変更します.詳細は次のとおりです.
localhost.cfg
###############################################################################
# LOCALHOST.CFG - SAMPLE OBJECT CONFIG FILE FOR MONITORING THIS MACHINE
#
#
# NOTE: This config file is intended to serve as an *extremely* simple 
#       example of how you can create configuration entries to monitor
#       the local (Linux) machine.
#
###############################################################################




###############################################################################
###############################################################################
#
# HOST DEFINITION
#
###############################################################################
###############################################################################

# Define a host for the local machine

define host{
        use                     linux-server            
        host_name               10.0.0.14
        alias                   10.0.0.14
        address                 127.0.0.1
        }



###############################################################################
###############################################################################
#
# HOST GROUP DEFINITION
#
###############################################################################
###############################################################################

# Define an optional hostgroup for Linux machines

define hostgroup{
        hostgroup_name  linux-servers 
        alias           Linux Servers
        members         10.0.0.14    
        }



###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################


# Define a service to "ping" the local machine

define service{
        use                             local-service 
        host_name                       10.0.0.14
        service_description             PING
	check_command			check_ping!100.0,20%!500.0,60%
        }


# Define a service to check the disk space of the root partition
# on the local machine.  Warning if < 20% free, critical if
# < 10% free space on partition.

define service{
        use                             local-service   
        host_name                       10.0.0.14
        service_description             Root Partition
	check_command			check_local_disk!20%!10%!/
       }



# Define a service to check the number of currently logged in
# users on the local machine.  Warning if > 20 users, critical
# if > 50 users.

define service{
        use                             local-service 
        host_name                       10.0.0.14
        service_description             Current Users
	check_command			check_local_users!20!50
        }


# Define a service to check the number of currently running procs
# on the local machine.  Warning if > 250 processes, critical if
# > 400 users.

define service{
        use                             local-service  
        host_name                       10.0.0.14
        service_description             Total Processes
	check_command			check_local_procs!250!400!RSZDT
        }



# Define a service to check the load on the local machine. 

define service{
        use                             local-service  
        host_name                       10.0.0.14
        service_description             Current Load
	check_command			check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }



# Define a service to check the swap usage the local machine. 
# Critical if less than 10% of swap is free, warning if less than 20% is free

define service{
        use                             local-service    
        host_name                       10.0.0.14
        service_description             Swap Usage
	check_command			check_local_swap!20!10
        }



# Define a service to check SSH on the local machine.
# Disable notifications for this service by default, as not all users may have SSH enabled.

define service{
        use                             local-service 
        host_name                       10.0.0.14
        service_description             SSH
	check_command			check_ssh
	notifications_enabled		0
        }



# Define a service to check HTTP on the local machine.
# Disable notifications for this service by default, as not all users may have HTTP enabled.

define service{
        use                             local-service
        host_name                       10.0.0.14
        service_description             HTTP
	check_command			check_http
	notifications_enabled		0
        }

windows.cfg
define host{
        use             windows-server  ; Inherit default values from a template
        host_name       Nagios-Windows  ; The name we're giving to this host
        alias           My Windows Server       ; A longer name associated with the host
        address         192.168.1.113   ; IP address of the host
        }
define hostgroup{
        hostgroup_name  windows-servers ; The name of the hostgroup
        alias           Windows Servers ; Long name of the group
        }
define service{
        use                     generic-service
        host_name               Nagios-Windows
        service_description     NSClient++ Version
        check_command           check_nt!CLIENTVERSION
        }
define service{
        use                     generic-service
        host_name               Nagios-Windows
        service_description     Uptime
        check_command           check_nt!UPTIME
        }
define service{
        use                     generic-service
        host_name               Nagios-Windows
        service_description     CPU Load
        check_command           check_nt!CPULOAD!-l 5,80,90
        }
define service{
        use                     generic-service
        host_name               Nagios-Windows
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 80 -c 90
        }
define service{
        use                     generic-service
        host_name               Nagios-Windows
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }
define service{
        use                     generic-service
        host_name               Nagios-Windows
        service_description     W3SVC
        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
        }
define service{
        use                     generic-service
        host_name               Nagios-Windows
        service_description     Explorer
        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
        }

e. Services.cfgファイル
    このファイルはデフォルトでは存在しません.手動で作成する必要があります.services.cfgファイルは、httpサービス、ftpサービス、ホストディスク領域、ホストシステム負荷の監視など、監視サービスとホストリソースを定義するために主に使用されます.Nagios-ServerおよびNagios-Windows関連サービスは、対応するプロファイルで定義されているため、ここではNagios-Linux関連サービスを定義するだけでよい.ここでは、プロファイルの正確性を検証するために生存するかどうかを検出するサービスのみを定義し、他のサービスの定義は後述する.
define service{  
        use                     local-service          #  local-service      ,local-service templates.cfg        。
        host_name               Nagios-Linux           #             ,“Nagios-Server” hosts.cfg        。
        service_description     check-host-alive       #          ,        。
        check_command           check-host-alive       #       。
        }

f. contacts.cfgファイル
    contacts.cfgは、監視されているホストまたはサービスに障害が発生した場合、nagiosが指定した通知方式(メールまたはメール)によって、ここで指定した連絡先または使用者に情報を送信する連絡先と連絡先グループを定義するプロファイルです.
define contact{
        contact_name                    David             #      ,                 use                             generic-contact   #  generic-contact     ,  “generic-contact” templates.cfg       
        alias                           Nagios Admin
        email                           [email protected]
        }
define contactgroup{
        contactgroup_name       ts                              #       ,      
        alias                   Technical Support               #      
        members                 David                           #      ,  “david”          ,              
        }

g. timeperiods.cfgファイル
    このファイルは、モニタリングの期間を定義するために使用される限り、次の構成の例です.
#24 x 7という名前の期間を定義します.つまり、すべての期間を監視します. 
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という名前の期間、すなわち作業期間を定義します. 
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  
        }

h. cgi.cfgファイル
    このファイルは、関連するcgiスクリプトを制御するために使用されます.nagiosのwebモニタリングインタフェースでcgiスクリプトを実行したい場合は、nagiosプロセスの再起動、nagios通知のクローズ、nagiosホスト検出の停止など、cgi.cfgファイルを構成する必要があります.nagiosのwebモニタリングインタフェースはユーザーがdavidであることを検証するため、cgi.cfgファイルにこのユーザーの実行権限を追加するだけでいいので、変更する構成情報は以下の通りです.
default_user_name=david
authorized_for_system_information=nagiosadmin,david  
authorized_for_configuration_information=nagiosadmin,david  
authorized_for_system_commands=david
authorized_for_all_services=nagiosadmin,david  
authorized_for_all_hosts=nagiosadmin,david
authorized_for_all_service_commands=nagiosadmin,david  
authorized_for_all_host_commands=nagiosadmin,david

添付ファイルは私の生産環境のプロファイルを表示します