Nagios 구성파일 알아보기





    Nagios(나기오스) 설정과정에서 정말 많은설정이 있더군요 또한 Cacti와 다르게 복잡한 텍스트로 구성된 설정 방식 때문에 변수와 플러그인의 모든 파라미터에 별개의 구성 항목이 필요합니다

    이번 시간에는 Nagios의 구성파일의 대해서 알아보도록 하겠습니다




    APM 설치 관련글 :


    APM 컴파일 설치방법 - http://server-talk.tistory.com/59


    APM YUM 설치방법 - http://server-talk.tistory.com/174




    관련글 :


    오픈소스 서버 모니터링 툴 - http://server-talk.tistory.com/120




    Nagios 설치 & 사용법 : 


    nagios - (시스템 및 네트워크 모니터링) 설치하기 - http://server-talk.tistory.com/157


    nagios - (시스템 및 네트워크 모니터링) 로컬호스트 모니터링 설정하기 - http://server-talk.tistory.com/192


    nagios - (시스템 및 네트워크 모니터링) 리눅스 서버 모니터링 설정하기(원격지측) - http://server-talk.tistory.com/180


    nagios - (시스템 및 네트워크 모니터링) 리눅스 서버 모니터링 설정하기(모니터링측) - http://server-talk.tistory.com/181





     Nagios 디렉토리 구조 및 파일 위치




    Nagios 디렉토리 시작위치 : /usr/local/nagios




    그림으로 표현한다면 이러한 구조가 됩니다




    Nagios 디렉토리


    bin : Nagios가 궁동하는데의 핵심 프로그램


    etc : 메이느 리소스, 객체 및 CGI의 구성파일이 있는곳


    sbin : CGI


    share : HTML 웹상에서 출력 페이지


    var : 로그 파일, 상태 파일, 보존 파일등의 빈 디렉토리


    rw : 외부 명령 파일의 빈 디렉토리






     Nagios 구성 파일



    1. Nagios 주 구성 파일 - nagios.cfg





    - nagios 접속하게되면 주 설정파일인 nagios.cfg 파일을 접근하게 됩니다



    파일위치 : /usr/local/nagios/etc/nagios.cfg


    1) 로그지정 파일


    설정 : log_file=[로그파일 경로와 이름]


    기본설정 : log_file=/usr/local/nagios/var/nagios.log


    Nagios 메인 로그 파일을 지정하는 부분입니다





    2) 개체 구성 파일


    기본설정 :


    cfg_file=/usr/local/nagios/etc/objects/commands.cfg

    cfg_file=/usr/local/nagios/etc/objects/contacts.cfg

    cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg

    cfg_file=/usr/local/nagios/etc/objects/templates.cfg


    Nagios가 모니터링에 사용될 설정파일을 지정하는데 사용되는 설정이며, 호스트/그룹, 연락처/그룹 등의 정의가 되어있습니다




    3) 캐시 파일 지정


    기본설정 : object_cache_file=/usr/local/nagios/var/objects.cache


    캐시파일을 지정하는데 사용합니다 캐시 파일은 Nagios가 다시 시작될때 만들어지며 CHI에 의해 사용됩니다




    4) 리소스 파일


    기본설정 : resource_file=/usr/local/nagios/etc/resource.cfg


    매크로 할수 있는 선택정 파일을 지정하는데 사용합니다




    5) 임시 파일


    기본설정 : temp_file=/usr/local/nagios/var/nagios.tmp


    Nagios가 상태 데이터 등을 업데이트 할 때 사용하는 임시 파일입니다




    6) 상태 파일


    기본설정 : status_file=/usr/local/nagios/var/status.dat


    현재 상태, 주석 및 중단 시간 정보를 저장하는데 사용하는 파일입니다





    7) 상태 파일 업데이트 간격


    기본설정 : status_update_interval=10


    Nagios가 상태 파일에서 상태 데이터를 업데이트하는 빈도(초 단위)를 설정하는 부분입니다




    8) Nagios 사용자


    기본설정 : nagios_user=nagios


    Nagios 프로세스가 실행하는 과정에 사용자를 설정하는데 사용됩니다




    9) Nagios 그룹


    기본설정 : nagios_group=nagios


    Nagios 프로스세스가 실행하는 과정에 그룹을 설정하는데 사용됩니다




    10) 알림 옵션


    기본설정 : enable_notifications=1


    Nagios가 시작될때 알림을 보낼지 여부를 설정하는 부분입니다


    * 0 = 알림 사용 중지


    * 1 = 알림사용(기본값)




    11) 서비스 확인 실행 옵션


    기본설정 : execute_service_checks=1


    Nagios가 시작될때 서비스 점검을 확인할지를 설정하는 부분입니다


    * 0 = 서비스 확인을 실행하지 않음


    * 1 = 서비스 검사 실행(기본값)




    12) 수동 서비스 수랑 승인 옵션


    기본 설정 :  accept_passive_service_checks=1


    Nagios가 시작될때 수동으로 서비스 점검을 할지를 설정하는 부분입니다


    * 0 = 수동 서비스 점검을 허용하지 않음


    * 1 = 수동 서비스 검사 허용(기본값)





    13) 호스트 확인 실행 옵션


    기본 설정 : execute_host_checks=1


    Nagios가 시작될때 호스트 점검을 할지를 설정하는 부분입니다


    * 0 = 호스트 검사를 실행하지 않음


    * 1 = 호스트 검사 허용(기본값)



    14) 수동 호스트 검사 허용


    기본설정 : accept_passive_host_checks=1


    Nagios가 시작될때 수동으로 호스트 점검을 할지를 설정하는 부분입니다




    15) 로그 초기화 설정


    기본설정 : log_rotation_method=d


    Nagios 로그 파일을 새로 생성일자의 설정하는 부분입니다


    * n = 설정안함


    * h = 시간당


    * d = 매일


    * w = 매주


    * m = 매월




    16) 로그 보관 경로


    기본설정 : log_archive_path=/usr/local/nagios/var/archives


    Nagios 로그파일이 저장될 경로 설정하는 부분입니다




    17) 외부 명령 검사 옵션


    기본설정 : check_external_commands = 1


    Nagios에서 명령으로 검사여부를 설정하는 부분입니다


    * 0 = 외부 명령을 확인하지 않음


    * 1 = 외부 명령 확인 (기본값)





    18) 외부 명령 검사 간격


    기본설정 : command_check_interval


    s가 붙은 숫자를 지정하면 외부 명령검사를 대기하는 시간(초 단위) 입니다




    19) 외부 명령 파일


    기본 설정 : command_file=/usr/local/nagios/var/rw/nagios.cmd


    Nagios가 처리하게될 명령을 검사하는 파일 입니다




    20) 업데이트 확인


    기본 설정 : check_for_updates=1


    Nagios가 새로운 업데이트가 있는지 자동으로 체크하는 부분입니다




    21) 파일 잠금


    기본 설정 : lock_file=/var/run/nagios.lock


    Nagios의 데몬이 실행될때 생성하게되는 잠금파일의 위치를 지정하는 경로입니다 (-d 명령 줄 인수로 시작한 경우) 이 파일은 실행중인 Nagios 프로세스의 프로세스 ID 번호를 포함합니다




    22) 상태 보존 옵션


    기본 설정 : retain_state_information=1


    Nagios가 프로그램 재시작하는 과정에 호스트와 서비스에 대한 상태를 보유할지 여부를 설정합니다




    23) 상태 보존 파일


    기본 설정 : state_retention_file=/usr/local/nagios/var/retention.dat


    Nagios가 종료되기 전에 상태, 정지 시간 및 주석 정보를 저장하는데 사용하는 파일 입니다





    24) 자동 상태 보존 간격


    기본 설정 : retention_update_interval=60


    Nagios가 보존 데이터를 자동으로 저장하는 빈도(분 단위)를 설정하는 부분입니다




    25) 프로그램 상태 옵션 사용


    기본 설정 : use_retained_program_state=1


    Nagios가 보존 파일에 저장된 값을 기반으로 다양한 프로그램 전체 상태 변수를 설정할지 여부를 결정합니다




    26) 시스템 로깅 옵션


    기본 설정 : use_syslog=1


    로컬 호스트의 메시지가 syslog 기능에 기록되는지 여부를 설정하는 부분입니다


    * 0 = syslog 기능을 사용하지 않음


    * 1 = syslog 기능 사용




    27) 알람 로깅 옵션


    기본 설정 : log_notifications=1


    알림 메시지의 기록 여부를 설정하는 부분입니다




    28) 서비스 확인 재시도 로깅 옵션


    기본 설정 : log_service_retries=1


    서비스 검사 재시도가 기록되는지 여부를 설정하는 부분입니다


    * 0 = 호스트 검사 재시도를 기록하지 않습니다


    * 1 = 호스트 검사 재시도 기록




    29) 이벤트 처리기 로깅 옵션


    기본 설정 : log_event_handlers=1


    서비스 및 호스트 이벤트 헨트러를 로깅 할지 여부를 설정하는 부분입니다


    * 0 = 에벤트 처리기를 로깅하지 않습니다


    * 1 = 이벤트 핸드러 기록





    30) 초기 상태 로깅 옵션


    기본 설정 : log_initial_states=0


    Nagios 상태가 OK 상태가 되더라도 모든 초기 호스트 및 서비스 상태를 강제로 기록할지를 설정하는 부분입니다





    31) 수동 검사 로깅 옵션


    기본 설정 : log_external_commands=1


    Nagios의 외부 명령을 기록할지 여부를 설정하는 부분입니다


    * 0 = 외부 명령을 로그하지 않습니다


    * 1 = 외부 명령 로그(기본값)





    32) 수동 검사 로깅 옵션


    기본 설정 : log_passive_checks=1


    Nagios의 외부 명령을 수동으로 기록할지 여부를 설정하는 부분입니다




    33) 서비스 최대 점검 시간


    기본 설정 : max_service_check_spread=30


    Nagios가 정기적으로 점검하는 시간의 최대로 검사하는 시간 입니다 (분 단위)




    34) 동시 점검 최대 서비스 개수


    기본 설정 : max_concurrent_checks=0


    최대 서비스 점검 최대 수를 지정하는 설정입니다





    35) 타이밍 간격 길이


    기본 설정 : interval_length=60


    스케쥴링 큐, 재 통보 등의 타이밍에 사용되는 간격이며 설정은 초 단위 입니다




    36) enable_flap_detection = 1  - off 하기



    37) 서비스 시간 초과 확인


    기본 설정 : service_check_timeout=60


    Nagios에서 서비스 체크를 실행할 수 있는 최대시간(초 단위)입니다






    38) 서비스 시간 초과 상태 확인


    기본 설정 : service_check_timeout_state=c


    Nagios에서 service_check_timeout 초 내에 응답하지 않는 서비스는 화면상에 보여줄 내용입니다


    * c - 위험(기본값)


    * u - 알수없음


    * w - 경고


    * o - OK




    39) 호스트 제한시간 확인


    기본 설정 : host_check_timeout=30


    Nagios에서 호스트 체크를 실행할 수 있는 최대시간(초 단위)입니다




    40) 이벤트 처리기 시간 초과


    기본 설정 : event_handler_timeout=30


    Nagios에서 이벤트 처리기를 실행할 수 있는 최대시간(초 단위)입니다




    41) 알람 시간 초과


    기본 설정 : notification_timeout=30


    Nagios에서 명령을 실행할 수 있는 최대시간(초 단위)입니다




    42) 성능 데이터 프로세서 명령 시간 초과 설정


    기본설정 : perfdata_timeout=5


    Nagios에서 호스트 성능 데이터 프로세서 명령이나 서비스 성능 데이터 프로세서 명령을 실행할 수 있는 최대시간(초 단위)입니다




    43) 날짜 형식


    기본 설정 : date_format=us


    Nagios에서 웹 인터페이스와 날짜 / 시간 매크로에서 사용할 날짜 / 시간 형식 지정할 수 있습니다



    Option Output Format Sample Output

    us         MM/DD/YYYY HH:MM:SS 06/30/2002 03:15:00

    euro         DD/MM/YYYY HH:MM:SS 30/06/2002 03:15:00

    iso8601 YYYY-MM-DD HH:MM:SS 2002-06-30 03:15:00

    strict-iso8601 YYYY-MM-DDTHH:MM:SS 2002-06-30T03:15:00



    44) 관리자 이메일 주소


    기본 설정 : admin_email=nagios@localhost


    로컬 컴퓨터 관리자의 전자 메일 설정 하는 부분입니다




    45) 디버그 파일 경로


    기본 설정 : debug_file=/usr/local/nagios/var/nagios.debug


    Nagios가 디버깅 정보를 써야하는 곳을 결정합니다. 정보 (있는 경우)는 debug_level 및 debug_verbosity 옵션에 의해 결정됩니다 . Nagios는 max_debug_file_size 옵션 을 사용하여 특정 크기에 도달하면 디버그 파일을 자동으로 회전하게 할 수 있습니다




    46) 디버그 레벨


    기본 설정 : debug_level=0


    Nagios에서 debug_file에 쓸 유형을 결정합니다


    * -1 = 모든것을 기록하십시오


    * 0 = 아무것도 로그하지 않음(기본값)


    * 1 = 기능 입력 / 종료 정보


    * 2 = 구성 정보


    * 4 = 프로세스 정보


    * 8 = 예정된 이벤트 정보


    * 16 = 호스트 / 서비스 확인 정보


    * 32 = 알림 정보


    * 64 = 이벤트 브로커 정보




    47) 디버그 자세한 표시


    기본 설정 : debug_verbosity=1


    Nagios에서 debug_file에 쓸 디버깅 정보의 양을 결정합니다





    48) 최대 디버그 파일 크기


    기본 설정 : max_debug_file_size=1000000


    디버그 파일의 최대크기 설정부분입니다(바이트 단위) 파일이 크기보다 커지면 .old 확장명으로 이름이 바뀌며 디스크 사용공간을 벗어나지 않도록 하시기 바랍니다





    2. Nagios 모니터링 서버 설정 파일 - localhost.cfg


    파일위치 : /usr/local/nagios/etc/objects/localhost.cfg




    - 서버를 모니터링시에 nagios.cfg의 파일에 정의한 서버모니터링 설정파일의 접근하게 됩니다 또한 추가할 모니터링의 서버가 있다면 ngios.cfg에 localhost.cfg 파일처럼 추가하시면 됩니다


    1) 호스트 설정


    # vi /usr/local/nagios/etc/objects/localhost.cfg
    
    define host{
            use                     linux-server            ; Name of host template to use
                                                            ; This host definition will inherit all variables that are defined
                                                            ; in (or inherited by) the linux-server host template definition.
            host_name               localhost
            alias                   localhost
            address                 127.0.0.1
            }
    



    host_name : 서버를 식별하는데 사용하는 이름입니다


    alias : host_name 식별하는 데 긴이름을 설명한느데 사용하는 이름입니다


    address : 모니터링하게될 서버의 IP를 입력합니다





    2) 서비스 모니터링 설정


    # vi /usr/local/nagios/etc/objects/localhost.cfg
    
    define service{
            use                             local-service         ; Name of service template to use
            host_name                       localhost
            service_description             PING
            check_command                   check_ping!100.0,20%!500.0,60%
            }
    



    host_name : 위에서 호스트에 설정한 이름을 입력합니다


    service_description : 모니티링할 서비스를 설명을 입력합니다


    check_cmmand : 나기오스에 설치된 명령을 사용하며, 명령에 인수를 전달하여 사용할 수 있습니다




    3. Nagios 명령어 구성 파일 - commands.cfg


    파일위치 : /usr/local/nagios/etc/objects/commands.cfg




    localhost.cfg(모니터링 서버)설정 파일의 정의된 서비스 안에 check_cmmand의 내용이 commands.cfg파일의 정의된 명령를 사용하게됩니다 또한 commands.cfg의 파일에 명령어가 정의되어 있지 않다면 사용할수 없습니다



    # vi /usr/local/nagios/etc/objects/commands.cfg
    
    				.
    				.
    				.
    
    define command{
            command_name    check_ping
            command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
            }
    
    				.
    				.
    				.
    



    command_name : 사용하게될 명령어의 이름을 입력합니다


    command_line : 정의한 명령어를 실행시 명령어 이며, 또한 인수를 넣어 사용할수도 있습니다(여기서 정의한 명령어는 Command_name의 입력한 내용일 사용하면 command_line의 명령어가 실행되게 됩니다)



    Posted by 서버이야기