nagios 플러그인 설치. 모니터링 서버의 Nagios 설치 및 구성

널리 사용되는 모니터링 솔루션인 nagios를 사용하면 확장 가능한 시스템을 구현할 수 있습니다. 분산 시스템을 위한 구성은 긴 프로세스입니다. 이 기사의 프레임워크에서는 원격 호스트에서 하나의 서비스에 대한 모니터링을 구현할 것입니다.

구성 작업은 운영 체제가 설치된 서버에서 수행됩니다. 센트OS 7, nrpe 클라이언트는 CentOS 7도 사용합니다.

클라이언트에 플러그인 설치 nrpe설정에서 서버에 대한 연결을 허용합니다.

모니터링 서버의 Nagios 설치 및 구성

nagios 서버로 작동할 시스템에서 구성을 시작합니다. 필요한 패키지를 설치합니다.

yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip

nagios는 통해 작동합니다 아파치, 따라서 httpd는 설치된 패키지 목록에 있습니다.

임시 파일이 있는 루트 디렉토리로 이동하고 wget을 사용하여 최신 릴리스의 nagios 및 nagios-plugins를 다운로드합니다.

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.2.8.tar.gz

wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz

시스템 사용자 및 그룹 만들기

nagcmd 그룹에 nagios 사용자 추가

usermod -a -G nagcmd nagios

usermod -a -G nagios, nagcmd 아파치

CentOS를 사용하기 때문에 httpd는 www-data 사용자가 아니라 apache 사용자로 실행됩니다.

향후 권한 충돌을 방지하려면 nagios, nagcmd 그룹에 apache 사용자를 추가하십시오.

다운로드한 아카이브의 내용 추출

tar -zxvf nagios-4.2.0.tar.gz

nagios 파일이 있는 디렉토리로 이동

앞으로 소스에서 nagios와 nrpe를 모두 설치할 것입니다.

./configure --with-command-group=nagcmd

조립 중 nagcmd 그룹을 옵션으로 지정

컴파일

설치 명령 모드 만들기

라이브러리 디렉토리를 서버의 /usr/local에 재귀적으로 복사합니다.

cp -R contrib/eventhandlers /usr/local/nagios/libexec

또한 nagios에서 디렉토리 및 파일 소유자의 소유자와 그룹을 재귀적으로 변경합니다.

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

기본 구성 파일의 경로를 지정하여 nagios 버전을 실행하고 확인합니다.

시작에 nagios 추가 - 시스템이 시작할 때마다 실행합니다.

systemctl은 nagios를 활성화합니다.

서비스 시작

우리는 웹 서버와 유사한 작업을 수행합니다

nagios 사용자 비밀번호 설정

도움으로 htpasswd nagiosadmin 사용자의 액세스를 제한하는 파일 생성

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

이제 기본 패키지 설치가 완료되었습니다. 인터넷 브라우저를 열고 검색 상자에 서버의 IP 주소를 입력한 다음 /nagios를 입력하고 웹 인터페이스로 들어갑니다.

원격 호스트에서 서비스 모니터링 설정

nagios 클라이언트 역할을 할 다른 서버 머신으로 이동합니다.
/tmp/ 디렉토리로 이동

nagios-plugins-2.1.2 압축 풀기

tar -zxvf nagios-플러그인-2.1.2

CD nagios-플러그인-2.1.2

nagios 사용자 및 그룹으로 컴파일

./configure --with-command-user=nagios --with-nagios-group=nagios

이제 설치 nrpe 플러그인

먼저 openssl-devel 저장소에서 추가로 설치합니다. 이미 설치된 경우 단계를 건너뜁니다(패키지가 nagios 서버에도 있어야 함).

yum -y openssl-devel 설치

저장소에서 설치할 수도 있습니다.

yum install nagios-plugins-all nagios-plugins-nrpe

새로운 버전이 필요하면
패키지 다운로드

wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

tar.gz 압축 풀기

tar -zxvf nrpe-2.15.tar.gz

이전과 같은 방식으로 컴파일

nagios 서버로 이동

키 뒤에 지정하는 서버에서 연결을 시도합니다. -시간클라이언트 IP 주소

연결이 거부되고 플러그인 구성으로 이동합니다.

클라이언트에서 nrpe를 시작하고 시작에 서비스를 추가합니다.

기본 구성 파일을 열고 서버의 IP 주소를 allowed_hosts 섹션의 값으로 지정합니다.

mcedit /etc/nrpe/nrpe.cfg

허용된 호스트 = 10.11.27.11

서버로 돌아가기

/usr/local/nagios/libexec/check_nrpe -H 10.11.27.44

이제 우리의 시도는 성공했고 우리는 nagios 버전을 봅니다.

기본 구성을 다시 엽니다.

다음 행에서 주석 표시를 제거하십시오. cfg_dir(cfg_dir=/usr/local/nagios/etc/servers)

디렉토리를 생성하고 변경

mkdir /usr/local/nagios/etc/servers

cd /usr/local/nagios/etc/servers

모니터링할 호스트를 결정합니다. 호스트는 모든 이름을 가질 수 있으며 nagios는 확장자가 cfg인 모든 파일을 볼 수 있습니다.

우리는 호스트 매개변수를 규정하고 지시문의 의미는 이름에서 분명합니다. 모니터링 미세 조정이 필요한 경우 이러한 지시문이 훨씬 더 많을 수 있습니다. 여기서는 기본 작업 구성을 고려합니다.

호스트 정의(
리눅스 서버를 사용
host_name cenos11
별칭 그냥 nagios 클라이언트
주소 10.11.27.44
max_check_attempts 5
check_period 24×7
알림_간격 30
알림_기간 24×7

}

모니터링 중인 서비스에 대한 구성을 추가합니다. 이제 우리는 호스트에 대한 핑의 존재를 확인하는 것으로 제한합니다.

{
일반 서비스 사용
host_name cenos11
서비스 설명 PING
check_command check_ping!100.0.20%!500.0.50%
}

check_command 명령이 사용되었으며 이에 관한 매뉴얼에서 발췌한 내용은 다음과 같습니다.

check_ping -H -w ,% -c ,%
[-p 패킷] [-t 시간 ​​초과] [-4|-6]

따라서 패킷의 20%가 손실되면 경고를 받게 되며 50%의 손실은 ALERT입니다.

다시 실행하고 오류가 없는지 확인하십시오.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

서비스 다시 시작

systemctl 나기오스 재시작

웹 인터페이스로 이동하여 모니터링하는 원격 호스트의 서비스가 거기에 표시되는지 확인합니다(스크린샷에 표시된 구성에서 여러 다른 리소스 모니터링이 구성됨). 이제 기본 기능을 갖춘 모니터링 서버의 구성이 완료되었습니다.

nagios에서 ALERT 설정

기본 구성 파일을 열고 필요한 경우 행의 주석 처리를 제거합니다. cfg_file=/usr/local/nagios/etc/objects/contacts.cfg:

mcedit /usr/local/nagios/etc/nagios.cfg

파일에서 알림을 보낼 연락처 이메일 주소를 정의합니다.

mcedit /usr/local/nagios/etc/objects/contacts.cfg

연락처 정의(
contact_name nagiosadmin
일반 연락처 사용
별칭 Nagios 관리자
이메일 [이메일 보호됨]

}

서비스 다시 시작

cyctemctl 나기오스 재시작

예를 들어 SMS 메시지를 다음과 함께 보낼 수 있는 추가 소프트웨어를 사용할 수도 있습니다. 알리다필수 서비스에 관한. 작동하는 Nagios 서버가 수신되었으며 이에 대한 설치 및 구성이 완료되었습니다.

서버의 경우 Nagios 서버와 클라이언트를 동일한 시스템에 설치할 수 있지만 .

이 가이드는 널리 사용되는 오픈 소스 모니터링 시스템인 Nagios 4를 Ubuntu 14.04 서버에 설치하고 호스트 리소스 모니터링의 기본 구성을 수행하는 데 도움이 됩니다. 또한 이 가이드에서는 NRPE(Nagios Remote Plugin Executor)를 원격 호스트의 에이전트로 설정하여 리소스를 모니터링하는 방법을 보여줍니다.

Nagios 시스템을 사용하면 서버 리소스 및 기본 서비스의 작동을 모니터링할 수 있습니다. 일반적으로 모니터링 시스템은 모든 생산 환경에 필수적인 도구입니다.

참고: CentOS에 대한 유사한 가이드는 에서 찾을 수 있습니다.

요구 사항

  • 사전 구성된 Ubuntu Server 14.04.
  • 수퍼유저 권한(자세한 내용 -).
  • 사전 설치된 LAMP 스택(설치 지침을 찾을 수 있음).
  • 사설망; 서버가 사설 네트워킹을 지원하지 않는 경우 내부 IP 주소에 대한 참조를 외부 IP 주소로 바꾸면 됩니다.

Nagios 4 설치

Nagios 사용자 및 그룹 생성

Nagios 프로세스를 실행할 사용자 및 그룹을 만듭니다. 이 가이드에서는 사용자를 nagios라고 하고 그룹을 nagcmd라고 합니다. 생성하고 그룹에 사용자를 추가합니다.

sudo 사용자 nagios 추가
sudo 그룹 nagcmd 추가
sudo usermod -a -G nagcmd nagios

종속성 설치

그런 다음 소스에서 Nagios Core를 빌드하려면 몇 가지 개발 라이브러리를 설치하고 Nagios 인터페이스를 사용자 지정하려면 apache2-utils를 설치해야 합니다.

시스템 패키지 목록 업데이트:

sudo apt-get 업데이트

패키지 설치:

sudo apt-get 설치 빌드 필수 libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils 압축 해제

나기오스 코어 설치

Nagios Core의 안정적인 최신 릴리스를 다운로드하십시오. 사이트의 다운로드 페이지를 열고 건너뛰기를 클릭하여 안정적인 릴리스에 대한 링크를 다운로드하고 다운로드합니다.

참고: 이 가이드는 Nagios 버전 4.1.1을 사용합니다.

패키지를 홈 디렉토리에 다운로드합니다.

CD ~
컬 -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

아카이브 압축을 풉니다.

tar xvf nagios-*.tar.gz

결과 디렉토리를 엽니다.

Nagios 구축을 시작하기 전에 시스템을 구성해야 합니다. (apt-get으로 설치할 수 있는) 접미사를 지원하도록 Nagios를 구성하려면 --with-mail=/usr/sbin/sendmail을 다음 명령에 추가하십시오.

./configure --with-nagios-group=nagios --with-command-group=nagcmd

나기오스 컴파일:

그런 다음 Nagios, 초기화 스크립트 및 샘플 구성 파일을 설치합니다.

sudo make 설치
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf

Nagios 웹 인터페이스를 통해 외부 명령을 실행할 수 있으려면 www-data 사용자를 nagcmd 그룹에 추가해야 합니다.

sudo usermod -G nagcmd www-data

Nagios 플러그인 설치

Nagios 플러그인의 최신 릴리스는 이 링크에서 찾을 수 있습니다. 최신 안정 릴리스에 대한 링크를 복사하고 패키지를 홈 디렉토리에 다운로드하십시오.

참고: 이 가이드는 Nagios 플러그인 버전 2.1.1을 사용합니다.

CD ~
컬 -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Nagios 플러그인 아카이브의 압축을 풉니다.

tar xvf nagios-plugins-*.tar.gz

결과 디렉토리를 엽니다.

cd nagios-플러그인-*

패키지를 빌드하기 전에 Nagios 플러그인 구성을 실행하십시오.

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

Nagios 플러그인 컴파일:

결과 패키지를 설치합니다.

sudo make 설치

NRPE 설치

사이트의 다운로드 페이지를 열고 NRPE의 최신 안정 릴리스를 찾아 홈 디렉토리에 업로드하십시오.

참고: 이 가이드는 NRPE 2.15를 사용합니다.

CD ~
컬 -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

NRPE 아카이브의 압축을 풉니다.

tar xvf nrpe-*.tar.gz

결과 디렉토리로 변경하십시오.

NRPE를 구성하려면 다음 명령을 실행합니다.

./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr /lib/x86_64-linux-gnu

그런 다음 NRPE와 xinetd 스크립트를 빌드하고 설치합니다.

모두 만들다
sudo make 설치
sudo make install-xinetd
sudo make install-daemon-config

텍스트 편집기에서 xinetd 시작 스크립트를 엽니다.

sudo vi /etc/xinetd.d/nrpe

only_from 라인에 Nagios 서버의 내부 IP 주소를 추가합니다.

only_from = 127.0.0.1 10.132.224.168

참고: 정확한 IP 주소를 입력하십시오.

파일을 저장하고 닫습니다. 이제 Nagios 서버만 NRPE와 상호 작용할 수 있습니다.

xinetd를 다시 시작하십시오.

sudo 서비스 xinetd 재시작

Nagios 4 설치가 성공적으로 완료되었습니다. 이제 시스템을 설정해야 합니다.

Nagios 4 설정

텍스트 편집기에서 기본 Nagios 구성 파일을 엽니다.

sudo vi /usr/local/nagios/etc/nagios.cfg

다음 줄을 찾아 주석 처리를 제거합니다.

#cfg_dir=/usr/local/nagios/etc/servers

파일을 저장하고 닫습니다.

모니터링되는 서버의 구성 파일을 저장할 디렉터리를 만듭니다.

sudo mkdir /usr/local/nagios/etc/servers

텍스트 편집기에서 연락처 구성 파일을 엽니다.

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

이메일 지시문을 찾아 이메일 주소로 채우십시오.

이메일 [이메일 보호됨] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

파일을 저장하고 닫습니다.

check_nrpe 명령 구성

Nagios 설정에 새 명령을 추가합니다.

sudo vi /usr/local/nagios/etc/objects/commands.cfg

파일 끝에 다음 코드를 추가합니다.

명령을 정의(
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

파일을 저장하고 닫습니다. 이제 Nagios 서버를 정의할 때 check_nrpe 명령을 사용할 수 있습니다.

아파치 설정

재작성 및 cgi 모듈을 활성화합니다.

sudo a2enmod 다시 쓰기
sudo a2enmod cgi

htpasswd를 사용하여 nagiosadmin이라는 사용자를 생성하여 Nagios 웹 인터페이스에 액세스합니다.

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

암호를 입력. 이 자격 증명은 Nagios 웹 인터페이스로 작업할 때 유용하므로 기억해 두십시오.

참고: 이 사용자 이름이 nagiosadmin이 아니면 /usr/local/nagios/etc/cgi.cfg 파일을 편집하고 nagiosadmin에 대한 모든 참조에서 다른 사용자 이름을 지정해야 합니다.

sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

이제 Nagios 시스템을 실행할 준비가 되었습니다. Apache를 다시 시작하는 것을 잊지 마십시오.

sudo 서비스 나기오스 시작
sudo 서비스 apache2 재시작

Nagios 자동 시작을 구성하려면 다음을 입력하십시오.

sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

IP 주소에 의한 접근 제한(선택사항)

특정 IP 주소에 대한 액세스만 허용하려면 Apache 구성을 편집합니다.

sudo vi /etc/apache2/sites-available/nagios.conf

다음 줄을 찾아 주석 처리합니다.

주문 허용, 거부
모두에서 허용

그런 다음 다음 줄의 주석 처리를 제거하고 서버에 액세스할 수 있는 IP 주소 또는 IP 주소 범위(공백으로 구분)를 Allow from 지시문에 추가합니다.

# 주문 거부, 허용
# 모두 거부
# 127.0.0.1부터 허용

참고: 이러한 행은 구성 파일에서 두 번 발생하므로 이 지침을 두 번 반복해야 합니다.

파일을 저장하고 닫습니다.

Nagios를 시작하고 Apache를 다시 시작하여 설정을 업데이트합니다.

sudo 서비스 나기오스 재시작
sudo 서비스 apache2 재시작

나기오스 웹 인터페이스

브라우저를 열고 다음 링크를 사용하여 Nagios로 이동합니다.

http://nagios_server_public_ip/nagios

Apache 웹 서버는 htpasswd를 사용하므로 nagiosadmin 사용자의 자격 증명을 입력해야 합니다.

인증이 완료되면 Nagios 홈페이지에 액세스할 수 있습니다. Nagios에서 모니터링하는 서버 목록을 보려면 왼쪽 제어판에서 호스트를 엽니다.

보시다시피 Nagios는 현재 localhost만 모니터링합니다.

NRPE를 사용한 호스트 모니터링

이 섹션에서는 Nagios 모니터링 설정에 새 서버를 추가하는 방법을 보여줍니다.

참고: 여러 서버를 추가하려면 각각에 대해 이 지침을 반복하십시오.

관심 목록에 추가할 서버에 로그인하고 apt-get을 업데이트합니다.

sudo apt-get 업데이트

그런 다음 Nagios 플러그인과 NRPE를 설치합니다.

sudo apt-get 설치 nagios-plugins nagios-nrpe-server

호스트 설정

텍스트 편집기에서 NRPE 구성 파일을 엽니다.

sudo vi /etc/nagios/nrpe.cfg

allowed_hosts 지시문을 찾아 끝에 Nagios 서버의 내부 IP 주소(쉼표로 구분)를 추가합니다.

허용된 호스트 = 127.0.0.1,10.132.224.168

파일을 저장하고 닫습니다. 이제 NRPE는 내부 IP 주소를 통해 Nagios 서버의 요청을 수락합니다.

NRPE 명령 사용자 정의

루트 파일 시스템의 이름을 지정하십시오(모니터될 구성 요소 중 하나임):

NRPE 구성에서 파일 시스템 이름을 사용하여 디스크 사용량(/dev/vda)을 모니터링합니다. 편집기에서 nrpe.cfg를 엽니다.

sudo vi /etc/nagios/nrpe.cfg

NRPE 구성 파일은 매우 길고 주석 처리된 행이 많이 포함되어 있습니다. 다음 줄만 필요합니다.

  • server_address: 호스트의 내부 IP 주소를 지정합니다.
  • allowed_hosts: Nagios 서버의 내부 IP 주소를 지정합니다.
  • 명령: /dev/hda1을 루트 파일 시스템의 이름으로 바꿉니다.

결과적으로 이러한 행은 다음과 같아야 합니다.

server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
명령=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda

파일에는 Nagios가 사용할 수 있는 몇 가지 다른 명령줄이 포함되어 있습니다. NRPE는 포트 5666(server_port=5666 행)에서 수신 대기 중입니다. 이 포트가 방화벽에 의해 차단된 경우 반드시 열어야 합니다.

파일을 저장하고 닫습니다.

NRPE를 다시 시작하여 설정 업데이트:

sudo 서비스 nagios-nrpe-server 재시작

그런 다음 Nagios 서버 설정에 호스트를 추가해야 합니다.

Nagios 설정에 호스트 추가

Nagios 서버로 이동하여 /usr/local/nagios/etc/servers/에 호스트에 대한 새 구성 파일을 만듭니다.

sudo vi /usr/local/nagios/etc/servers/yourhost.cfg

참고: yourhost를 호스트 이름으로 바꾸십시오.

다음 코드를 파일에 추가하여 host_name 값을 원격 호스트의 이름(이 예에서는 web-1)으로, 별칭 값을 호스트에 대한 설명으로, address를 원격 호스트의 내부 IP 주소로 바꿉니다.

호스트 정의(
리눅스 서버를 사용
host_name 호스트
alias 내 첫 Apache 서버
주소 10.132.234.52
max_check_attempts 5
check_period 24x7
알림_간격 30
알림_기간 24x7
}

이제 Nagios가 이 서버를 모니터링합니다. 그러나 시스템은 원격 호스트의 상태(활성화 또는 비활성화)만 추적합니다. 충분하면 파일을 저장하고 닫습니다. 원격 호스트에서 개별 서비스를 모니터링하려면 파일을 닫지 마십시오.

다음은 서비스 추적을 구성하는 예입니다. 추적하려는 서비스를 선택하고 제안된 설정 블록을 파일에 추가하기만 하면 됩니다. check_command의 값에 따라 모니터링 대상이 결정된다는 점에 유의하십시오.

서비스 정의(
일반 서비스 사용
host_name 호스트
서비스 설명 PING
check_command check_ping!100.0.20%!500.0.60%
}

SSH(notifications_enabled가 0으로 설정되면 알림이 비활성화됨):

서비스 정의(
일반 서비스 사용
host_name 호스트
서비스 설명 SSH
check_command check_ssh
알림_활성화 0
}

use generic-service 지시문은 단순히 기본 일반 서비스 템플릿에서 상속합니다.

파일을 저장하고 닫습니다. 설정을 업데이트하려면 Nagios를 다시 시작하십시오.

sudo 서비스 나기오스 리로드

구성이 완료되면 웹 인터페이스를 열고 서비스 페이지를 확인하십시오. 이제 방금 추가한 원격 호스트 목록이 포함되어야 합니다.

결론

호스트 및 일부 서비스에 대한 모니터링을 설정한 후 서버 작동에 중요한 서비스를 결정하고 목록에 추가합니다. 알림을 설정할 수도 있습니다. 예를 들어 Nagios는 디스크 사용량이 임계점에 도달했거나 웹 사이트가 다운되었다고 보고할 수 있습니다. 이를 통해 이러한 문제를 제 시간에 제거할 수 있습니다.

태그: ,

Nagios는 가장 널리 사용되는 오픈 소스 Linux 및 Windows 서버 모니터링 도구 중 하나입니다. 이를 통해 웹 인터페이스를 통해 원격으로 다양한 애플리케이션 및 서비스의 실행을 모니터링할 수 있습니다. Nagios는 라우터 및 기타 네트워크 장치도 모니터링할 수 있습니다.

Nagios를 사용하면 CPU 부하, 메모리 사용량 등과 같은 기본 서버 매개변수를 모니터링할 수 있습니다. 이 모든 것은 액세스에 간단한 인증이 필요한 웹 인터페이스에서 사용할 수 있습니다. 이 기사에서는 Nagios Ubuntu의 설치 방법과 이 프로그램의 구성을 살펴보겠습니다.

Nagios Ubuntu 16.04를 설치하는 방법에는 여러 가지가 있습니다. PPA를 사용하거나 공식 웹 사이트에서 다운로드한 아카이브를 사용하여 설치할 수 있습니다. 현재 최신 버전은 4.3입니다. PPA에서는 4.2만 사용할 수 있으므로 아카이브를 사용한 수동 설치를 고려할 것입니다.

그러나 설치를 진행하기 전에 시스템을 업데이트하고 프로그램을 빌드하는 데 필요한 모든 구성 요소를 설치해야 합니다.

sudo apt install build-essential apache2 php7.0 openssl perl make php7.0-gd libgd2-xpm-dev libapache2-mod-php7.0 libperl-dev libssl-dev 데몬 wget apache2-utils unzip

그런 다음 Nagios가 실행될 그룹 및 사용자와 웹 인터페이스에서 실행되는 셸 명령을 생성해야 합니다.

sudo 사용자 nagios 추가
$ sudo 그룹 nagcmd 추가

nagios 사용자와 Apache가 실행되는 사용자를 nagcmd 그룹에 추가합니다.

sudo usermod -a -G nagcmd nagios
$ sudo usermod -a -G nagcmd www-data

다음으로 nagios 소스를 다운로드해야 합니다. 이것은 터미널 명령어로 할 수 있지만 최신 버전을 받고 싶기 때문에 공식 홈페이지에 접속해 다운로드 받는 것이 좋다.

먼저 항목을 클릭하십시오 "나지오 코어"을 누른 다음 아래로 스크롤하여 다운로드:

이 단계에서 자신에 대한 정보를 입력하거나 다음을 클릭하여 건너뛸 수 있습니다. "다운로드 건너뛰기":

버전을 선택해야 합니다(예: 4.3.2). 다운로드가 완료되면 다운로드 폴더로 이동하여 아카이브 압축을 풉니다.

cd ~/다운로드/
$ tar -zxvf /tmp/nagios-4.3.2.tar.gz

이제 우리는 nagios 컴파일로 넘어갈 수 있습니다. 이렇게 하려면 다음 명령을 실행해야 합니다.

./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/
$모두 만들기
$ sudo make install
$ sudo make install-init
$ sudo make install-config
$ sudo make install-commandmode
$ sudo make install-webconf

Ubuntu에서 Nagios 설정

프로그램의 모든 구성 파일은 설치 프로그램이 /usr/local/nagios/etc/에 저장합니다. 기본 설정에서는 Nagios를 실행할 수 있지만 몇 가지를 더 변경해야 합니다. contact.cfg 파일을 열고 알림을 보낼 이메일 주소를 변경합니다.

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

연락처 정의(
contact_name nagiosadmin ; 짧은 사용자 이름
일반 연락처 사용 ; 기본 템플릿
별칭 Nagios 관리자 ; 전체 사용자 이름
이메일 [이메일 보호됨]웹사이트 ; 귀하의 이메일
}

웹 인터페이스가 작동하려면 htpasswd를 사용하여 nagiosadmin 사용자의 비밀번호를 만들어야 합니다. 비밀번호가 없으면 인터페이스에 들어갈 수 없습니다.

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

마지막으로 올바른 작동을 위해서는 웹 서버에 대한 몇 가지 설정이 필요합니다. cgi 모듈을 활성화합니다.

sudo a2enmod cgi

웹 서버를 다시 시작합니다.

sudo 서비스 apache2 재시작

더 많은 nagios 기능을 사용하려면 플러그인 세트를 설치할 수 있습니다. 이렇게 하려면 먼저 다음을 다운로드하십시오.


이제 아카이브의 압축을 풀고 해당 폴더로 이동하십시오.

tar -zxvf /tmp/nagios-plugins-2.1.1.tar.gz
$ cd /tmp/nagios-plugins-2.1.1/

모듈을 컴파일하려면 다음을 실행하십시오.

./configure --with-nagios-user=nagios --with-nagios-group=nagios
$make
$ 설치

모듈은 Nagios 폴더에 설치됩니다. 이제 구성이 올바른지 확인하십시오.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

자동으로 시작하려면 systemd에 대한 단위 파일을 만듭니다.

sudo vi /etc/systemd/system/nagios.service


설명=나기오스
BindTo=네트워크.타겟


WantedBy=다중 사용자.대상


사용자=nagios
그룹=나기오스
유형=단순
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

나기오스 시작하기

거의 모든 것이 준비되었으며 서비스를 시작하고 사용을 시작해야 합니다. 서비스를 시작하려면 다음을 입력하십시오.

sudo systemctl stat nagios

nagios 웹 인터페이스를 열려면 브라우저에 nagios의 IP 주소와 URL을 입력하면 됩니다. 이 모든 것을 로컬 컴퓨터에 설치했다면 다음을 사용하십시오.

http://localhost/nagios

페이지를 연 직후 사용자 이름 nagiosadmin과 이전에 설정한 비밀번호를 입력해야 합니다. 그 후에 프로그램의 모든 기능을 사용할 수 있습니다.

결론

이 기사에서는 nagios 4를 구성하는 방법과 Ubuntu 운영 체제에 최신 버전을 완전히 설치하는 방법을 살펴보았습니다. 언뜻보기에는 모든 것이 복잡해 보이지만 프로세스는 매우 간단합니다. 이제 nagios ubuntu 16.04를 모니터링할 수 있습니다. 이 정보가 도움이 되었기를 바랍니다.

nagios를 구성하기 전에 필요한 종속성을 설치해야 합니다.

# apt install build-essential apache2 php libapache2-mod-php7.0 php-gd libgd-dev mailutils

그리고 nagios가 실행할 사용자와 그룹을 추가합니다.

# useradd nagios # groupadd nagcmd # usermod -a -G nagcmd nagios # usermod -a -G nagcmd www-data

빌드 디렉토리로 이동하여 nagios 및 플러그인용 소스 코드를 다운로드하십시오.

# cd /usr/src/ # wget https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.2.3/nagios-4.2.3.tar.gz # wget https:// nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz

다운로드한 아카이브 압축 풀기

# tar xzvf nagios-4.2.3.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

nagios 소스 코드가 있는 디렉토리로 이동하여

# cd nagios-4.2.3 # ./configure --prefix=/etc/nagios --with-command-group=nagcmd --with-httpd-conf=/etc/apache2/sites-available --with-mail= /usr/bin/mail

구축하자

# 모두 만들다

나기오스 설치

# 설치를 만든다

/etc/init.d에 init 스크립트를 설치하고 자동 시작을 활성화합니다.

# install-init를 # update-rc.d nagios 기본값으로 만듭니다.

외부 배치 파일을 저장할 디렉토리에 대한 권한 설정

# 설치 명령 모드를 만듭니다.

nagios 구성 파일 설치

# 설치 구성을 만듭니다.

아파치에 대한 nagios 구성 설정

# install-webconf를 만듭니다.

외부 배치 파일의 이벤트 처리를 위한 스크립트를 nagios가 있는 폴더에 복사하고 소유자를 폴더로 설정

# cp -R contrib/eventhandlers/ /etc/nagios/libexec/ # chown -R nagios:nagios /etc/nagios/libexec/eventhandlers

설치된 구성을 확인하자

# /etc/nagios/bin/nagios -v /etc/nagios/etc/nagios.cfg

# make 설치 # make 설치

Apache에서 nagios 구성을 활성화하고 필요한 추가 기능을 활성화하십시오.

# a2ensite nagios # a2enmod rewrite cgi

아파치 서비스 재시작

# 서비스 apache2 재시작

nagios를 시작하고 상태를 확인하자

# 서비스 nagios 시작 # 서비스 nagios 상태 ● nagios.service - Nagios 로드됨: 로드됨(/etc/systemd/system/nagios.service; 활성화됨, 공급업체 사전 설정: 활성화됨) 활성: 활성(실행 중)

nagios 관리자 추가

# htpasswd -c /etc/nagios/etc/htpasswd.users nagiosadmin

이제 nagios 구성 파일을 다루겠습니다.

/etc/nagios/etc/ cgi.cfg- 웹 인터페이스에 대한 설정과 nagios 웹 콘솔에 대한 액세스 권한을 정의합니다.

/etc/nagios/etc/ htpasswd.users- nagios 웹 인터페이스에 액세스하기 위한 사용자 및 비밀번호 데이터베이스.

/etc/nagios/etc/ nagios.cfg— *.cfg 파일에 대한 기본 설정 및 경로가 포함되어 있습니다.

/etc/nagios/etc/ 자원.cfg- 변수는 플러그인이 있는 디렉토리까지 여기에서 정의됩니다.

/etc/nagios/etc/objects/ 명령.cfg- 명령 정의를 포함합니다.

/etc/nagios/etc/objects/ 연락처.cfg- nagios 알림을 보낼 메일 연락처를 정의합니다.

/etc/nagios/etc/objects/ 템플릿.cfg- 연락처, 호스트 및 서비스에 대한 템플릿이 포함되어 있습니다.

/etc/nagios/etc/objects/ timeperiods.cfg- 기간의 정의를 포함합니다.

/etc/nagios/etc/objects/ 로컬 호스트.cfg- nagios 서버 자체를 모니터링하기 위한 구성입니다. 호스트 자체, Linux 서버 및 모니터링 서비스용 호스트 그룹을 정의합니다.

/etc/nagios/etc/objects/ 프린터.cfg- 프린터 모니터링을 위한 구성. 임의의 프린터, 프린터의 호스트 그룹 및 모니터링 서비스를 정의합니다.

/etc/nagios/etc/objects/ 스위치.cfg- 스위치 모니터링을 위한 구성. 임의의 스위치, 스위치의 호스트 그룹 및 모니터링 서비스를 정의합니다.

/etc/nagios/etc/objects/ 창.cfg- 임의의 Windows 호스트를 모니터링하기 위한 구성입니다. 임의의 Windows 호스트, Windows 서버 및 모니터링 서비스에 대한 호스트 그룹을 정의합니다.

설명은 localhost.cfg, printer.cfg, switch.cfg 및 windows.cfg에 호스트 그룹 정의가 포함되어 있음을 보여줍니다. 편의를 위해 별도의 파일로 분리하는 것이 좋습니다. /etc/nagios/etc/objects/ hostgroups.cfg. 따라서 원본 파일에서 주석 처리해야 합니다. 동일한 개체에 대한 설명이 다른 구성 파일에서 반복되어서는 안 됩니다. /etc/nagios/etc/objects/ 파일도 추가합니다. 서비스 그룹.cfg, 서비스 그룹이 정의됩니다. 이 출판물은 Linux 및 Windows 호스트에 대한 모니터링을 설정하고 있으므로 해당 호스트에 대한 그룹을 정의합니다. 프린터와 스위치의 경우 그룹은 유추로 정의됩니다. 모니터링할 호스트를 정의하는 파일을 저장할 /etc/nagios/etc/servers/ 폴더도 생성합니다. nagios.cfg 파일을 적절하게 변경해 보겠습니다.

# 나노 /etc/nagios/etc/nagios.cfg . . . # 아래와 같이 개별 개체 구성 파일을 지정할 수 있습니다. cfg_file=/etc/nagios/etc/objects/commands.cfg cfg_file=/etc/nagios/etc/objects/contacts.cfg cfg_file=/etc/nagios/etc/objects /timeperiods.cfg cfg_file=/etc/nagios/etc/objects/templates.cfg # 호스트 그룹 및 서비스 그룹에 대한 정의 cfg_file=/etc/nagios/etc/objects/hostgroups.cfg cfg_file=/etc/nagios/etc/objects/servicegroups.cfg# 로컬(Linux) 호스트 모니터링을 위한 정의 cfg_file=/etc/nagios/etc/objects/localhost.cfg # Windows 시스템 모니터링을 위한 정의 #cfg_file=/etc/nagios/etc/objects/windows.cfg # 모니터링을 위한 정의 a router/switch #cfg_file=/etc/nagios/etc/objects/switch.cfg # 네트워크 프린터 모니터링을 위한 정의 #cfg_file=/etc/nagios/etc/objects/printer.cfg # Nagios에게 모든 것을 처리하도록 지시할 수도 있습니다. 아래와 같이 cfg_dir # 지시문을 사용하여 특정 디렉토리에 config 파일(.cfg # 확장자 포함)을 추가합니다. cfg_dir=/etc/nagios/etc/servers#cfg_dir=/etc/nagios/etc/printers #cfg_dir=/etc/nagios/etc/switches #cfg_dir=/etc/nagios/etc/routers . . .

호스트 및 서비스 그룹에 대한 파일 생성 및 권한 설정

# cd /etc/nagios/etc/objects/ # touch hostgroups.cfg servicegroups.cfg # chown nagios:nagios hostgroups.cfg servicegroups.cfg # chmod 664 hostgroups.cfg servicegroups.cfg

/etc/nagios/etc/ 디렉토리 생성 서버/ 그것에 대한 권리를 설정

# mkdir /etc/nagios/etc/servers/ # chown nagios:nagios /etc/nagios/etc/servers/ # chmod 775 /etc/nagios/etc/servers/

localhost.cfg 및 windows.cfg에서 각각 Linux 및 Windows 서버용 호스트 그룹의 hostgroups.cfg 정의에 추가

# nano /etc/nagios/etc/objects/hostgroups.cfg # Linux 머신을 위한 선택적 호스트 그룹 정의 # linux-server 템플릿을 사용하는 모든 호스트는 자동으로 이 그룹의 구성원이 됩니다. define hostgroup( hostgroup_name linux-servers ; The name of hostgroup alias Linux Servers ; 그룹의 긴 이름 ) # Windows 시스템용 호스트 그룹 정의 # windows-server 템플릿을 사용하는 모든 호스트는 자동으로 이 그룹의 구성원이 됩니다. define hostgroup( hostgroup_name windows-servers ; hostgroup 별칭 Windows Servers ; 그룹의 긴 이름 )

windows.cfg에 대한 경로는 nagios.cfg에서 주석 처리되므로 windows.cfg에서 호스트 그룹 정의를 주석 처리할 필요는 없지만 localhost.cfg에서는 필수 작업입니다.

# 나노 /etc/nagios/etc/objects/localhost.cfg . . . # Linux 시스템을 위한 선택적 호스트 그룹 정의 #define hostgroup( # hostgroup_name linux-servers ; 호스트 그룹의 이름 # alias Linux Servers ; 그룹의 긴 이름 # Members localhost ; 이 그룹에 속한 호스트의 쉼표로 구분된 목록 # ) . . .

Windows 서버 개체가 생성되면 자동으로 windows-servers 그룹의 구성원이 됩니다. 이 작업은 templates.cfg 파일에 정의되어 있습니다. Linux 서버가 자동으로 linux-servers 그룹에 속하도록 하려면 다음과 같이 변경해야 합니다.

# 나노 /etc/nagios/etc/objects/templates.cfg . . . # Linux 호스트 정의 템플릿 - 이것은 실제 호스트가 아니라 템플릿일 뿐입니다! define host( name linux-server ; 이 호스트 템플릿의 이름은 generic-host를 사용합니다. 이 템플릿은 일반 호스트 템플릿에서 다른 값을 상속합니다. check_period 24x7 ; 기본적으로 Linux 호스트는 24시간 내내 확인됩니다. check_interval 5 ; 적극적으로 확인 호스트 5분마다 retry_interval 1 ; 1분 간격으로 호스트 확인 재시도 예약 max_check_attempts 10 ; 각 Linux 호스트를 10번(최대) 확인 check_command check-host-alive ; Linux 호스트를 확인하는 기본 명령 notification_period 근무 시간 ; Linux 관리자는 깨우기를 싫어합니다. up, 그래서 우리는 낮 동안에만 통지합니다 ; notification_period 변수가 ; 일반 호스트 템플릿에서 상속된 값에서 재정의된다는 점에 유의하십시오! notification_interval 120 ; 2시간마다 알림을 다시 보내십시오. 특정 호스트 상태에 대해 contact_groups admins ; 알림은 기본적으로 관리자에게 전송됩니다. 호스트 그룹 리눅스 서버 ; Linux 서버가 구성원이어야 하는 호스트 그룹레지스터 0 ; 이 정의를 등록하지 마십시오. 실제 호스트가 아니라 템플릿일 뿐입니다! ) . . .

알림을 설정하려면 연락처.cfg에서 시스템 관리자의 이메일을 지정해야 합니다.

# 나노 /etc/nagios/etc/objects/contacts.cfg . . . 정의 연락처( contact_name nagiosadmin ; 사용자의 짧은 이름 사용 generic-contact ; 일반 연락처 템플릿에서 기본값 상속(위에 정의됨) alias Nagios Admin ; 사용자 이메일의 전체 이름 [이메일 보호됨]웹사이트 ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } . . .

# 서비스 nagios 다시 시작

다음과 같은 방법으로 알림의 성능을 확인할 수 있습니다. 웹 인터페이스에서 왼쪽의 "호스트"를 선택한 다음, "localhost"를 클릭하고, 오른쪽 메뉴에서 "사용자 지정 호스트 알림 보내기"를 클릭하고, "댓글" 줄을 입력하고 "커밋"을 클릭합니다.

Contacts.cfg에 지정된 메일로 경고를 보내야 합니다.


플러그인에 대해 조금

/etc/nagios/libexec 폴더에는 설치된 플러그인이 있습니다. 기사 시작 부분에서 nagios는 플러그인을 통해 모든 정보를 수신한다고 언급했습니다. 예를 들어 시스템 가동 시간을 살펴보겠습니다.

# /etc/nagios/libexec/check_uptime 가동 시간 확인: 0일 3시간 52분 | 가동 시간=232.000000;;;

대부분의 플러그인은 인수로만 작동합니다. 예를 들어 시스템 스왑 파일의 상태를 살펴보겠습니다.

# /etc/nagios/libexec/check_swap -w 20 -c 10 SWAP OK - 100% 무료(2044MB 중 2044MB) |swap=2044MB;0;0;0;2044

두 개의 인수 -w 20 및 -c 10이 있습니다.

w - 경고, 여유 공간이 20% 남으면 경고 이벤트가 발생합니다.

c - 위험, 여유 공간이 10% 남으면 위험 이벤트가 발생합니다.

로컬 및 "일반" 플러그인도 있습니다. 위의 예는 지역적입니다. 예를 들어 check_swap 플러그인은 원격 호스트에서 페이징 파일의 상태를 확인할 수 없지만 check_ping 플러그인은 로컬 호스트와 원격 호스트 모두의 가용성을 확인할 수 있습니다.

# /etc/nagios/libexec/check_ping -H localhost -w 100.0.20% -c 500.0.60% PING OK - 패킷 손실 = 0%, RTA = 0.04ms|rta=0.036000ms;100.000000;500=0000 0%;20;60;0 # /etc/nagios/libexec/check_ping -H 192.168.1.16 -w 100.0.20% -c 500.0.60% PING OK - 패킷 손실 = 0%, RTA = 0.27ms|rta= 0.273000ms;100.000000;500.000000;0.000000pl=0%;20;60;0


NRPE에 대해 조금

NRPE - Nagios 원격 플러그인 실행기. nagios가 디스크 또는 CPU 사용량과 같은 원격 호스트로부터 정보를 수신하기 위해 nrpe 플러그인이 사용됩니다. Nagios는 nrpe 플러그인을 통해 원격 linux/unix 호스트에 설치된 nrpe 서버에 액세스합니다. nrpe 서버는 로컬 플러그인을 실행하고 정보를 nagios 서버에 전달합니다. 중요한! nrpe 서버와 플러그인은 동일한 버전이어야 하며, 그렇지 않으면 오류가 발생할 수 있습니다.


NRPE 플러그인 설치

nrpe 플러그인을 설치하기 전에 종속성을 설치해야 합니다.

# apt 설치 libssl-dev

nagios 웹사이트에서 최신 버전의 nrpe를 다운로드할 수 있습니다. 빌드 디렉토리로 이동하여 최신 버전의 nrpe를 다운로드하고 압축을 풉니다.

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # tar xzvf 3.0.1.tar.gz

nrpe가 있는 폴더로 이동하여 구성해 보겠습니다.

nrpe 플러그인을 빌드하고 설치합시다.

# make check_nrpe # 설치 플러그인을 만듭니다.

/etc/nagios/etc/objects/commands.cfg에 nrpe 지원 추가

# 나노 /etc/nagios/etc/objects/commands.cfg . . . # "check_nrpe" 명령 정의 define command( command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ ) . . .

변경한 후에는 nagios 서비스를 다시 시작해야 합니다.

# 서비스 nagios 다시 시작


NRPE 서버 설치

모니터링할 Linux 호스트에서 nrpe 서버와 플러그인을 설치해야 합니다.

필요한 종속성 설치

# apt install build-essential libssl-dev

빌드 디렉토리로 이동하여 nrpe, 플러그인을 다운로드하고 압축을 풉니다.

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # wget https://nagios-plugins.org/download/nagios-plugins-2.1. 4.tar.gz # tar xzvf 3.0.1.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

nrpe가 있는 디렉토리로 이동하여 구성해 보겠습니다.

# cd nrpe-3.0.1 # ./configure --prefix=/etc/nagios

구축하자

# nrpe를 만드세요

nrpe 서버가 실행할 사용자 및 그룹 추가

# install-groups-users를 만듭니다.

서버와 설정 파일을 설치하자

# install-daemon을 만듭니다. # install-config를 만듭니다.

시작 스크립트 설치

# install-init로 설정 # systemctl enable /lib/systemd/system/nrpe.service

플러그인의 소스 코드가 있는 디렉토리로 이동하여

# cd /usr/src/nagios-plugins-2.1.4/ # ./configure --prefix=/etc/nagios --with-nagios-user=nagios --with-nagios-group=nagios

플러그인 빌드 및 설치

# make 설치 # make 설치

/etc/nagios/etc/nrpe.cfg에서 미리 정의된 명령에서 nagios 서버가 시스템에 대한 정보를 수신하고 모니터링할 디스크 파티션의 실제 이름을 지정하도록 허용합니다.

나노 /etc/nagios/etc/nrpe.cfg . . . allowed_hosts=127.0.0.1, 192.168.1.13 . . . 명령=/etc/nagios/libexec/check_users -w 5 -c 10 명령=/etc/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 명령=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/ sda1명령=/etc/nagios/libexec/check_procs -w 5 -c 10 -s Z 명령=/etc/nagios/libexec/check_procs -w 150 -c 200 . . .

192.168.1.13은 nagios 서버의 주소로 대체되어야 합니다.
nrpe 서버 시작 및 상태 확인

# 서비스 nrpe 시작 # 서비스 nrpe 상태 ● nrpe.service - Nagios 원격 프로그램 실행기 로드됨: 로드됨(/lib/systemd/system/nrpe.service; 활성화됨, 공급업체 사전 설정: 활성화됨) 활성: 활성(실행 중)


모니터링 시스템에 Linux 호스트 추가

이를 위해 서버 폴더에 linux-server.cfg 파일을 생성합니다.

# nano /etc/nagios/etc/servers/linux-serv.cfg 호스트 정의( linux-server host_name 사용 linux-serv 별칭 linux-serv 주소 192.168.1.12 사용) 서비스 정의(generic-service host_name 사용 linux-serv service_description CPU 부하 check_command check_nrpe!check_load ) 서비스 정의(generic-service host_name linux-serv service_description 사용 현재 사용자 check_command check_nrpe!check_users) 서비스 정의(generic-service host_name linux-serv service_description 사용 /dev/sda1 여유 공간 check_command check_nrpe!check_sda1 정의) 일반 서비스 host_name 사용 linux-serv service_description 총 프로세스 check_command check_nrpe!check_total_procs ) 서비스 정의( 일반 서비스 host_name 사용 linux-serv service_description 좀비 프로세스 check_command check_nrpe!check_zombie_procs 사용)

192.168.1.12는 Linux 서버의 주소로 바꿔야 합니다.
use 지시문은 기본 설정을 정의하는 templates.cfg의 템플릿 이름을 가리킵니다. 새 호스트가 웹 인터페이스에 나타나도록 하려면 nagios 서비스를 다시 시작해야 합니다.

# 서비스 nagios 다시 시작

nrpe가 작동하는지 확인하려면 다음 명령을 실행할 수 있습니다.

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 NRPE v3.0.1

특정 서비스를 확인하려면 확인 이름과 함께 인수를 추가해야 합니다.

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 -c check_sda1디스크 정상 - 여유 공간: /var/tmp 14549MB(85% inode=88%);| /var/tmp=2527MB;14411;16212;0;18014

nrpe.cfg 파일에서 검사 이름을 정의했습니다.

명령[ check_sda1]=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

linux-serv.cfg 파일에서

서비스 정의(일반 서비스 호스트 이름 사용 linux-serv service_description /dev/sda1 여유 공간 check_command check_nrpe! check_sda1 }


Windows 호스트 모니터링

nt 플러그인은 Windows 호스트를 모니터링하는 데 사용됩니다. 기본적으로 기본 플러그인에 포함되어 있어 별도로 설치할 필요가 없습니다. nagios 플러그인은 nt를 통해 Windows 호스트에 설치된 NSClient++에 액세스합니다. NSClient++는 시스템에 대한 정보를 알려주는 특정 모듈에 액세스합니다. NSClient++는 수신한 정보를 nogios 서버로 보냅니다.


NSClient++ 설치

Windows 호스트에서는 NSClient++를 설치해야 합니다. 최신 버전을 다운로드하고 관리자 권한으로 실행하십시오.

"다음"을 클릭하십시오

"다음"을 다시 클릭하십시오

"일반"을 선택하십시오

nagios 서버의 주소, 비밀번호를 지정하고 처음 두 개의 확인란은 그대로 둡니다. "다음"을 클릭하십시오

"설치"를 클릭하십시오

"마침"을 클릭하십시오


모니터링 시스템에 Windows 호스트 추가

이를 위해 서버 폴더에 windows-serv.cfg 파일을 생성합니다.

# nano /etc/nagios/etc/servers/windows-serv.cfg 호스트 정의( windows-server host_name windows-serv alias 사용 내 Windows Server 주소 192.168.1.33 ) 서비스 정의(generic-service host_name windows-serv service_description 사용 NSClient++ 버전 check_command check_nt!CLIENTVERSION ) 서비스 정의( 일반 서비스 호스트 이름 사용 windows-serv service_description 가동 시간 check_command check_nt!UPTIME 사용) 서비스 정의( 일반 서비스 호스트 이름 사용 windows-serv service_description CPU 로드 check_command check_nt!CPULOAD!-l 5,80,90 사용) 서비스 정의( 일반 서비스 호스트 이름 windows-serv service_description 사용 메모리 사용량 check_command check_nt!MEMUSE!-w 80 -c 90 ) 서비스 정의( 일반 서비스 호스트 이름 사용 windows-serv service_description C:\ 드라이브 공간 check_command check_nt!USEDDISKSPACE!-l c 사용 -w 80 -c 90 ) 서비스 정의( 일반 서비스 host_name 사용 windows-serv service_description VMTools check_command check_nt!SERVICESTATE!-d SHOWALL -l VMToo ls ) 서비스 정의(일반 서비스 host_name windows-serv service_description Explorer check_command check_nt!PROCSTATE!-d SHOWALL -l explorer.exe 사용)

192.168.1.33은 Windows 서버 주소로 바꿔야 합니다.
NSClient++ 클라이언트를 설치할 때 암호를 지정한 경우 commands.cfg에 추가해야 합니다.

# 나노 /etc/nagios/etc/objects/commands.cfg . . . # "check_nt" 명령어 정의 define command( command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s 메가패스-v $ARG1$ $ARG2$ ) . . .

그리고 nagios 서비스를 다시 시작하십시오.

# 서비스 nagios 다시 시작


서비스 그룹 정의

서비스 그룹은 특정 서비스 검사의 대상이 되는 호스트를 함께 그룹화합니다. CPU 로드 서비스 그룹을 만들고 호스트를 통합하여 프로세서 로드를 확인합시다.

# nano /etc/nagios/etc/objects/servicegroups.cfg define servicegroup( servicegroup_name cpuload alias CPU Load Members linux-serv,CPU Load, localhost,Current Load, windows-serv,CPU Load )

그룹 구성원은 원칙에 따라 Members 지시문에 정의되어 있습니다.
회원= ,,,,…,N>,N>

그룹을 사용할 수 있게 하려면 nagios 서비스를 다시 시작해야 합니다.

# 서비스 nagios 다시 시작


지도에서 호스트 링크의 위치

기본적으로 맵의 모든 호스트는 Nagios Process에 연결됩니다. 이 동작을 재정의해야 하는 경우가 있습니다. 예를 들어, 연결은 Nagios Process에서 오는 것이 아니라 맵의 다른 지점에서 이루어져야 합니다(예: 스위치를 통한 서버 연결). 이는 호스트 설명 섹션에 상위 지시문을 추가하여 수행됩니다. 예시를 위해 Windows-serv 연결을 Nagios Process에서 linux-serv로 변경해 보겠습니다.

# nano /etc/nagios/etc/servers/windows-serv.cfg 호스트 정의( windows-server host_name windows-serv 별칭 사용 내 Windows 서버 주소 192.168.1.33 부모 linux-serv } . . .

그리고 nagios 서비스를 다시 시작하십시오.

# 서비스 nagios 다시 시작

첫 번째 경우에는 모든 호스트가 Nagios Process와 연결되었고 두 번째 경우에는 windows-serv 연결이 linux-serv에서 시작됩니다.


아이콘 활성화

nagios에는 호스트 이름 옆에 아이콘을 활성화하는 기능이 있습니다. 아이콘은 /etc/nagios/share/images/logos 폴더에 있습니다. 기성품 세트를 사용할 수 있으며 인터넷에서 다운로드 할 수 있습니다. 아이콘 표시를 활성화하려면 다음 행을 templates.cfg에 추가해야 합니다.

# 나노 /etc/nagios/etc/objects/templates.cfg . . . # Linux 호스트 정의 템플릿 - 이것은 실제 호스트가 아니라 템플릿일 뿐입니다! define host( name linux-server ; 이 호스트 템플릿의 이름은 generic-host를 사용합니다. 이 템플릿은 일반 호스트 템플릿에서 다른 값을 상속합니다. check_period 24x7 ; 기본적으로 Linux 호스트는 24시간 내내 확인됩니다. check_interval 1 ; 능동적으로 확인 호스트 5분마다 retry_interval 1 ; 1분 간격으로 호스트 확인 재시도 예약 max_check_attempts 10 ; 각 Linux 호스트를 10번(최대) 확인 check_command check-host-alive ; Linux 호스트를 확인하는 기본 명령 notification_period 근무 시간 ; Linux 관리자는 깨우기를 싫어합니다. up, 그래서 우리는 낮 동안에만 통지합니다 ; notification_period 변수가 ; 일반 호스트 템플릿에서 상속된 값에서 재정의된다는 점에 유의하십시오! notification_interval 120 ; 2시간마다 알림을 다시 보내십시오. 특정 호스트 상태의 경우 contact_groups admins ; 기본적으로 관리자에게 알림이 전송됩니다. hostgroups linux-servers ; Linux 서버가 표시하는 호스트 그룹 의 회원이 될 것입니다 icon_image linux40.png statusmap_image linux40.gd2레지스터 0 ; 이 정의를 등록하지 마십시오. 실제 호스트가 아니라 템플릿일 뿐입니다! ) # Windows 호스트 정의 템플릿 - 이것은 실제 호스트가 아니라 템플릿일 뿐입니다! define host( name windows-server ; 이 호스트 템플릿의 이름은 generic-host를 사용합니다. ; Generic-host 템플릿에서 기본값을 상속합니다. check_period 24x7 ; 기본적으로 Windows 서버는 24시간 내내 모니터링됩니다. check_interval 5 ; 서버를 적극적으로 확인 5분마다 retry_interval 1 ; 1분 간격으로 호스트 확인 재시도 예약 max_check_attempts 10 ; 각 서버를 10번(최대) 확인 check_command check-host-alive ; 서버가 "활성" 상태인지 확인하는 기본 명령 notification_period 24x7 ; 언제든지 알림 보내기 time-day or night notification_interval 30 ; 30분마다 알림 재전송 notification_options d,r ; 특정 호스트 상태에 대한 알림만 전송 contact_groups admins ; 알림은 기본적으로 관리자에게 전송됩니다 hostgroups windows-servers ; Windows 서버가 구성원이어야 하는 호스트 그룹 의 icon_image win40.png statusmap_image win40.gd2레지스터 0 ; 등록하지 마십시오. 이것은 템플릿일 뿐입니다. . .

nagios 서비스 다시 시작

# 서비스 nagios 다시 시작

현재 점점 더 많은 중소기업이 분산형 IT 인프라를 구축하고 있으며, 이 인프라의 필수적인 부분은 지속적이고 고품질의 기능을 보장하기 위해 모든 구성 요소를 효과적으로 모니터링하는 것입니다. 이러한 솔루션에는 일반적으로 이벤트에 대한 빠른 응답 및 제한된 컴퓨팅 리소스에서 작업할 수 있는 기능과 같은 비기능적 요구 사항이 있습니다. 이 기사에서는 무료로 배포되는 모니터링 소프트웨어인 Nagios를 기반으로 이러한 시스템을 구축할 수 있는 가능성에 대해 설명합니다.

Nagios에 대한 간략한 설명

기본 서버인 Nagios의 주요 구성 요소는 거의 모든 Linux/Unix 서버에 배포할 수 있습니다. 거의 모든 일반적인 Linux 및 Unix 배포판에 포함되어 있습니다. 필요한 경우 프로젝트 사이트에서 소스 코드를 다운로드하고 이를 기반으로 나만의 Nagios 버전을 빌드할 수 있습니다. 또한 기본 Nagios 패키지와 함께 해당 설명서도 설치됩니다.

Nagios는 모듈식의 확장 가능한 아키텍처를 가지고 있습니다. Nagios의 기능을 향상시키기 위해 플러그인(Nagios 플러그인) 및 확장(Nagios 애드온)과 같은 유형의 구성 요소를 사용할 수 있습니다.

플러그인은 기본 Nagios 프로세스에서 원격 노드의 응답 시간, 디스크 파티션의 여유 공간 등의 정보를 얻는 데 사용됩니다. 필요한 기능이 있는 플러그인을 찾을 수 없는 경우 사용자 고유의 플러그인을 생성할 수 있는 편리한 인터페이스가 제공됩니다.

확장 기능은 근본적으로 새로운 기능을 Nagios에 추가하거나 다른 외부 제품과 통합하는 데 사용되므로 "애드온"이라는 용어는 플러그인과의 혼동을 피하기 위해 도입되었습니다.

플러그인을 빠르게 작성할 수 있는 기능은 Nagios를 다목적 네트워크 모니터링 도구로 만들었습니다. 다양한 네트워크 프로토콜을 사용하여 원격 노드의 가용성을 확인하는 SNMP를 통해 노드를 폴링하기 위한 플러그인이 있습니다. Nagios Exchange 프로젝트에서 이미 작성된 플러그인 또는 확장을 검색하거나 거기에 자체 개발 플러그인을 추가할 수 있습니다.

Nagios 사용자 인터페이스는 웹 애플리케이션으로 구현됩니다. 필요한 CGI 스크립트와 웹 서버 구성은 기본 Nagios 패키지에 포함되어 있습니다. 비상 상황의 발생과 그 제거에 대해 이메일로 알릴 수 있는 알림 하위 시스템도 있습니다.

그림 1은 기본 Nagios 서버의 구조를 보여줍니다.


그림 2는 원격 호스트에서 Nagios 플러그인을 실행하는 메커니즘을 보여줍니다.


그림 2의 주요 구성 요소는 플러그인입니다. check_nrpe노드 측 모니터링 및 확장 NRPE원격 호스트에서. 플러그인 사이 check_nrpe그리고 NRPE- 데몬은 암호화된 SSL 연결을 설정합니다. 나기오스드플러그인을 실행하는 명령을 보내고 실행 결과를 받습니다. NRPE원격 호스트의 플러그인을 기본 Nagios 서버( 나기오스드), 모든 원격 호스트에서 모든 플러그인을 실행할 수 있습니다.

Windows 노드의 원격 모니터링을 위해 확장을 사용할 수 있습니다. NS클라이언트++. 이 경우 측면에서 나기오스드플러그인을 사용해야 합니다 check_nt.

Nagios 사용 예

예를 들어 창고, 상점 및 사무실의 3가지 존재 지점이 있는 소규모 무역 기업을 예로 들 수 있습니다. 각 접속 지점에는 로컬 ISP에 대한 자체 연결이 있습니다. Linux/Unix 서버는 각 사이트에 게이트웨이로 설치됩니다. VPN은 모든 사이트 간에 구성됩니다. 사무실에서 인트라넷 네트워크는 10.1.0.0/24입니다. 재고 있음 - 10.2.0.0/24. 상점에서 - 10.3.0.0/24. 기업의 경영진은 이 IT 인프라를 모니터링하는 작업을 설정합니다.


이렇게 하려면 각 서버에 서비스를 설치해야 합니다. NRPE그리고 그 중 2개에는 기본 Nagios 키트가 있습니다. 이것은 Nagios 서버 중 하나가 다운되면 다른 서버에서 즉시 이에 대한 메시지를 보내도록 하기 위한 것입니다.

설치용 나기오스드그리고 NRPE시스템의 표준 도구를 사용할 수 있습니다. 이 절차는 선택한 플랫폼에 따라 다르며 일반적으로 어렵지 않습니다. 또한 함께 나기오스드또는 NRPE플러그인의 기본 세트가 설치됩니다. 또한 설치된 Nagios 서버가 있는 노드의 상태를 표시하도록 웹 인터페이스를 설치하고 구성해야 합니다. 일부 배포판에서는 별도의 패키지로 분리되어 있습니다. 마지막으로 cgi.conf 파일에 정의된 nagiosadmin 사용자로 htpasswd 파일을 생성해야 합니다. 원하는 경우 구성을 변경하고 이 이름 대신 다른 사용자를 사용할 수 있습니다.

그런 다음 Nagios 서버와 웹 서버를 시작하고 사용자 이름과 암호를 사용하여 로컬 Nagios 공유에 로그인할 수 있습니다. 지금까지는 하나의 localhost 노드만 모니터링하고 여러 매개변수(로드 평균(로드 평균), 현재 사용자(활성 사용자), 디스크 공간(디스크 공간))를 보여줍니다. 이 리소스의 섹션 중 하나에는 문서가 포함되어 있으므로 액세스하기 위해 인터넷 트래픽을 소비할 필요가 없습니다. 호스트 설명은 localhost.cfg 파일에 있습니다.


구성에 다른 노드를 추가하기 전에 해당 관리를 담당하는 사람의 전자 메일 주소를 지정해야 합니다. 이는 연락처.cfg 파일에서 수행됩니다. 독립적인 전자 메일 공급자의 전자 메일 주소를 선택하는 것이 좋습니다. 예를 들어 휴대폰에 Yandex 메일 클라이언트를 설치하고 설명에 yandex.ru의 주소를 지정할 수 있습니다. 회사 메일 서버가 설치된 사무실의 인터넷이 꺼져 있으면 몇 시간이 지나도 창고의 Nagios 서버가 관리자에게 이를 휴대폰으로 알립니다.

목록 1은 연락처 정보를 연락처.cfg 파일에 추가하는 방법을 보여줍니다.

목록 1. 연락처 정보 추가.
define contact( contact_name zorin; // 짧은 사용자 이름 // 기본값은 일반 연락처 템플릿에서 상속됩니다. use generic-contact; alias Alexander N. Zorin; // 전체 사용자 이름 이메일 [이메일 보호됨]; }

그런 다음 Nagios에서 모니터링할 노드를 등록해야 합니다. 목록 2는 localhost.cfg 파일과 유사한 Warehouse-gw.cfg 파일에서 웨어하우스 노드 정의를 작성하는 방법을 보여줍니다.

목록 2. Nagios에 노드 추가하기.
define host( // 호스트를 설명하는 데 사용되는 템플릿의 이름입니다. // 이 호스트를 정의하면 호스트 템플릿에 // 선언된 모든 설정이 상속됩니다. linux-server. use linux-server host_name Warehouse-gw 별칭 창고 display_name 창고 연락처 , wearhouse-admin 주소 140.14.22.4 ) define service( // 서비스를 설명하는 데 사용되는 템플릿 이름. use local-service ; host_name Warehouse-gw service_description SSH check_command check_ssh notification_enabled 1 ) define host( use linux-server; host_name 웨어하우스 -intra alias Warehouse-intra display_name 창고 로컬 네트워크 연락처 zorin, 창고 관리자 주소 10.2.0.1 ) define service( // 서비스를 설명하는 데 사용되는 템플릿 이름. use local-service; host_name Warehouse-intra service_description SMTP check_command check_smtp notification_enabled 1 )

매듭 창고-gw외부 및 내부 LAN 서비스의 상태를 추적하기 위해 의도적으로 두 번 등록되었습니다. 이 예에서 SMTP 서버는 로컬 네트워크에만 서비스를 제공합니다. Nagios 웹 인터페이스 대시보드에는 두 개의 노드가 표시됩니다. 창고-gw그리고 창고 내부. 창고 내 노드가 사라지고 사용 가능하게 된 경우 창고-gw- 이것은 VPN 채널의 연결이 끊어졌음을 의미합니다.

일부 플러그인은 확장 프로그램을 통해 실행됩니다. NRPE(로드 평균 - check_load, 디스크 공간 - check_disk, 현재 사용자 - check_users) 노드 외부에서 얻을 수 없거나 어려운 정보를 얻습니다. 이렇게 하려면 플러그인을 설치해야 합니다. check_nrpe2 Nagios 서버 및 확장 NRPE모든 서버에서. 이것은 표준 시스템 도구를 사용하여 수행할 수 있습니다.

nrpe.cfg 구성 파일에서 첨부될 주소를 지정해야 합니다. NRPE- 데몬 및 요청을 수락할 신뢰할 수 있는 노드. 상점(노드 shop-gw)의 경우 다음 매개변수가 사용됩니다.

서버 주소=10.3.0.1 허용된 호스트=10.1.0.1,10.2.0.1

교통 NRPE VPN을 통해 의도적으로 라우팅됩니다. 신뢰할 수 있는 노드 NRPE 데몬가게에는 사무실과 창고가 있습니다. Nagios 서버에서 이러한 서비스는 목록 3과 같이 모니터링됩니다.

목록 3. 원격 서비스에 대한 모니터링 구성
define service( // 서비스를 설명하는 데 사용되는 템플릿의 이름. use local-service; host_name Warehouse-intra service_description 로드 평균 인덱스 check_command check_nrpe2!-c check_load notifications_enabled 1 )

이 경우 NRPE-노드 데몬 창고 내부명령이 전송됩니다 체크로드. 응답은 현재 값이 됩니다. 평균 부하이 노드의 경우. 플러그인의 매개변수(여러 개 있을 수 있음)는 느낌표로 구분해야 합니다. 표시된 예에서 매개변수는 -c check_load.

따라서 단계적으로 새로운 노드와 여기에 모니터링되는 매개 변수를 추가하여 고기능 모니터링 시스템을 구축합니다.

플러그인 작업

플러그인은 명령줄 옵션을 통해 실행될 때 입력 매개변수를 수신하고 요청된 값을 잘 정의된 형식으로 stdout에 반환하는 간단한 프로그램 또는 스크립트입니다. 플러그인 실행을 위한 명령은 commands.cfg 파일에 작성할 수 있으며 플러그인은 다음과 같이 설치할 수 있습니다. 나기오스드이 파일에 이미 있습니다. 각 플러그인을 별도의 파일에 등록하는 것도 가능합니다.

목록 4는 플러그인이 설명되는 방법을 보여줍니다. check_smtp원격 호스트에서 SMTP 서버의 가용성과 응답 시간을 확인하는 A.

목록 4. check_smtp 플러그인 구성하기
명령 정의( command_name check_smtp command_line /usr/lib/nagios/plugins/check_smtp -H $HOSTADDRESS$ )

플러그인 경로는 여기에 명시적으로 지정됩니다. check_smtp옵션을 통해 요청에 추가해야 할 필요성 -잘 알고 있기지시어에 따라 자동으로 대체되는 검사 중인 노드의 주소 서비스 정의위에. 명령줄에서 이 플러그인을 실행하면 다음 정보가 표시됩니다.

/usr/lib/nagios/plugins/check_smtp -H 192.168.4.1 SMTP 확인 - 0.038초 응답 시간|시간=0.037518s;;;0.000000

시작 옵션은 다를 수 있으며, 가장 중요한 것은 명령 설명에 올바르게 추가하는 것입니다. 출력 형식은 웹 인터페이스와 함께 설치된 설명서에 자세히 설명되어 있습니다.

설치시 NRPE-daemon, 플러그인 중 일부만 nrpe.conf 파일에 등록되며 그 중 위의 명령 체크로드:

명령=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

위의 줄에는 플러그인의 경로가 포함되어 있습니다. 체크로드및 실행 옵션. 플러그인이 매개변수 없이 실행되면 유효한 매개변수 목록이 표시됩니다. 예를 들어 명령을 생성해야 합니다. check_usr~을 위한 NRPE, 모니터링 서버에 대한 /usr 경로에 마운트된 /dev/md2 파티션에 대한 정보를 반환합니다. 이 기능은 표준 플러그인을 사용하여 구현할 수 있습니다. check_disk. 매개변수 없이 실행하면 시작 매개변수에 대한 설명이 표시됩니다.

사용법: check_disk -w 제한 -c 제한 [-W 제한] [-K 제한] (-p 경로 | -x 장치) [-C] [-E] [-e] [-g 그룹 ] [-k] [ -l] [-M] [-m] [-R 경로 ] [-r 경로 ] [-t 타임아웃] [-u 단위] [-v] [-X 유형]

제공된 정보를 바탕으로 팀을 준비할 수 있습니다. check_usr nrpe.conf 파일에 넣습니다.

명령=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2

이 명령을 시험적으로 실행하면 다음 출력이 생성됩니다.

/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2 디스크 정상 - 여유 공간: /usr 20295MB(86% inode=92%);| /usr=3061MB;19684;22145;0;24606

보시다시피 Nagios에서는 다양한 작업을 수행하고 NRPE 데몬에 연결할 수 있는 플러그인을 쉽게 만들 수 있습니다.

나기오스 익스텐션

Nagios의 기능을 논의할 때 Nagios의 기능을 크게 향상시키는 가장 흥미로운 확장을 고려해야 합니다.

pnp4nagios 확장

기본적으로 Nagios는 중요도 수준(정상, 경고, 위험)에 의해서만 모니터링되는 매개변수의 상태 기록을 유지합니다. 사용자는 매개변수가 다른 상태에 있었던 기간과 보고 기간 동안 이러한 상태에서 보낸 총 시간을 볼 수 있습니다.


그림 5와 같이 임계 기간은 빨간색으로 표시되고 정상 기능 기간은 녹색으로 표시됩니다. 이 솔루션은 부울 유형(예/아니오)의 매개변수(예: RAID 어레이의 무결성)에 적합합니다. 수치 매개변수의 경우 변화의 역학을 추적하는 것이 더 유용합니다.

확대 pnp4nagios, 정기적으로 수신 나기오스드매개변수 값, 변경 내역을 저장하고 그래픽 형식으로 보고서를 생성합니다. 그래프는 임의로 결합할 수 있으며 필요한 경우 결과 웹 페이지를 PDF 파일로 변환할 수 있습니다. 그림 6은 매개변수 변경 보고서를 보여줍니다. 평균 부하특정 노드의 경우.

그림 6. pnp4nagios 확장 웹 페이지
결론

특히 이 솔루션의 낮은 리소스 집약도에 주목할 가치가 있습니다. 한 회사는 Nagios를 사용하여 14개의 노드와 140개의 서비스를 모니터링하는 반면 NRPE 데몬은 512KB의 RAM을 사용하고 nagiosd 서버는 140KB의 RAM만 사용합니다. Pentium-IV CPU에서 구성 요소와 해당 하위 프로세스의 프로세서 리소스 소비는 1%를 초과하지 않습니다. 모니터링되는 매개변수에는 하드 드라이브 및 마더보드의 온도, 디스크 파티션 상태, 메일 대기열 크기, 팬 속도, RAID 어레이의 무결성 등이 있습니다.

이 기사에서 볼 수 있듯이 Nagios 패키지는 리소스 요구 사항이 매우 낮고 사용자 정의가 가능하며 새로운 플러그인 및 확장에 열려 있습니다. 이미 하나 이상의 Linux/Unix 서버를 보유한 중소기업의 경우 Nagios는 기존 IT 인프라를 모니터링하기 위한 완벽한 솔루션입니다.



관련 기사: