CentOS 6에서 Python을 사용하여 Nagios 플러그인을 만드는 방법

CentOS 6에서 Python을 사용하여 Nagios 플러그인을 만드는 방법

2022-06-01 last update

6 minutes reading Monitoring CentOS Python

상태: 비활성화


이 문서에서는 더 이상 지원되지 않는 CentOS 버전에 대해 설명합니다.현재 실행 중인 서버에서 CentOS 6를 실행하는 경우 지원되는 CentOS 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.
원인:
CentOS 6 reached end of life (EOL) on November 30th, 2020, 보안 패치나 업데이트를 더 이상 받지 않습니다.따라서 이 안내서는 더 이상 유지되지 않습니다.
다음을 참조하십시오.
이 설명서는 참조로 계속 사용할 수 있지만 다른 CentOS 버전에서는 사용할 수 없습니다.사용 가능한 경우 사용 중인 CentOS 버전을 위한 설명서를 사용하는 것이 좋습니다.

소개


Python은 유행하는 프로그래밍 언어로 스크립트를 신속하게 만들고 다른 라이브러리를 설치할 수 있습니다.
우리가 전에 소개한 적이 있다how to install Nagios monitoring server on CentOS 6 x64.
이번에는 이 아이디어를 확장하고 Python을 사용하여 Nagios 플러그인을 만들 것입니다.
이러한 플러그인은 클라이언트 VPS에서 실행되며 NRPE를 통해 실행됩니다.

1단계 - 클라이언트 VPS에 RPMForge 저장소 및 NRPE 설치


rpm-ivhhttp://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum-y 설치python nagios nrpe
사용자가 nrpe와chkconfig nrpe를 추가합니다.

2단계 - Python 스크립트 만들기


플러그인을 다른 Nagios 플러그인과 같은 디렉터리에 유지하는 것이 좋습니다. (예:/usr/lib64/Nagios/plugins/)
예시에서 셸에서 "df"를 호출하여 현재 디스크의 사용 상황을 검사하는 스크립트를 만들 것입니다. 사용률이 85% 이상이면 경고를 발생합니다.
#!/usr/bin/python
운영 체제 가져오기, 시스템
used\u space=운영 체제.popen(“df-h/| grep-v Filesystem | awk{print$5}’”).readline().스트라이프 ()
\u 공백 <"85%"를 사용하는 경우:
"확인 -%s 사용된 디스크 공간"을 인쇄합니다.%사용된\u 공간
시스템종료 (0)
elif used\u space==“85%”:
경고 -%s 사용된 디스크 공간을 인쇄합니다.%사용된\u 공간
시스템수출 (1)
elif used\u space>“85%”:
사용된 디스크 공간의 키%s을(를) 인쇄합니다.%사용된\u 공간
시스템수출 (2)
기타:
"UKNOWN-%s 사용된 디스크 공간"을 인쇄합니다.%사용된\u 공간
시스템수출 (3)

우리는 이 스크립트를/usr/lib64/nagios/plugins/usedspace에 저장할 것입니다.py 및 실행 가능:
chmod+x/usr/lib64/nagios/plugins/usedspace.회사 명
전체 Nagios NRPE 플러그인은 종료 코드를 사용하여 경고를 트리거하는 것으로 귀결됩니다.
스크립트에 논리적 수준을 도입합니다. 경보를 울리려면 (정상, 경고, 심각도, 알 수 없음) 종료 코드를 지정할 수 있습니다.
다음 Nagios 종료 코드를 참조하십시오.

Nagios 수출 코드


코드 종료
지위
0
좋다
일.
경고
이.
관건적
삼.
알 수 없다

3단계 - 스크립트를 클라이언트 호스트의 NRPE 구성에 추가


원본/etc/nagios/nrpe를 삭제합니다.cfg 및 다음 행을 추가합니다.
log\u facility=데몬
pid\u 파일 =/var/run/nrpe/nrpe.pid
server\u 포트 = 5666
nrpe\U 사용자=nrpe
nrpe\U 그룹=nrpe
허용되는\u 호스트 = 198.211.117.251
Don\u dury\u nrpe=1
디버그 = 0
command\u 시간 초과 = 60
connection\u timeout=300
include\u dir=/etc/nrpe.d/
명령 [usedspace\upython]=/usr/lib64/nagios/plugins/usedspace.회사 명
이 중 198.211.117.251은 이전 글의 모니터링 서버이다.이것들을 자신의 값으로 변경합니다.
Nagios NRPE 서비스 재부팅 확인:
서비스 nrpe 재시작

단계 4 - Nagios 모니터링 서버의 Nagios 검사에 새 명령 추가


/etc/nagios/objects/commands에서 새 명령을 정의합니다.cfg
define 명령
command\u name usedspace\u python
command\u line$USER1$/check\u nrpe-H$HOSTADDRESS$-c usedspace\u python
}
보시다시피 NRPE를 사용하여 포트 5666에 대한 TCP 연결을 구축하고 "usedspace\upython"명령을 실행합니다. 이것은 우리가/etc/nagios/NRPE에서 정의한 것입니다.원격 호스트의 cfg.
이 체크를 클라이언트 VPS의 Nagios 구성 파일에 추가합니다.
예시에서 우리는 CentOSDroplet이라는 서버를 감시하고/etc/nagios/servers/CentOSDroplet을 편집할 것입니다.cfg
서비스 정의
공통 서비스 사용
host\u name CentOSDroplet
서비스\u description Python의 사용자 정의 디스크 검사기
check\u 명령 usedspace\u python
}

Nagios 재부팅:
서비스nagios 리셋
새 체크가 유효한지 확인합니다.

너희들 다 망했어!