Nagios 기본 구성파일 용도
Nagios 구성파일 알아보기
Nagios(나기오스) 설정과정에서 정말 많은설정이 있더군요 또한 Cacti와 다르게 복잡한 텍스트로 구성된 설정 방식 때문에 변수와 플러그인의 모든 파라미터에 별개의 구성 항목이 필요합니다
이번 시간에는 Nagios의 구성파일의 대해서 알아보도록 하겠습니다
APM 설치 관련글 :
APM 컴파일 설치방법 - http://server-talk.tistory.com/59
APM YUM 설치방법 - http://server-talk.tistory.com/174
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의 명령어가 실행되게 됩니다)