티스토리 뷰

SMS개발자료/nagios

Nagios 설치

solarwind 2010. 12. 15. 14:20
반응형

1.   Nagios 설치

Nagios의 인스톨 및 설정은 약간 복잡하며, 실제로 구동되기까지는 많은 설정이 필요합니다

압축풀기

Nagios 배포본을 풀려면 임의의 디렉토리에서 아래2개의 커멘드를 실행합니다.

#gunzip nagios-1.0.tar.gz
#tar xf nagios-1.0.tar

ZIP형식에서 압축된 배포본을 다운로드했을 경우는 다음과 같이 실행합니다.

#unzip nagios-1.0.zip

인스톨 디렉토리 작성 및 유저,그룹 등록

#adduser –u nagios –g nagios -b /usr/local/nagios

configuration 실행

Make파일을 작성하는 configure script 실행.

#./configure --prefix=prefix --with-cgiurl=cgiurl --with-htmurl=htmurl --with-nagios-user=someuser --with-nagios-grp=somegroup

  • prefix부분은 위에서 만든 인스톨 디렉토리. (디폴트 /usr/local/nagis)
  • cgiurl부분은 실제로CGI를 실행시키는URL. (디폴트 /nagios/cgi-bin) 끝에 slash넣지 않습니다.
  • htmurl부분은 웹 interface와 HTML파일을 표시하는URL(디폴트 /nagios/)
  • someuser부분은 등록한 유저(Nagios). 파일 권한은 이 유저로 설정됨.(디폴트nagios)
  • somegroup부분은 등록한그룹(Nagios). 파일 권한은 이 그룹으로설정됨.(디폴트는nagios)

컴파일

Nagios와 CGI를 컴파일하기위해 다음을 실행 합니다.

#make all

바이너리와HTML파일 인스톨

#make install

기동 스크립트 인스톨

/etc/rc.d/init.d/nagios에 Nagios기동 스크립트 인스톨.

#make install-init

OS의 특성에 맞추어 변경이 필요합니다.

디렉토리 구조와 파일 위치

Nagios의 인스톨 디렉토리로 이동하기 위해 아래의 커멘드를 실행.

#cd /usr/local/nagios

서브 디렉토리

   

bin/

Nagios core program

etc/

메인, 자원, 오브젝트, CGI의 각 설정 파일 배치 장소

sbin/

CGI 실행파일

share/

HTML파일 (Web interface와 on-line document)

var/

로그 파일을 위한 디렉토리

플러그 인 인스톨

Nagios를 실행하기 위해서는 플러그 인을 인스톨 해야 합니다. 플러그 인은 보통 Nagios를 인스톨 한 디렉토리내의libexec/ 디렉토리에 인스톨 됩니다(예:/usr/local/nagios/libexec). 플러그 인은 감시를 하는 바이너리 혹은 스크립트입니다. 플러그 인 최신판의 릴리스는 Nagios의 다운로드 페이지 혹은SourceForge의 프로젝트 페이지에서 구할 수 있습니다.

interface의 설정

이 문서의 내용은, 웹 서버에 Apache가 설치되어 있으며 Nagios가/usr/local/nagios에 인스톨 되어 있는 것을 전제로 합니다.

CGI를 실행하기 위한 Script alias 설정

디폴트 : http://서버주소/nagios/cgi-bin/에서 Nagios의CGI가 실행된다는 전제.

configure script에 --with-cgiurl 옵션을 사용하여 변경이 가능합니다. 웹 서버의 설정 파일(httpd.conf)에 다음과 같은 설정을 추가합니다. (웹 서버 설정 파일의 장소는 시스템에 따라서 약간 차이가 남.)

 
 
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
<Directory "/usr/local/nagios/sbin/">
    AllowOverride AuthConfig
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>
 
 

중요! ScriptAlias의 행은 다음에 설명하는Alias의 행보다 반드시 앞에 추가해야 합니다. 그렇지 않으면Apache는 각 행을 다른 것으로 해석해 버리게 됩니다.

HTML파일을 위한 alias의 설정

웹 서버로부터HTML파일을 실행하기 위해서, Apache의 설정 파일을 다음과 같이 설정합니다.

다음의 행을 웹 서버의 설정 파일(httpd.conf)에 추가 합니다

Alias /nagios/ /usr/local/nagios/share/
<Directory "/usr/local/nagios/share">
    Options None
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
</Directory>

이 설정은http://서버주소/nagios/ URL에서 HTML 웹 interface혹은 문서 액세스가 가능하게 하기 위한 것입니다. Congigure Script에서 --with-htmlurl(디폴트 /nagios/)을 주어 변경할 수 있습니다.

중요! Alias지시문은 CGI를 실행하기 위한ScriptAlias지시문의 뒤에 기술하지 않으면 안됩니다. 만약, ScriptAlias의 전에 기술해 버리면CGI에 액세스 했을 때에404 에러가 나게됩니다.

웹 서버의 재기동

Apache설정 파일 편집이 끝나면 , 다음과 같이 웹 서버를 재 기동 합니다.

#/etc/rc.d/init.d/httpd restart

설정 확인

Apache 설정을 변경한 부분이 제대로 동작하는지 점검 합니다.
브라우저로http://사용하는 서버/nagios로 접속해서, Nagios의 웹 interface가 표시되는지 확인합니다.

인증 설정

interface 설정 완료 후, CGI파일 액세스 제한을 두기 위해, 사용자 인증 설정을 해야 합니다.

 

2. Nagios의 설정

메인 설정 파일

메인 설정 파일(/usr/local/nagios/etc/nagios.cfg)

샘플 메인설정 파일은 바이너리를 컴파일 하기 전configure때에 자동으로 생성됩니다. Nagios를 인스톨 한 디렉토리 내의etc 디렉토리 안이나, 배포본을 압축 해제한 디렉토리 안에 샘플 설정 파일이 있습니다. 인스톨 시에make install-config를 실행 했다면, 설정 파일은 인스톨 디렉토리(/usr/local/nagios/etc)에 복사될 것입니다. 메인 설정 파일명은nagios.cfg입니다.

Resource 설정 파일

Resource 설정 파일은 사용자 정의 매크로를 정의합니다. Resource file은 다른 정보(데이타베이스에 접속 설정등)도 동시에 정의 할 수 있습니다. Resource 설정 파일은 중요한 설정 정보가 포함되어 있으므로 ,CGI설정 시 보이지 않도록 퍼미션을 설정해야 합니다.

메인 설정 파일에 특정resource_file명을 기술하거나, 새로운 Resource 설정 파일을 추가할 수 있습니다.

오브젝트(Object) 설정 파일

오브젝트 설정 파일은 호스트(hosts), 서비스(services), 호스트 그룹(hostgroups), 컨택트(contacts), 컨택트 그룹(contactgroups), 커멘드(commands)등을 정의하는 파일군 입니다. 이 파일들은, 무엇을, 어떻게 감시하고 통보하는지를 정의합니다.

CGI설정 파일

CGI설정 파일(/usr/local/nagios/etc/cgi.cfg)에는 CGI의 실행에 관한 많은 지시문이 포함되어 있습니다.

샘플CGI설정 파일은 바이너리를 컴파일 하기 전configure 때에, Nagios를 인스톨 한 디렉토리 내의etc 디렉토리나, 배포본 압축해제를 한 곳에 자동으로 생성됩니다. 인스톨시에 make install-config 커멘드를 실행하였다면, 샘플설정 파일은 인스톨장소(/usr/local/nagios/etc)에 있습니다. 메인설정 파일의 디폴트 파일명은 cgi.cfg입니다.

추가 정보 설정 파일

추가 정보 설정 파일은CGI를 사용하는 호스트나 서비스의 추가정보를 정의합니다.
CGI를 사용하는 호스트나 서비스의 추가정보는 이하와 같습니다.

l        호스트나 서비스의 추가의 정보로서URL를 표시

l        interface에 호스트나 서비스의 멋스러운 아이콘을 표시

l        유저 정의의2-D,3-D좌표로스테이터스 맵이나3D스테이터스 맵을 표시

추가정보는 어디서 정의하는가?

데이터의 정의 방법은 CGI와 core program 컴파일 방법이 있습니다. 정확하게는, 컴파일 전의 configure스크립트에 어떤 옵션을 붙였는지에 따라 달라집니다. 오브젝트 정의의 설정 방법은 3종류의 방식이 있습니다.

  • 예전"디폴트"방식 - 오래된 스타일의 오브젝트 정의 방법으로 하위방식과의 호환을 위해 있습니다. 이 오브젝트 데이터의 정의 방법은 그다지 많이 쓰이지 않습니다. 특별히 이 방법으로 컴파일되어 있지 않다면 기본으로는 템플릿 베이스의 방식을 사용합니다.
  • 템플릿 베이스 방식 - 새로운 오브젝트 설정방식입니다. 템플릿을 사용하는 것으로 복수의 호스트, 서비스등을 빠르고 간단하게 설정할 수 있습니다. 디폴트 CGI가 특별히 다른 방식에서 컴파일되어 있지 않는 한 이 방식을 사용합니다.
  • 데이타베이스 방식 – 데이터베이스내의 정의에 따라 사용합니다.

Notes

설정 파일의 작성 및 수정 시에 아래사항을 미리 알아두면 좋습니다.

  1. '#'로 시작되는 행은 코멘트로서 해석되고 실제로는 처리되지 않습니다.
  2. 스페이스(공백)가 선두에 들어가서는 안됩니다.
  3. 값은 대문자 소문자를 구분합니다.

샘플 설정

샘플의 설정 파일은Nagios를 컴파일 하기 전configure시에 작성됩니다. 메인 설정 파일의 디폴트 파일명은nagios.cfg입니다. - 이 파일은 Nagios 인스톨 디렉토리의 etc/서브 디렉토리에 인스톨 됩니다. (예:/usr/local/nagios/etc/)

설정 목차+

로그 파일

 

서식:

log_file=<file_name>

예:

log_file=/usr/local/nagios/var/nagios.log

이 설정은Nagios의 메인 로그 파일의 작성 위치를 정합니다. 이 설정 항목은 반드시 설정 파일 중 최초로 설정하지 않으면 안됩니다. 로그로테이트가 활성화 되어 있다면, 이 파일은 1시간, 1일, 1주간 혹은1개월마다 자동으로 로테이트 됩니다.

오브젝트 설정 파일

 

서식:

cfg_file=<file_name>

예:

cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/commands.cfg

이 설정은 감시에 사용하는 오브젝트 설정 파일의 위치를 지정합니다. 이 파일은 "호스트"설정 파일 이외에도 호스트, 호스트 그룹, 서비스, 연락처, 연락처 그룹, 서비스, 커멘드 등이 포함되어있습니다. 각각의 설정 정보를 여러 개의 cfg_file= 구문을 사용하여 복수의 설정 파일에 분할할 수 있습니다.

오브젝트 설정 파일의 디렉토리

 

서식:

cfg_dir=<directory_name>

예:

cfg_dir=/usr/local/nagios/etc/commands
cfg_dir=/usr/local/nagios/etc/services
cfg_dir=/usr/local/nagios/etc/hosts

이 설정은 감시에 사용하는 오브젝트 설정 파일이 있는 디렉토리를 지정합니다. 지정한 디렉토리내에 있는 .cfg확장자(extension)를 가진 모든 파일을 오브젝트 설정 파일로서 처리합니다. cfg_dir=이라고 하는 명령을 사용해 디렉토리를 별도로 지정할 수 있습니다.

자원 설정 파일

 

서식:

resource_file=<file_name>

:

resource_file=/usr/local/nagios/etc/resource.cfg

이 설정 항목은 공통으로 사용되는 유저명이나 패스워드, 아이템(디렉토리의 패스등)을 정의한 $USERn$매크로가 들어있는 설정 파일입니다. 메인 설정 파일에서 resource_file 스테이트먼트를 사용하여, 설정 파일을 여러 개 지정할 수 있습니다.

임시 파일

 

서식:

Temp_file=<file_name>

:

temp_file=/usr/local/nagios/var/nagios.tmp

이 설정은 코멘트 데이터나 스테이터스 데이터등을 갱신할 때에 정기적으로 작성되는 파일을 지정합니다.

스테이터스 파일

 

서식:

status_file=<file_name>

:

status_file=/usr/local/nagios/var/status.log

이 설정은 모니터링 상태의 log를 기록하는 파일을 지정합니다. 모든 호스트와 서비스 상태는 이 파일에 기록됩니다. 웹 interface상에서 현재 상태가 어떠한 것인가 표시하기 위해서 CGI가 이 파일을 읽어들입니다. CGI가 제대로 동작하기 위해서는 이 파일은 읽기 권한으로 설정이 되어있어야 합니다. 이 파일은 Nagios가 정지하면 삭제되며 Nagios가 기동하면 다시 작성됩니다.

애그리게이트 스테이터스 업데이트 옵션

 

서식:

aggregate_status_updates=<0/1>

:

aggregate_status_updates=1

이 옵션은 호스트, 서비스, 프로그램 상태의 데이터를 갱신하는지 아닌지를 결정합니다. 이 옵션을 1로 설정할 경우, 호스트가 서비스 체크를 할 때마다 스테이터스 데이터가 갱신됩니다. 이 경우 다수의 호스트나 서비스를 감시하고 있다면 높은CPU부하와 파일I/O가 발생하게 됩니다. 0으로 설정할 경우는 지정한 시간에 따라 스테이터스 데이터를 갱신하여 부하를 줄일 수 있으므로 0으로 설정하는 것이 좋습니다.

  • 0 = 애그리게이트 스테이터스 업데이트 옵션 활성
  • 1 = 애그리게이트 스테이터스 업데이트 옵션 비활성(디폴트)

상태 집계 갱신 간격

 

서식:

status_update_interval=<seconds>

:

status_update_interval=15

상태 집계 갱신 옵션(aggregate_status_updates)이 0으로 설정되었을 때 상태 데이터를 몇 초단위로 갱신할 것인지를 설정합니다. 설정치의 최저 값은 5초입니다.

Nagios유저

 

서식:

nagios_user=<username/UID>

:

nagios_user=nagios

이 설정은Nagios프로세스가 어떤 유저에 의해 움직이는지 설정합니다. 프로그램 기동 후 감시를 시작하기 전까지, Nagios는 여기서 지정된 유저자신의 레벨 만큼의 권한을 부여합니다.

Nagios 그룹

 

서식:

nagios_group=<groupname/GID>

:

nagios_group=nagios

이 설정은Nagios프로세스가 어떤 그룹에서 움직이는지 설정합니다. 프로그램 기동 후 감시를 시작하기 전까지 Nagios는 여기서 지정된 유저그룹의 레벨 만큼의 권한을 부여합니다.

통지 옵션

 

서식:

enable_notifications=<0/1>

:

enable_notifications=1

FIXME FIXME:

이 옵션은 상태가 바뀌었을 때에 통지를 실시할 것인지 말 것 인지를 결정합니다. 이 옵션이 0일때는 호스트나 서비스의 상태가 변화해도 전혀 통지를 하지 않습니다. 상태 보존 옵션이 유효(use_retained_program_state도 유효)설정으로 모니터링 중일 때 이 옵션을 변경하고 싶다면,  웹Interface를 경유, 외부 커멘드를 사용하여 변경할 수 있습니다.

  • 0 = 통지를 무효로 한다
  • 1 = 통지를 유효하게 한다 (디폴트)

서비스 체크 실행 옵션

 

서식:

Execute_service_checks=<0/1>

:

Execute_service_checks=1

이 옵션은 기동한 직후에 서비스 체크를 실행할것인지를 결정합니다. 이 옵션이 0으로 설정되어 있으면, Nagios는"sleeve"모드로 기동해 , 기동 직후에 감시 호스트를 체크하지 않습니다. (패시브 체크를 무효로 하고 있지 않은 한 패시브 체크는 받아들입니다.) 상태 보존 옵션이 유효(use_retained_program_state도 유효)설정으로 모니터링 중일 때 이 옵션을 변경하고 싶다면,  웹interface를 경유, 외부 커멘드를 사용하여 변경할 수 있습니다.

  • 0 = 서비스 체크를 실시하지 않는다
  • 1 = 서비스 체크를 실시한다 (디폴트)

패시브 서비스 체크 접수 옵션

 

서식:

accept_passive_service_checks=<0/1>

예:

accept_passive_service_checks=1

이 옵션은 패시브 서비스 체크를 사용할 것인지를 결정합니다. 이 옵션이 0으로 설정이 되어 있으면, 어떤 패시브 체크도 받아들이지 않습니다. 상태 보존 옵션이 유효(use_retained_program_state도 유효)설정으로 모니터링 중일 때 이 옵션을 변경하고 싶다면,  웹 interface를 경유, 외부 커멘드를 사용하여 변경할 수 있습니다.

  • 0 = 패시브 체크를 거부
  • 1 = 패시브 체크를 허가 (디폴트)

이벤트 핸들러 옵션

 

서식:

enable_event_handlers=<0/1>

:

enable_event_handlers=1

기동했을 때에 이벤트 핸들러를 가동시키는지를 결정합니다. 이 옵션이 0으로 설정되어 있다면 어떤 호스트 및 서비스에 대해서도 이벤트 핸들러를 실행하지 않습니다. 상태 보존 옵션이 유효(use_retained_program_state도 유효)설정으로 모니터링 중일 때 이 옵션을 변경하고 싶다면,  웹 interface를 경유, 외부 커멘드를 사용하여 변경할 수 있습니다.
이벤트 핸들러는, 서비스나 호스트 상태가 바뀌었을 때에 옵션으로 실행하는 커멘드입니다.

  • 0 = 이벤트 핸들러 무효
  • 1 = 이벤트 핸들러 유효 (디폴트)

로그 로테이트 방식

 

서식:

log_rotation_method=<n/h/d/w/m>

:

log_rotation_method=d

이 설정은 로그 파일을 어떠한 방식으로 로테이트 할지 설정합니다.

  • n = 없이(로테이트 하지 않습니다 - 이것이 디폴트가 되어 있습니다)
  • h = 매시(매시0분 로테이트)
  • d = 매일(매일0시0분 에 로테이트)
  • w = 매주(일요일0시0분에 로테이트)
  • m = 매월(매월1일0시0분에 로테이트)

로그 어카이브(archive)의 패스

 

서식:

log_archive_path=<path>

:

log_archive_path=/usr/local/nagios/var/archives/

로테이트 한 로그 파일을 보존할 디렉토리를 지정합니다. 이 옵션은 로그 로테이트 하지 않는 경우는 무시됩니다.

외부 커멘드 체크 옵션

 

서식:

check_external_commands=<0/1>

:

check_external_commands=1

내부 커멘드 실행을 위한 커멘드 파일 확인을 실시하는지 아닌지를 결정합니다. 웹 interface의 커멘드 CGI를 이용하려고 한다면 1로 설정하여야 합니다. 써드파티의 프로그램도 커멘드 파일에 기입하여 정상적인 권한으로 사용할 수 있습니다.

  • 0 = 외부 커멘드를 체크하지 않는다(디폴트)
  • 1 = 외부 커멘드를 체크한다

외부 커멘드 체크의 간격

 

서식:

command_check_interval=<xxx>[s]

예:

command_check_interval=1

외부 커멘드의 체크 간격의 수치에"s"를 붙이면(예:30s),‘초’로서 해석됩니다. 만약"s"가 없으면 이것은"time units"로서 해석됩니다. interval_length의 값을 변경하고 있지 않는 한(후술) 디폴트의 것은60분으로 되어있습니다.

Note:이 설정을-1로 하면 할 수 있는 한 자주 외부 커멘드를 체크합니다. 커멘드 파일을 읽어들일 때마다 최근에 체크한 커멘드를 실행하려고 시도합니다.

외부 커멘드 파일

 

서식:

command_file=<file_name>

예:

command_file=/usr/local/nagios/var/rw/nagios.cmd

외부 커멘드를 실행하는 커멘드 파일의 장소를 지정합니다. 이 파일에 CGI커멘드를 기입합니다. 써드파티의 프로그램도 정상적인 권한으로 이 커멘드 파일에 기입할 수가 있습니다. 외부 커멘드 파일은 이름부가 파이프(FIFO)로 인플리맨트 됩니다. 이 파일은Nagios가 기동할 때에 작성되며 정지할 때에 삭제됩니다. Nagios가 기동할 경우에 이 파일이 남아 있었다면, 에러 메시지를 출력하고 기동을 중지합니다.

다운 타임 파일

 

서식:

downtime_file=<file_name>

:

downtime_file=/usr/local/nagios/var/downtime.log

사용하는 호스트나 서비스의 계획적인 다운 타임 정보를 보존하는 파일을 지정합니다.

코멘트 파일

 

서식:

comment_file=<file_name>

:

comment_file=/usr/local/nagios/var/comment.log

Nagios내의 서비스나 호스트의 코멘트를 보존하기 위한 파일입니다. 코멘트는 호스트, 서비스 모두 추가 정보CGI를 이용해 읽고 쓰기를 할 수 있게 되어 있습니다.

락 파일

 

서식:

lock_file=<file_name>

:

lock_file=/tmp/nagios.lock

Nagios가 demon로서 기동(커멘드 라인의 인수-d를 사용)했을 때에 작성하는 락 파일을 지정합니다. 이 파일에는 Nagios프로세스의 프로세스ID(PID)가 포함되어 있습니다.

상태 보존 옵션

 

서식:

retain_state_information=<0/1>

:

retain_state_information=1

프로그램과 호스트/서비스간의 상태 정보를 보존하는지를 결정합니다. 만약 이 옵션이 1로 설정되어 있으면, state_retention_file도 지정해 주어야 하며. Nagios는 호스트나 서비스의 전 상태를 정지(혹은 재기동)시에 보존해, 재차Nagios를 기동했을 때에 그 상태로 복귀합니다.

  • 0 = 상태 정보를 보존하지 않는다 (디폴트)
  • 1 = 상태 정보를 보존한다

상태 보존 파일

 

서식:

state_retention_file=<file_name>

예:

state_retention_file=/usr/local/nagios/var/status.sav

호스트와 서비스의 상태를 보존하는 보존 파일을 지정입니다. Nagios를 재 기동했을 때에 이 상태 보존 파일을 읽어 서비스, 호스트를 그대로 세트 합니다. 상태보존옵션을 작동시키고 싶다면 retain_state_information을 유효하게 하여야 합니다.

자동 상태 보존 간격

 

서식:

retention_update_interval=<minutes>

:

retention_update_interval=60

평소 동작시에 어느 정도의 간격으로 상태를 보존하는지 설정합니다. 이 설정을0으로 설정하면, Nagios는 자동 보존하지 않고, 정지나 재작동과 동시에 보존합니다. 만약 상태 보존 옵션(retain_state_information)옵션이 무효가 되어 있으면, 이 옵션은 의미가 없습니다.

보존된 프로그램 상태의 사용 옵션

 

서식:

use_retained_program_state=<0/1>

예:

use_retained_program_state=1

여러가지 프로그램 와이드의 설정을, 상태 보존 파일로부터 읽어 들여 실행 할것인지를 결정합니다. 상태 보존이 유효하게 설정되어 있을 때 프로그램 종료 시 보존되는 설정중 몇 개를 보게 되면 enable_notifications,enable_flap_detection,enable_event_handlers, execute_service_checks, accept_passive_service_checks가 있습니다. 만약 상태 보존옵션이 무효가 되어 있으면 이 설정은 의미가 없습니다.

  • 0 = 보존된 프로그램 상태를 사용하지 않는다
  • 1 = 보존된 프로그램 상태를 사용한다(디폴트)

Syslog로그인 옵션

 

서식:

use_syslog=<0/1>

:

use_syslog=1

로컬 호스트의 syslog퍼실리티를 사용해 로그를 취득할 것인지를 결정합니다.

  • 0 = syslog퍼실리티를 사용하지 않는다
  • 1 = syslog퍼실리티를 사용한다

통지 이력 로그인 옵션

 

서식:

log_notifications=<0/1>

:

log_notifications=1

 

통지가 잦을 때에 그 내용을 로그에 기록하는지를 결정합니다. 만약 통지하는 장비 혹은 서비스의 다운이 잦으면 로그의 크기가 빨리 커집니다.

  • 0 = 통지 이력을 로그에 남기지 않는다
  • 1 = 통지 이력을 로그에 남긴다

서비스체크 리트라이 로그인 옵션

 

서식:

log_service_retries=<0/1>

:

log_service_retries=1

재시행되는 서비스 체크를 로그에 기록할 것인지 결정합니다. 서비스 체크의 재시행은 체크 결과가OK일지라도 에러 리스폰스를 돌려주기 전에1회 이상 재시행을 시도하면 행해집니다. 이 롭션은 이벤트 핸들러를 사용한 서비스의 테스트 혹은 디버그시에 가장 유효합니다.

  • 0 = 서비스 체크의 재시행을 로그에 취득하지 않는다
  • 1 = 서비스 체크의 재시행을 로그에 취득한다

호스트체크 리트라이 로그인 옵션

 

서식:

log_host_retries=<0/1>

:

log_host_retries=1

호스트 체크의 재시행을 로그에 취득할 것인지 결정합니다. 이 옵션은 이벤트 핸들러를 사용한 호스트의 테스트 혹은 디버그에 가장 유효합니다.

  • 0 = 호스트 체크의 재시행을 로그에 취득하지 않는다
  • 1 = 호스트 체크의 재시행을 로그에 취득한다

이벤트 핸들러 로그인 옵션

 

서식:

log_event_handlers=<0/1>

:

log_event_handlers=1

서비스나 호스트의 이벤트 핸들러를 로그에 기록할 것인지 결정합니다. 이벤트 핸들러를 로그에 기록하는 것은 이벤트 핸들러에 사용한 스크립트를 디버그 할 경우에 유용합니다.

  • 0 = 이벤트 핸들러를 로그에 취득하지 않는다
  • 1 = 이벤트 핸들러를 로그에 취득한다

초기 상태 로그인 옵션

 

서식:

log_initial_states=<0/1>

:

log_initial_states=1

Nagios초기 서비스 상태가 OK상태여도 강제적으로 기록할 것인지 결정합니다. 보통은 초기 서비스/호스트 상태의 최초 체크시 문제가 있었을 경우에게만 기록합니다. 이 옵션은 서비스나 호스트를 장기간 관찰하는 (로그파일을 사용)목적의 어플리케이션등을 사용 할 경우에 유용합니다.

  • 0 = 초기 상태를 기록하지 않는다 (디폴트)
  • 1 = 초기 상태를 기록한다

외부 커맨드 로그인 옵션

 

서식:

log_external_commands=<0/1>

예:

log_external_commands=1

외부 커멘드를 로그에 기록해 줄 것인지를 결정합니다.

  • 0 = 외부 커멘드를 로그에 기록하지 않는다
  • 1 = 외부 커멘드를 로그에 기록한다(디폴트)

패시브 서비스 체크 로그인 옵션

 

서식:

log_passive_service_checks=<0/1>

:

log_passive_service_checks=1

패시브 서비스 체크를 로그에 기록하는지 아닌지를 결정합니다. 보통 이 옵션은 로그가 너무 많아 지므로 잘 사용하지 않습니다.

  • 0 = 패시브 체크를 로그에 기록하지 않는다
  • 1 = 패시브 체크를 로그에 기록한다 (디폴트)

글로벌 호스트 이벤트 핸들러 옵션

 

서식:

global_host_event_handler=<command>

:

global_host_event_handler=log-host-event-to-db

각 호스트의 상태가 바뀌었을 때에, 실행되는 이벤트 핸들러 커멘드를 지정할 수 있습니다. 글로벌 이벤트 핸들러는 각 호스트별로 정의한 이벤트 핸들러보다 먼저 실행됩니다. 커멘드 인수는 오브젝트 설정 파일로 지정한 커멘드의 숏 네임입니다. 커멘드가 어느 정도의 시간에 실행되는지를 제어하려면event_handler_timeout옵션을 사용합니다.

글로벌 서비스 이벤트 핸들러 옵션

 

서식:

global_service_event_handler=<command>

:

global_service_event_handler=log-service-event-to-db

각 서비스 상태가 바뀌었을 때에 실행되는, 이벤트 핸들러 커멘드를 지정할 수 있습니다. 글로벌 이벤트 핸들러는 각 서비스로 정의한 옵션의 이벤트 핸들러가 실행되기 전에 먼저 실행됩니다. 커멘드 인수는 오브젝트 설정 파일로 지정한 커멘드의 쇼트 네임입니다. 어느 정도의 시간에 커멘드가 실행되는지를 제어하려면event_handler_timeout옵션을 사용합니다.

체크 간격 sleep 시간

 

서식:

sleep_time=<seconds>

:

sleep_time=1

스케줄 큐에 들어가 있는 서비스 체크가 실행될 때, 체크하기 전에 어느 정도 sleep 해 둘까 초수로 지정합니다. 큐를 먼저 "catches up"한 후 잠시 지연 할 뿐 입니다.

 

체크 간격 지연 방식

 

서식:

inter_check_delay_method=<n/d/s/x.xx>

예:

inter_check_delay_method=s

 

서비스 검사 시 이벤트 큐의 처음을 어떻게 배포하게 되는지 선택할 수 있습니다.  "스마트" 지연 계산(디폴트)에서 정한 평균 검사 시간 간격 위의, 모든 서비스에게 최초의 검사를 시도 할 것입니다. 이때 딜레이를 주지않으면 모든 서비스 검사를 동시에 실행하게 하겠다는 뜻이며, 이것은 서비스가 병렬로 동시에 실행될 때 큰 CPU 부하를 발생시키는 것을 의미합니다.  서비스 상호 검사시 서로간의 다양한 딜레이를 주는 것이 올바른 방법이라 할 수 있습니다.

  • n = 조금의 딜레이도 사용하지 않는다 - 즉시 실행한다 모든 서비스 검사를 예정한다(즉 동시에)
  • d = 서비스 검사 사이에서 1의 "덤" 지연을 두 번째로 사용한다
  • s = "스마트" 지연 계산을 서비스 검사를 고르게 배포하기 위해 사용한다 (디폴트)
  • x.xx = x.xx 초의 사용자가 지정한 상호 검사 지연을 사용한다

서비스 교대 배치 요소

 

서식:

service_interleave_factor=<s|x>

예:

service_interleave_factor=s

 

이 변수는 서비스 검사가 어떻게 교대배치 되었는지 결정합니다. 서비스 검사의 더 짝수의 분배, 리모트 호스트 위의 감소되는 부하와 호스트 문제의 더 빠른 총체적인 검출을 위해 허용에 인터리브하는 것.  서비스 검사  parallelization 의 소개와 더불어 호스트가 즐길 수 있었던 원격 제어 장치는 검사 만일 인터리빙으로 공격했다 미실장에였다.  만일 리모트 호스트가 다른 서비스 검사 요구를 처리하는 것과 함께 부담이 주어지면 이것에 의해 서비스 검사가 부정확한 결과를 실패하거나, 복귀하게 될 텐데.  이 값을 1에 설정하는 것은 서비스 검사에 인터리브하지 않는 것와 같다(이것은 Nagios의 방법 버전이다 이전의 움직이게 하게 되는 0.0.5 에게).  당신이 그것을 변경할 특정의 이유가 있지 않는 한 교대 배치 요소의 자동 계산에 대해 이 값을 s(스마트)에 설정해라.  Nagios가 단지 시작하고 있을 때 인터리빙이 어떻게 일하는지 이해하는 최고의 방법이  상태 CGI (상세한 보기)를 본다.  당신은 그들이 나타나기 시작하는 것에 따라 서비스 검사 결과가 펼치게 된다는 것을 알아야만 한다.  더 많이 인터리빙이 일하는 방법에 관한 정보는  여기 에서 발견될 수 있다. [조1] 

 

  • x = A number greater than or equal to 1 that specifies the interleave factor to use. An interleave factor of 1 is equivalent to not interleaving the service checks.
  • s = Use a "smart" interleave factor calculation (디폴트)

최대 병행 서비스 체크

 

서식:

max_concurrent_checks=<max_checks>

:

max_concurrent_checks=20

모니터링시 최대 동시 병렬 체크수를 결정합니다. 이 설정을 1로 하면 어떠한 서비스도 병렬로 체크되지 않습니다. 이 설정을 0(디폴트)으로 지정하면 동시 병렬처리수에 제한을 두지 않습니다. 이 설정은 CPU사용율, 메모리등의 부하에 직접 영향을 주므로, 사용하고 있는 기기의 system resource를 보면서 계산한 값을 설정할 필요가 있습니다.

서비스 리퍼(수확) 빈도

 

서식:

service_reaper_frequency=<frequency_in_seconds>

예:

service_reaper_frequency=10

서비스"reaper"이벤트의 빈도를 로 지정합니다. "reaper"이벤트는 실행이 완료된 병렬 서비스 체크의 처리를 종합하여 실시하는 이벤트입니다. 이러한 이벤트는 Nagios 감시 논리의 핵심 기능입니다.

타이밍 간격

 

서식:

interval_length=<seconds>

:

interval_length=60

스케줄 큐 혹은 재통지 등의 타이밍을 지정하게 되는 "unit interval"의 초를 지정합니다. "Units intervals"은 호스트 설정 파일내에서 어느 정도의 간격으로 서비스 체크의 재통지를 실시할 것인지 결정하는 용도로 사용됩니다.

중요: 디폴트의 값은60입니다. 이것이 의미하는 것은 호스트 설정 파일이 1(60초=1분)이라고 하는"unit value"를 가지고 있음을 말합니다. 보통은 이 값을 변경 하지는 않습니다.

적극적 호스트 체크 옵션

 

서식:

use_agressive_host_checking=<0/1>

:

use_agressive_host_checking=0

호스트나 서비스를 더욱 재빠르게 체크하기위해 언제 어떻게 체크할 것인지를 결정합니다. 일반적으로는 이 옵션을 0으로 설정하며 체크를 보다 빠르게 할 수 있습니다. 이 옵션을 1로 설정했을 경우, 호스트 체크에 많이 시간을 사용하지만, 정확성은 조금 오릅니다. Nagios호스트의 상태를 너무 느리게 체크하는 문제가 있는 경우를 제외하면, 이 옵션은 무효로 하는 것이 좋습니다.

  • 0 = 적극적 호스트 체크를 무효로 한다 (디폴트)
  • 1 = 적극적 호스트 체크를 유효하게 한다

플랩 검지 옵션

 

서식:

enable_flap_detection=<0/1>

:

enable_flap_detection=0

호스트나 서비스의 "flapping"을 체크할 것인지 결정합니다. Flapping은 호스트 혹은 서비스가 잦은 빈도로 변화해 통지에 대해 탄막상태가 형성되어 버리는 것을 말합니다. 이 옵션을 1로 설정하면 호스트나 서비스의 flapping을 체크하여 일시적으로 그 호스트/서비스의 통지를 중지합니다. 플랩 검지 기능은 현재 실험 단계이므로 이 기능을 사용한다면 주의하는 것이 좋습니다.

  • 0 = 플랩 검지 기능을 무효 (디폴트)
  • 1 = 플랩 검지 기능을 유효

서비스 플랩의 최저 임계치

 

서식:

low_service_flap_threshold=<percent>

:

low_service_flap_threshold=25.0

이 옵션은 서비스 플랩 체크의 최저치를 결정합니다.

서비스 플랩의 최고 임계치

 

서식:

high_service_flap_threshold=<percent>

:

high_service_flap_threshold=50.0

이 옵션은 서비스 플랩 체크의 최고치를 결정합니다.

호스트 플랩의 최저 임계치

 

서식:

low_host_flap_threshold=<percent>

:

low_host_flap_threshold=25.0

이 옵션은 호스트 플랩 체크의 최저치를 결정합니다.

호스트 플랩의 최고 임계치

 

서식:

high_host_flap_threshold=<percent>

:

high_host_flap_threshold=50.0

이 옵션은 호스트 플랩 체크의 최고치를 결정합니다.

소프트 서비스 의존관계(dependencies) 옵션

 

서식:

soft_state_dependencies=<0/1>

:

soft_state_dependencies=0

이 옵션은 Nagios가 서비스 의존관계(dependencies)를 체크할 경우에 소프트 서비스 상태 정보를 사용할 것인지를 결정합니다. 최근의 상태로 의존관계(dependencies)를 체크하고 싶으면 이 옵션을 1로 설정하면 됩니다. (상태가 소프트인가 하드한가에 대해서는 상태 타입을 보면 됩니다)

  • 0 = 소프트 서비스 의존관계(dependencies) 옵션을 무효로 한다 (디폴트)
  • 1 = 소프트 서비스 의존관계(dependencies) 옵션을 유효하게 한다

서비스 체크 타임 아웃

 

서식:

service_check_timeout=<seconds>

:

service_check_timeout=60

이 옵션은Nagios가 서비스 체크를 실행 완료할 때까지의 시간을 결정합니다. 만약 체크가 이 실행 시간을 초과하면 체크는 정지해CRITICAL상태를 표시하게 됩니다. 타임 아웃 에러는 로그에 기록됩니다.

호스트 체크 타임 아웃

 

서식:

host_check_timeout=<seconds>

:

host_check_timeout=60

이 옵션은Nagios가 호스트 체크를 실행 완료할 때까지의 시간을 결정합니다. 만약 체크가 이 실행 시간을 초과하면 체크는 정지해CRITICAL상태를 표시하게 됩니다. 타임 아웃 에러는 로그에 기록됩니다.

이벤트 핸들러 타임 아웃

 

서식:

event_handler_timeout=<seconds>

:

event_handler_timeout=60

이 옵션은Nagios가 이벤트 핸들러를 실행 완료할 때까지의 시간을 결정합니다. 만약 체크가 설정한 실행 시간을 초과하면 체크는 정지해 CRITICAL상태를 표시하게됩니다. 타임 아웃 에러는 로그에 기록됩니다.

통지 타임 아웃

 

서식:

notification_timeout=<seconds>

:

notification_timeout=60

이 옵션은Nagios가 통지를 실행 완료할 때까지의 시간을 결정합니다. 만약 통지가 설정한 실행 시간을 초과하면 통지는 정지합니다. 타임 아웃 에러는 로그에 기록됩니다.

매우 강제적인 Service Processor 타임 아웃

 

서식:

ocsp_timeout=<seconds>

:

ocsp_timeout=5

obsessive compulsive service processor 커멘드를 실행 완료할 때까지의 시간을 결정합니다. 만약 체크가 이 실행 시간을 초과하면 체크는 정지해CRITICAL상태를 표시하게 됩니다. 타임 아웃 에러는 로그에 기록됩니다.

퍼포먼스 데이터 처리 커멘드 타임 아웃

 

서식:

perfdata_timeout=<seconds>

:

perfdata_timeout=5

호스트 퍼포먼스 데이터 처리 커멘드 혹은 서비스 퍼포먼스 데이터 처리 커멘드를 실행 완료할 때까지의 시간을 결정합니다. 만약 체크가 이 실행 시간을 초과하면 체크는 정지해CRITICAL상태를 표시하게 됩니다. 타임 아웃 에러는 로그에 기록됩니다.

강제적으로 얽매이는 서비스 옵션

 

서식:

obsess_over_services=<0/1>

예:

obsess_over_services=1

"obsess"over서비스 체크라고 정의한 obsessive compulsive service processor커멘드를 실행할 것인지를 결정합니다. 이 옵션은 분산 감시의 퍼포먼스 향상에 매우 유용하게 사용할 수 있습니다. 분산 감시를 실시하지 않는다면, 이 옵션을 0으로 하면 됩니다.

  • 0 = obsess over서비스를 무효로 한다 (디폴트)
  • 1 = obsess over서비스를 유효하게 한다

집요하게 강제적인 Service Processor커멘드

 

서식:

ocsp_command=<command>

:

ocsp_command=obsessive_service_handler

매 서비스 체크 후에 실행되는, 분산 감시용 커멘드를 강제적으로 실행할 것인지를 결정합니다. 이 커멘드는 이벤트 핸들러혹은 notification커멘드를 먼저 실행한 후 실행됩니다. 이 커멘드의 인수는 호스트 설정 파일로 정의한 커멘드 정의의 숏 네임입니다. 타임 아웃의 값은ocsp_timeout으로 제어합니다.

퍼포먼스 데이터 처리 옵션

 

서식:

process_performance_data=<0/1>

예:

process_performance_data=1

호스트/서비스 체크의 퍼포먼스 데이터를 처리할 것인지를 결정합니다

  • 0 = 퍼포먼스 데이터 처리를 무효 (디폴트)
  • 1 = 퍼포먼스 데이터 처리를 유효

고립 서비스 체크 옵션

 

서식:

Check_for_orphaned_services=<0/1>

:

Check_for_orphaned_services=0

고립 서비스 체크를 할 것인지를 설정합니다. 고립 서비스는 오랫동안 체크 결과가 돌아오지 않는 서비스를 가리킵니다. 서비스가 고립된다고 해서 새롭게 이벤트 큐에 체크가 재스케줄 되지는 않습니다. 이것은 서비스 체크가 정지해 버리는 결과가 됩니다. 이 옵션설정이 1일 때 결과가 돌아오지 않는 특정의 서비스 체크를 찾아내면, 에러 메세지를 출력해 그 서비스 체크를 재스케줄 합니다. 만약 계속 재 스케줄이 되지 않는 서비스가 있다면, 고립 서비스에 관한 로그 메시지를 보십시오.

  • 0 = 고립 서비스 체크를 무효로 한다 (디폴트)
  • 1 = 고립 서비스 체크를 유효하게 한다

서비스 프레쉬니스 체크 옵션

 

서식:

Check_service_freshness=<0/1>

:

Check_service_freshness=0

정기적인 서비스체크를 최근의 정보대로 체크하고 있는가를  검사할 것인지 결정합니다. 이 옵션을 1로 설정하게 되면 패시브 서비스 체크의 실행 시간을 올바로 따르고 있는지 확인하는데 도움이 됩니다.

  • 0 = 서비스 프레쉬니스 체크의 무효
  • 1 = 서비스 프레쉬니스 체크의 유효 (디폴트)

서비스 프레쉬니스 체크 간격

 

서식:

freshness_check_interval=<seconds>

:

freshness_check_interval=60

어느 정도의 빈도로 프레쉬니스 체크를 할 것인가를 결정합니다.

date 서식

 

서식:

date_format=<option>

:

date_format=us

이 옵션은 웹 interface 혹은 매크로로 사용하는 일자/시각의 표시 포맷을 결정합니다.

  

출력 포맷

샘플 출력

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

 

오브젝트명의 부정 캐릭터 라인

 

서식:

illegal_object_name_chars=<chars...>

예:

illegal_object_name_chars=`~!$%^&*"|'<>?,()=

이 옵션은 호스트명 이나 서비스명, 오브젝트의 이름으로 사용 하기를 바라지 않는 캐릭터 라인을 설정합니다. 오브젝트 정의시 대부분의 캐릭터 라인이 이용 가능하지만, 위의 샘플로 표시하고 있는 캐릭터 라인은 사용하지 않는 것이 좋습니다. 웹 interface나 , 통지 커멘드등에서 문제가 발생할 수도 있습니다.

매크로 출력의 부정 캐릭터 라인

 

서식:

illegal_macro_output_chars=<chars...>

:

illegal_macro_output_chars=`~$^&"|'<>

통지나 이벤트 핸들러나 다른 커멘드로 사용하기 전의 매크로의 출력 캐릭터 라인의 제한을 설정합니다. 이 옵션은 서비스나 호스트 체크 커멘드의 매크로에는 영향을 주지 않습니다. 보통의 경우 위의 예를 그대로 따라 주는 것이 좋습니다. 예의 몇개의 캐릭터 라인은 쉘의 interpreter가 되어 있거나(예:백 쿼츠)시큐러티적인 문제가 있기 때문입니다.

관리자E-Mail주소

 

서식:

admin_email=<email_address>

예:

admin_email=root@localhost.localdomain

이것은 로컬의 장비 (예:Nagios가 움직이고 있는 장비)의 관리자E-Mail주소를 설정합니다. 이 값은 $ADMINEMAIL$ 매크로를 사용하고 있는 통지 커멘드로 사용됩니다.

관리자 페이져

 

서식:

admin_pager=<pager_number_or_pager_email_gateway>

예:

admin_pager=pageroot@localhost.localdomain

이것은 로컬의 장비(예:Nagios가 움직이고 있는 장비)의 관리자의 페이져의 번호(혹은 페이져E-Mail게이트웨이)를 설정합니다. 이 값은$ADMINPAGER$ 매크로를 사용하고 있는 통지 커멘드로 사용됩니다.

 

CGI설정 파일 옵션

샘플 설정

샘플의CGI설정 파일은'make config' 커멘드로 작성할 수 있습니다. 디폴트의CGI설정 파일은cgi.cfg입니다

설정 목차

메인 설정 파일의 장소

 

서식:

main_config_file=<file_name>

예:

main_config_file=/usr/local/nagios/etc/nagios.cfg

이 설정은 메인 설정 파일의 장소를 지정합니다. CGI 설정 정보, 호스트 서비스 상태등의 정보가 어디에 있는지 알고 있어야 합니다.

물리적인HTML파일의 패스

 

서식:

physical_html_path=<path>

예:

physical_html_path=/usr/local/nagios/share

이것은Nagios가 있는 워크스테이션 혹은 서버의 어디에HTML파일이 있는지 물리적인 위치를 설정합니다. CGI가 사용하는 문서나 이미지 파일은 설정한 디렉토리의 ,docs/,images/서브 디렉토리에 있는 것으로 정해져 있습니다.

HTML의URL패스

 

서식:

url_html_path=<path>

:

url_html_path=/nagios

웹 브라우저 경유로 Nagios에 액세스 한다면 ,http://www.myhost.com/nagios의 같은 형태의 URL을 이 path를 사용하여 설정해 주어야 합니다.

Nagios Process Check Command

 

서식:

nagios_check_command=<command_line>

예:

nagios_check_command=/usr/local/nagios/libexec/check_nagios /usr/local/nagios/var/status.log 5 '/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg'

이것은Nagios프로세스 상태를 체크하기 위해서 사용하는 옵션 커멘드입니다. 이 커멘드는 Nagios프로세스가 살아 있는지 어떤지를CGI에서 체크할 수 있도록 합니다. 이 프로세스 체크 커멘드를 정의한다면, 그 커멘드는 다른 플러그 인과 같이 GUI가이드 라인에 따라야 합니다. 그 커멘드가 non-OK 상태를 나타냈을때 경우, CGI는Nagios프로세스가 정지하고 있다고 판단합니다.

인증의 사용

 

서식:

use_authentication=<0/1>

:

use_authentication=1

이 옵션은 유저가 어떤 커멘드 혹은 정보에 액세스 하는지 인증 기능과 인증을CGI에서 사용할 것인지를 제어합니다. 보통은 이 인증 기능을 사용하는 것이 기본입니다. 인증 기능을 사용하지 않는 경우, 누구라도 Nagio에 커멘드를 보낼 수가 있게 됩니다.

  • 0 = 인증 기능을 사용하지 않는다
  • 1 = 인증 기능을 사용한다 (디폴트)

디폴트 유저명

 

서식:

default_user_name=<username>

:

default_user_name=guest

이 설정은CGI에 액세스 하는 디폴트 유저명을 결정합니다. 이 설정으로 정의가 된 유저는 메인 웹 서버에의 액세스시 인증의 필요가 없게 됩니다.(ex> 파이어 월 내의 사용자)

중요: 만약 시큐어 인 웹 서버를 사용하고 있지 않고, CGI에 액세스 하는 유저가 정확하지 않다면, 이 설정은 정의하지 않아야 합니다.

시스템/프로세스 인포메이션의 액세스

 

서식:

authorized_for_system_information=<user1>,<user2>,<user3>,...<usern>

:

authorized_for_system_information=nagiosadmin,theboss

추가 정보CGI를 사용해 시스템/프로세스 정보를 열람할 수 있는 유저명의 인증 리스트입니다. 이 리스트에 포함된 유저는 시스템/프로세스 커멘드를 실행할 수 있는 권한이 없습니다. 만약 실행 권한까지 갖고 싶다면, authorized_for_system_commands 변수에도 유저명을 추가해야 합니다.

시스템/프로세스 커멘드의 액세스

 

서식:

authorized_for_system_commands=<user1>,<user2>,<user3>,...<usern>

:

authorized_for_system_commands=nagiosadmin

추가 정보CGI로부터 시스템/프로세스 커멘드를 실행할 수 있는 유저명의 인증 리스트입니다. 이 리스트에 포함된 유저는 시스템/프로세스 정보를 열람하는 권한을 가지고 있지 않습니다. 유저가 시스템/프로세스 커멘드를 열람할수 있는 권한을 갖고 싶다면, authorized_for_system_commands 변수에도 유저명을 추가해야 합니다.

설정 정보의 액세스

 

서식:

authorized_for_configuration_information=<user1>,<user2>,<user3>,...<usern>

:

authorized_for_configuration_information=nagiosadmin

설정 정보CGI로 설정을 열람할 수 있는 유저명의 인증 리스트입니다. 이 리스트에 포함된 유저는 호스트, 호스트 그룹,  서비스, 통지처, 통지처 그룹, 시간대, 커멘드의 모든 설정 정보를 볼 수가 있습니다.

글로벌 호스트 정보의 액세스

 

서식:

authorized_for_all_hosts=<user1>,<user2>,<user3>,...<usern>

:

authorized_for_all_hosts=nagiosadmin,theboss

이것은 전 호스트 상태와 설정 정보를 열람할 수 있는 권한이 유저명의 인증 리스트입니다. 이 리스트에 포함된 유저는 자동적으로 모든 서비스의 정보를 열람할 수 있게 됩니다. 만약 모든 호스트, 서비스에 대해서 커멘드 실행 권한을 가지고 싶다면, authorized_for_all_host_commands 변수에도 유저명을 추가해야 합니다.

글로벌 호스트 커멘드의 액세스

 

서식:

authorized_for_all_host_commands=<user1>,<user2>,<user3>,...<usern>

:

authorized_for_all_host_commands=nagiosadmin

커멘드CGI를 사용하여 모든 호스트에 대해서 커멘드를 실행할 수 있는 유저명의 인증 리스트입니다. 여기에 포함되는 유저는 자동적으로 모든 서비스의 커멘드 실행 권한이 주어집니다. 모든 호스트 서비스 상태와 설정 정보의 열람 권한을 가지고 싶다면 authorized_for_all_hosts 변수에 유저명을 추가해야 합니다.

글로벌 서비스 정보의 액세스

 

서식:

authorized_for_all_services=<user1>,<user2>,<user3>,...<usern>

:

authorized_for_all_services=nagiosadmin,theboss

모든 서비스 상태와 설정 정보를 열람할 수 있는 권한이 있는 유저명의 인증 리스트입니다. 서비스에 대해서 커멘드 실행 권한을 가지고 싶다면, authorized_for_all_service_commands에 해당 유저를 추가해야 합니다.

글로벌 서비스 커멘드에의 액세스

 

서식:

authorized_for_all_service_commands=<user1>,<user2>,<user3>,...<usern>

예:

authorized_for_all_service_commands=nagiosadmin

커멘드CGI를 사용하여 모든 서비스에 대해 커멘드를 실행할 수 있는 유저명의 인증 리스트입니다. 모든 서비스 상태와 설정 정보 열람 권한을 가지고 싶다면, authorized_for_all_services에 해당 유저를 추가해 주어야 합니다.

스테이터스 맵CGI의 배경 화면

 

서식:

statusmap_background_image=<image_file>

예:

statusmap_background_image=smbackground.gd2

이 옵션은 스테이터스 맵CGI의 백그라운드 배경으로 사용할 화면을 지정합니다. 화면은HTML이미지 패스안에 있으면 자동 설정됩니다. 이 패스는 physical_html_path 로 지정한 패스 하위의 "/images"패스로 자동 생성/설정 됩니다. Note:화상 파일은GIF,JPEG,PNG,GD2포맷을 사용할 수 있습니다. 그러나 ,GD2포맷을 추천합니다. GD2포맷을 사용하면 맵 화상을 생성할 때 CPU의 부하를 줄일 수가 있습니다.

스테이터스 맵의 디폴트 레이아웃 방법

 

서식:

default_statusmap_layout=<layout_number>

예:

default_statusmap_layout=4

이 옵션은 스테이터스 맵CGI의 디폴트 레이아웃 방식을 결정합니다. 옵션은 이하와 같습니다:

<layout_number> 치

레이아웃 방식

0

유저 정의의 좌표

1

계층

2

Collapsed트리

3

Balanced트리

4

마도카

5

마도카 (Marked Up)

6

마도카 (Balloon)

 

3D스테이터스 맵CGI에 포함되는 월드

 

서식:

statuswrl_include=<vrml_file>

:

statuswrl_include=myworld.wrl

VRML월드에 포함한 독자적인 오브젝트를 지정할 수 있습니다. physical_html_path 지시문으로 지정한 패스에 속하고 있는 것과 상정됩니다. Note:이 파일은 완전한VRML월드가 아니면 안됩니다. (예를 들어VRML브라우저로 볼 수가 있는 파일 등) [조2] 

3D스테이터스 맵의 디폴트 레이아웃 방식

 

서식:

default_statuswrl_layout=<layout_number>

예:

default_statuswrl_layout=4

이 옵션은3D스테이터스 맵CGIDML 디폴트 레이아웃 방식을 결정할 수 있습니다.

<layout_number> Value

Layout Method

0

유저 정의의 좌표

2

Collapsed트리

3

Balanced트리

4

 

CGI의 리로드 간격

 

서식:

refresh_rate=<rate_in_seconds>

예:

refresh_rate=90

이 옵션은 상태, 스테이터스 맵, 추가 정보 CGI의 리로드 간격을 초단위로 지정합니다.

사운드에 의한 경고

 

포맷:

Host_unreachable_sound=<sound_file>
host_down_sound=<sound_file>
service_critical_sound=<sound_file>
service_warning_sound=<sound_file>
service_unknown_sound=<sound_file>

예:

Host_unreachable_sound=hostu.wav
host_down_sound=hostd.wav
service_critical_sound=critical.wav
service_warning_sound=warning.wav
service_unknown_sound=unknown.wav

이 옵션은 상태CGI를 표시하는 중 문제가 발생했을 때에 브라우저로 소리를 울리는 그 사운드 파일을 지정합니다. 심각도 순위는 미도달(unleachable)에서 불명(unknown)상태까지 입니다(위의 순서대로 입니다). 사운드 파일은HTML디렉토리의 media/패스에 있으면 자동 설정되고 있습니다(예:/usr/local/nagios/share/media).

Ping의 문장구조법

 

서식:

Ping_syntax=<command>

:

Ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$

이 옵션은WAPinterface (statuswml CGI를 사용합니다)에서의 ping의 문장구조법을 결정합니다. ping바이너리를 필요한 옵션과 함께 풀 패스로 지정해 주어야 합니다. 커멘드가 실행되기 전에 $HOSTADDRESS$매크로 부분에 호스트의 주소가 삽입됩니다.

 

CGI의 인증과 허가

정의

아래의 설명에서는 이하의 용어를 사용하기 때문에, 그 의미를 이해해 두어 주세요··.

  • 인증 유저 는, 유저명과 패스워드로 Web서버에 인증할 수 있는 유저로서, Web서버상의CGI액세스를 인정받은 유저입니다.
  • 인증 통지처는, 오브젝트 콘피그 파일내의 통지처 정의의 숏 네임과 매치 하는 곳 입니다.

 

설정 항목

 

Web서버 인증의 설정

Web서버 인증의 설정을 위한 처음의 과정은, 우선Web서버의 설정 파일의 'AllowOverride AuthConfig'가 Nagios CGI-BIN 디렉토리에 대해서 유효한가 확인하는 것입니다. 만약 유효하게 되지 않은 경우는 , 의Web서버 설정 파일을 아래와 같은 설정을 덧붙이지 않으면 되지 않을 것입니다. 그리고 , 이 설정 변경이 유효하게 되도록(듯이)Web서버를 재기동시키지 않으면 안 되는 것에 주의해 주세요. [조3] 

<Directory /usr/local/nagios/sbin>
AllowOverride AuthConfig
order allow,deny
allow from all
Options ExecCGI
</Directory>

만약 당신이Nagios 페이지 액세스에 대해서 인증을 필요로 하고 싶은 것이면 ,Web서버의 설정 파일에 대해서 이하와 같이 덧붙이면 됩니다.

<Directory /usr/local/nagios/share>
AllowOverride AuthConfig
order allow,deny
allow from all
</Directory>

2 단계는 ,.htaccess로 불리는 파일을 루트CGI디렉토리(옵션으로HTML디렉토리)에 작성해 주는 것입니다(보통 /usr/local/nagios/sbin 디렉토리와 /usr/local/nagios/share 디렉토리가 각각 필요합니다). 파일은 아래와 같은 것이 필요하게 될 것입니다.

AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user

 

인증 유저의 설정

CGI 액세스에 대한 인증을 필요로 하는Web서버를 설정을 하였다면 다음은, 그CGI에 액세스 가능한 유저를 설정할 필요가 있습니다. 이것은 Apache 그리고 제공되는 커멘드 htpasswd 를 사용하는 것으로 설정 가능합니다.

다음의 커멘드를 이용하여 ,htpasswd.users라는 새로운 파일을/usr/local/nagios/etc디렉토리에 작성합니다. 그리고 nagiosadmin에 대한 유저명/패스워드의 엔트리도 작성합니다. htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

CGI에 액세스 하는 것을 허가하는 유저에 대해서 어카운트를 실행할 때까지, 유저를 계속 추가해 줍니다. 다음의 커멘드를 사용하여, 추가하고 싶은 실제의 유저명 대신에 <username>을 이용하여 유저를 추가해 주면 됩니다. 초기 파일을 이미 작성하다면, -c옵션은 사용하지 않습니다.

htpasswd /usr/local/nagios/etc/htpasswd.users <username>

Web브라우저를 열어 보면, 유저명과 패스워드를 물을 것입니다.

CGI의 인증/허가 기능을 가능하게 함

다음에 단계는 어떠한 정보, 또는 커멘드를 유저에게 허가할까 결정해CGI의 인증 및 허가 기능을 설정하는 것입니다. 이것은 ,CGI설정 파일내의use_authentication값을 아래와 같이 설정하면 됩니다.

use_authentication=1

이것으로CGI사용에 있어서의 기본적 인증/허가 기능의 셋업은 완료됩니다.

CGI정보의 디폴트 퍼미션

인증·허가 기능이 유효한 때, CGI는 유저에게 아래와 같은 디폴트 권한을 주고 있습니다.

CGI데이터

인증 컨택트
Authenticated Contacts

다른 인증 유저
Other Authenticated Users

호스트 스테이터스 정보

아니오

호스트 설정 정보

아니오

호스트 이력

아니오

호스트 통지

아니오

호스트 커멘드

아니오

서비스 스테이터스 정보

아니오

서비스 설정 정보

아니오

서비스 이력

아니오

서비스 통지

아니오

서비스 커멘드s

아니오

모든 설정 정보

아니오

 

아니오

 

 

시스템/프로세스 정보

아니오

아니오

시스템/프로세스 커멘드

아니오

아니오

  • 서비스 스테이터스 정보를 표시하기 위한 인증
  • 서비스 설정 정보를 표시하기 위한 인증
  • 서비스 이력과 통지를 표시하기 위한 인증
  • 서비스 커멘드를 실행하기 위한 인증

인증 통지처는 통지처로서 설정되어 있는 각각의 서비스에 대하여 다음의 권한을 가지고 있습니다

  • 호스트 정보를 표시하기 위한 권한
  • 호스트 설정 정보를 표시하기 위한 권한
  • 호스트에 대해서의 이력과 경고 통지를 표시하기 위한 권한
  • 호스트 커멘드를 실행하기 위한 권한
  • 호스트상의 모든 서비스에 대해서 스테이터스 정보를 표시하기 위한 권한
  • 호스트상의 모든 서비스에 대해서 설정 정보를 표시하기 위한 권한
  • 호스트상의 모든 서비스에 대해서 이력과 경고 통지 정보를 표시하기 위한 권한
  • 호스트상의 모든 서비스에 대해서 커멘드를 실행하기 위한 권한

 권한자 이외의 사람이 열람/실행할 수 있는 이하의 사항에 대해서는 주의해야 합니다

  • showlog CGI를 통한 live로그의 표시
  • extended information CGI를 통한 Nagios프로세스 정보의 표시
  • command CGI를 통한 Nagios프로세스 커멘드의 실행
  • configuration CGI을 통한 호스트 그룹, 통지처, 통지처 그룹, 시간대, 커멘드 정의의 표시

웹서버상에서 다음의 정보를 액세스 하고 싶다면 추가의 권리를 할당하여야 합니다

CGI정보에 대한 추가 허가의 제공

추가 인증은, CGI설정 파일중 다음의 지시문을 덧붙이는 것으로도, 유저에게 권한을 허가할 수 있습니다.

  • authorized_for_system_information
  • authorized_for_system_commands
  • authorized_for_configuration_information
  • authorized_for_all_hosts
  • authorized_for_all_host_commands
  • authorized_for_all_services
  • authorized_for_all_service_commands

시큐어 Web서버상의 인증

만약 당신의Web서버가 시큐어 도메인(예를 들면 파이어 월등)안에 있거나, SSL통신을 사용하고 있다면 CGI액세스 하기 위해서 사용되는 디폴트 유저명을 정의할 필요가 있습니다. 이것은CGI설정 파일에, 디폴트 유저명(default_user_name)옵션을 정의하는 것으로 정할 수 있습니다.

중요: 만약 시큐어 Web서버를 기동하고 있지 않고, CGI에 액세스 하는 모든 사람이 올바른 방법으로 인증된다고 확신이 서지 않는다면, 디폴트 유저명을 정의하지 않는 것이 좋습니다.

[출처] Nagios설치문서|작성자 옹이

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함