명령 행에서 Nagios Check를 수동으로 실행하려면 어떻게해야합니까?


24

nagios에서 새 서비스를 정의하고 테스트 할 때 nagios를 다시 시작한 다음 서비스를 클릭하고 가능한 한 빨리 확인 일정을 조정 한 다음 확인이 이루어질 때까지 기다렸습니다.

더 효율적인 방법이 있습니까? 특정 검사를 실행하고 출력을 얻으려면 명령 줄을 사용하고 싶습니다.

답변:


31

때로는 플러그인이하는 일을 정확히 파악하는 것이 까다로운 경우가 있습니다. 이것을 알아 내기 위해 이와 같은 구성으로 nagios를 디버그 모드로 설정했습니다. debug_level=2048 디버그 모드의 nagios를 사용하면 간단히 debug_log파일을 꼬리에 붙입니다 debug_file=/var/log/nagios3/nagios.debug. 점검을 강행하면 명령이 어떻게 실행되고 있는지 정확하게 볼 수 있습니다. 나는이 설정을 정상적으로 유지하지 않을 것입니다. 매우 상세하고 로그 파일을 빠른 속도로 채 웁니다.


대단해 이것은 내가 의미하는 바의 선을 따라 더 있습니다. 내가 이미 실행중인 명령을 파악하기 위해 commands.cfg 파일을 살펴 봤지만 어떤 플래그가 설정되었는지 알고 싶었습니다. 감사! :)
cwd

2
또한 새로운 사용자에게도 사용 tail -f하면 파일 업데이트를 실시간으로 계속 볼 수 있고 control+c취소 할 수 있습니다.
cwd

2
debug_levels는 2 진입니다. 2048은 매크로의 메시지 만 켭니다. debug_level = 4095로 설정하려는 모든 것을 켜십시오. (1 + 2 + ... + 2048)
jwg

18

꽤 간단합니다. plugins 디렉토리에 cd (또는 그렇지 않음) (이 디렉토리 위치는 설치 방법에 따라 다르지만 / usr / local / nagios 또는 / usr / lib / nagios를 확인하십시오).

실행할 플러그인을 찾으십시오 (확실하지 않은 경우 Linux 상자의 플러그인 디렉토리에 표시되는 플러그인을 여기에있는 플러그인과 비교하십시오 : http://exchange.nagios.org/directory/Plugins 또는 실행 해보 십시오. 플러그인에 대한 도움말 정보를 보려면 "./plugin-name -h"를 참조하십시오.

명령 행에서 이러한 "플러그인"을 사용하는 방법은 다른 Linux 스크립트와 동일합니다. 확인하려는 적절한 플래그를 사용하여 "./plugin-name"을 실행하십시오.


1
+1 ... 그리고 그것이 너무 많은 문제로 보인다면, 항상 Nagios 설정 파일을보고 어떤 명령과 파라미터를 실행해야하는지 확인할 수 있습니다. 플러그인 디렉토리의 위치조차도 있습니다.
John Gardeniers

5
그리고 항상 nagiosuser 와 함께하는 것을 명심하십시오 su - nagios -s /bin/bash.
quanta

좋은. 그리고 -부하 해당 사용자에 대한 환경 변수?
cwd

예, 다른 리눅스 플래그와 마찬가지로 "-"플래그를 사용하면 플래그가로드됩니다. (리눅스 CLI에서 df -h를 실행중인 경우 "h"플래그를 사용하고 있습니다. df 명령의 경우 h는 "human readable"을 나타냅니다. 따라서 check_http check를 실행하려면 CLI에서 ./check_http -I를 실행합니다. 여기서 I 플래그는 IP 주소 ( nagiosplugins.org/man/check_http )를 나타냅니다. nagiosplugins.org/man 및 이전에 링크 한 플러그인 디렉토리가 도움이 될 수 있습니다.
David W

도움말 옵션은 --help 여야합니다. nagios-plugins.org/doc/guidelines.html
dmourati

5

@Zoredache보다 약간 더 무차별 한 방향을 취하고 nagios 서버에 로그인하여 "true; ps awwlx | grep NAGIOS_CHECK_NAME; done"을 수행하면서 NAGIOS_CHECK_NAME이 어느 위치에 있는지 서비스를 다시 확인해야합니다. 내가 찾고있는 서버의 확인 이름 또는 IP의 일부. 일반적으로 몇 초 안에 전체 검사 명령이 나타나고 while 루프를 종료하고 검사 명령을 실행합니다.

예, 그것은 완전히 무차별 적이지만 <shrug>은 저에게 효과적입니다.


while 루프 대신 "watch"를 시도하십시오. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati

3

'캡처'플러그인을 사용해 볼 수도 있습니다. 본질적으로 2048의 디버그 레벨과 동일한 기능을 수행하지만 플러그인별로 사용할 수 있습니다. 이로 인해 발굴 할 출력이 줄어 듭니다.

http://www.waggy.at/nagios/capture_plugin.htm


1
나는 이것이 잘못되었다는 것을 확신하지 못했지만 (noob)하지만 debug_level 트릭이 나를 위해 일했다 :)
sbditto85

2

플러그인 디렉토리로 이동하십시오-내 예제에서는

/usr/lib64/nagios/plugins/

플러그인 이름을 입력하십시오-내 예에서는

check_tcp

이제 전체 명령을 실행하십시오-(플러그인 이름) -H (호스트 이름) -p (포트 번호)

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

산출

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

그러나이 예에서 포트 번호는 선택 사항입니다

또 다른 예 -

구성 파일에서 아래 (myserver.cfg)와 같고 명령 줄에서 check_cpu를 실행하려고합니다

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

GUI 녹색 또는 빨간색없이 즉시 확인

이것을 시도하십시오-(플러그인 전체 경로)-H (서버 이름) -c (체크 이름)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

출력-

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

그게 다야

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.