웹사이트 검색

Debian 9에 Nagios 4.3.x 모니터링 도구를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 9(Stretch)
  • 데비안 5(Lenny)

이 페이지에서

  1. 요구 사항\n
  2. 초기 구성
  3. Nagios Core 설치
  4. Nagios 플러그인 설치\n

이 튜토리얼에서는 Debian 9.1(코드네임 Stretch)의 소스에서 최신 버전의 Nagios Core(현재 4.3.4)를 설치하고 구성하는 방법을 보여줍니다.

Nagios Core라고도 하는 Nagios는 개발자가 적극적으로 유지 관리하는 무료 오픈 소스 네트워크 모니터링 도구로 전체 네트워크 인프라를 모니터링하도록 설계되었습니다. Nagios는 라우터, 스위치, 서버, 데스크톱, 방화벽 장비, IoT 장치와 같은 장치에 네트워크 연결이 구성되어 있는 한 거의 모든 네트워크 장치를 모니터링할 수 있습니다. 네트워크 상태를 확인하기 위해 장치를 모니터링하는 것 외에도 Nagios는 네트워크 서비스, 응용 프로그램 또는 운영 체제와 관련된 기타 특정 작업을 모니터링할 수 있으며 가능한 장치에 대해 네트워크 관리자에게 알리기 위해 메일 또는 SMS를 통해 경고를 보내도록 구성할 수 있습니다. 중단 또는 서비스 실패.

요구 사항

  • 베어 메탈 머신 또는 가상 사설 서버에 설치된 Debian 9.1. 가급적 최소한의 소프트웨어 요구 사항으로 설치를 수행해야 합니다.\n
  • 고정 IP 주소로 구성된 네트워크 인터페이스 카드.
  • sudo를 통해 루트 계정 또는 루트 계정 권한이 있는 사용자에 대한 액세스.\n
  • 적절한 DNS A 레코드가 구성된 개인 또는 공용 도메인 이름. 구내에 DNS 서버가 구성되어 있지 않은 경우 서버 IP 주소를 통해 Nagios에 액세스할 수 있습니다.\n

초기 구성

소스에서 Nagios 설치를 시작하기 전에 시스템이 Nagios 컴파일 및 설치를 위한 모든 소프트웨어 요구 사항을 충족하는지 확인하십시오. 첫 번째 단계에서 아래 명령을 실행하여 시스템 리포지토리 및 소프트웨어 패키지를 업데이트합니다.

apt update
apt upgrade

다음 단계에서는 명령줄에서 시스템을 추가로 관리하는 데 사용할 몇 가지 필수 유틸리티를 설치하기 위해 새 명령을 실행합니다.

apt install wget unzip zip bash-completion

그런 다음 다음 명령을 실행하여 시스템 이름을 설정합니다.

hostnamectl set-hostname nagios.server.lan

아래 명령을 실행하여 시스템 호스트 이름과 호스트 파일을 확인합니다.

hostnamectl
cat /etc/hostname
cat /etc/hosts

마지막으로 새 호스트 이름을 적용하기 위해 시스템을 재부팅합니다.

init 6

Nagios는 일부 부분이 PHP 서버 측 프로그래밍 언어 및 기타 CGI 프로그램으로 작성된 웹 기반 모니터링 애플리케이션입니다. Nagios PHP 파일 스크립트를 실행하려면 Apache HTTP 서버와 같은 웹 서버와 PHP 처리 게이트웨이가 시스템에 설치되어 작동해야 합니다. Nagios 4가 제대로 실행되는 데 필요한 모든 필수 PHP 모듈과 함께 Apache 웹 서버 및 PHP 인터프리터를 설치하려면 서버 콘솔에서 다음 명령을 실행하십시오.

apt install apache2 libapache2-mod-php7.0 php7.0

Apache 및 PHP를 설치한 후 루트 권한으로 다음 명령을 실행하여 웹 서버가 실행 중이고 포트 80에서 네트워크 연결을 수신하는지 테스트합니다.

netstat –tlpn

데비안 9 시스템에 netstat 네트워크 유틸리티가 기본적으로 설치되어 있지 않은 경우 아래 명령을 실행하여 설치하십시오.

apt install net-tools

netstat 명령 출력을 검사하면 Apache 웹 서버가 포트 80에서 들어오는 네트워크 연결을 수신 대기하고 있음을 알 수 있습니다.

UFW 방화벽 애플리케이션과 같이 시스템에 방화벽이 활성화된 경우 다음 명령을 실행하여 HTTP 트래픽이 방화벽을 통과하도록 허용하는 새 규칙을 추가해야 합니다.

ufw allow WWW

또는

ufw allow 80/tcp

방문자가 Nagios Core 웹 인터페이스를 탐색할 수 있도록 iptables 원시 규칙을 사용하여 방화벽에서 포트 80 인바운드 트래픽을 허용하려는 경우 다음 규칙을 추가하십시오.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

다음으로 아래 명령을 실행하여 Nagios 웹 애플리케이션이 제대로 실행되는 데 필요한 다음 Apache 모듈을 활성화하고 적용합니다.

a2enmod rewrite headers cgi
systemctl restart apache2

마지막으로 아래 이미지와 같이 HTTP 프로토콜을 통해 데비안 컴퓨터 IP 주소 또는 도메인 이름을 방문하여 클라이언트 브라우저에 Apache 웹 서버 기본 웹 페이지를 표시할 수 있는지 테스트합니다. 컴퓨터 IP 주소를 모르는 경우 ifconfig 또는 ip a 명령을 실행하십시오.

http://192.168.1.14

다음 단계에서는 PHP 시간대 설정이 올바르게 구성되고 시스템의 물리적 위치와 일치하도록 PHP 기본 구성 파일을 추가로 변경해야 합니다. 편집을 위해 /etc/php/7.0/apache2/php.ini 파일을 열고 다음 줄이 다음과 같이 설정되어 있는지 확인합니다.

date.timezone = Europe/London

http://php.net/manual/en/timezones.php 링크에서 PHP 문서가 제공하는 시간대 목록을 참조하여 실제 시간에 따라 시간대 변수를 교체하십시오.

변경 사항을 적용하려면 Apache 데몬을 다시 시작하십시오.

systemctl restart apache2

필요한 변경 사항을 적용한 후 php info 파일을 생성하고 Apache 데몬을 다시 시작하여 다음 명령을 실행하여 변경 사항을 적용합니다.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
systemctl restart apache2

아래 이미지와 같이 브라우저에서 다음 URL의 phpinfo 스크립트 파일을 방문하여 PHP 시간대가 올바르게 구성되었는지 확인하십시오. 날짜 설정까지 아래로 스크롤하여 PHP 시간대 설정을 확인합니다.

http://192.168.1.14/info.php

나기오스 코어 설치

소스에서 Nagios Core를 다운로드하고 컴파일하기 전에 먼저 아래 명령을 실행하여 시스템에 다음 필수 패키지를 설치해야 합니다.

apt install autoconf gcc libc6 make apache2-utils libgd-dev

소스에서 Nagios를 컴파일하는 데 필요한 모든 종속성 및 패키지가 Debian 시스템에 설치된 후 Nagios 공식 웹사이트(https://www.nagios.org/downloads/nagios-core/)를 방문하여 최신 버전의 Nagios Core 안정적인 소스 아카이브를 다운로드합니다. 다음 명령 발췌문과 같이 wget 유틸리티를 실행합니다.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.4.tar.gz

Nagios 소스 tarball을 다운로드한 후 tar 아카이브를 추출하고 다음 명령을 사용하여 추출된 nagios 디렉토리를 입력합니다. 소스 파일을 나열하려면 nagios 압축 해제 디렉토리 내에서 ls 명령을 실행하십시오.

tar xzf nagios-4.3.4.tar.gz
cd nagios-4.3.4/
ls

Nagios 추출 소스 디렉토리 안에 있는 동안 아래 명령을 실행하여 소스에서 Nagios 컴파일 프로세스를 시작합니다. 먼저 sites-enabled 디렉토리를 가리키는 Apache 웹 서버 http 구성 경로로 컴파일되도록 Nagios를 구성합니다.

./configure --with-httpd-conf=/etc/apache2/sites-enabled

다음으로 아래 이미지와 같이 다음 명령을 실행하여 Nagios를 컴파일합니다.

make all

다음으로 nagios 시스템 사용자 및 그룹을 생성하고 nagios 계정을 Apache 런타임 사용자에게 추가하여 nagios 사용자가 웹 리소스에 액세스하는 데 필요한 권한을 갖도록 합니다.

useradd nagios
usermod -a -G nagios www-data

이제 다음 명령을 실행하여 Nagios 바이너리 파일, CGI 스크립트 및 HTML 파일 설치를 시작합니다. make install 명령의 최종 출력에는 아래 이미지와 같이 바이너리 위치가 표시되어야 합니다.

make install

다음으로 Nagios daemon systemd init 파일을 설치하고 다음 명령을 실행하여 시스템 전체에서 nagios 서비스를 활성화합니다.

make install-init
systemctl enable nagios.service

또한 아래 명령을 실행하여 Nagios 외부 명령 파일을 설치 및 구성합니다.

make install-commandmode

다음으로 Nagios 데몬이 제대로 시작하고 작동하는 데 필요한 Nagios 샘플 구성 파일을 설치하려면 다음 명령을 실행하십시오.

make install-config

마지막으로 아래 명령을 실행하여 /etc/apacahe2/sites-enabled/ 디렉토리에 위치할 Nagios용 Apache 웹 서버 구성 파일을 설치합니다.

make install-webconf

다음 명령을 실행하여 Nagios 웹 도구에 로그인할 수 있도록 Apache 웹 서버에 필요한 해당 암호로 nagiosadmin 사용자 계정을 만듭니다.

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

Nagios 웹 패널에 접속하려면 먼저 Apache HTTP 서버를 재시작하고 다음 명령어를 실행하여 Nagios 서비스를 시작합니다.

systemctl restart apache2
systemctl start nagios

그런 다음 브라우저를 열고 서버의 IP 주소 또는 도메인 이름 또는 FQDN을 방문하여 Nagios 웹 인터페이스에 로그인하고 아래 스크린샷과 같이 HTTP 프로토콜을 통해 /nagios URL 경로를 추가합니다. Nagios 웹 인터페이스에 로그인하려면 이 사용자에 대해 이전에 구성된 비밀번호와 함께 nagiosadmin 사용자를 사용하십시오.

Nagios 플러그인 설치

이제 Nagios 엔진이 시스템에 설치되었습니다. 그러나 Nagios 소프트웨어는 호스트 및 서비스를 확인하는 데 사용되는 플러그인이 설치되지 않았기 때문에 아직 작동하지 않습니다. 이 동작은 아래 스크린샷과 같이 플러그인 오류를 확인할 수 있는 호스트 메뉴로 이동하여 관찰할 수 있습니다.

소스에서 일부 기본 Nagios 플러그인을 컴파일하고 설치하려면 먼저 다음 명령을 실행하여 다음 라이브러리 및 종속성을 설치해야 합니다.

apt install libmcrypt-dev make libssl-dev bc gawk dc build-essential snmp libnet-snmp-perl gettext libldap2-dev smbclient fping default-libmysqlclient-dev

모든 종속성 패키지가 시스템에 설치된 후 https://github.com/nagios-plugins/nagios-plugins/releases 주소를 방문하여 Nagios 플러그인 리포지토리 페이지로 이동하고 최신 소스 코드 아카이브를 가져옵니다. 아래 명령 예와 같이 wget 명령줄 유틸리티.

wget https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz

그런 다음 압축된 Nagios Plugins 소스 코드 tarball을 추출하고 다음 명령을 실행하여 추출된 nagios-plugins 디렉토리로 들어갑니다.

tar xfz release-2.2.1.tar.gz
cd nagios-plugins-release-2.2.1/

소스에서 Nagios 플러그인을 컴파일하고 설치하려면 아래 발췌문과 같이 루트 권한으로 다음 스크립트와 명령을 실행하십시오.

./tools/setup
./configure
make
make install

모든 플러그인이 설치되면 /usr/local/nagios/libexec/ 시스템 경로에서 찾을 수 있습니다. ls 명령을 실행하여 /usr/local/nagios/libexec/ 디렉토리의 모든 내용을 검사하고 시스템에서 Nagios에 사용할 수 있는 플러그인을 확인하십시오.

ls /usr/local/nagios/libexec/

Nagios 엔진이 설치된 플러그인을 선택하여 사용하기 위해서는 다음 명령어로 Nagios 서비스 상태를 다시 시작하고 확인해야 합니다.

systemctl restart nagios.service
systemctl status nagios.service

Nagios 플러그인이 예상대로 작동하는지 테스트하려면 아래 스크린샷과 같이 브라우저를 열고 서버의 IP 주소, FQDN 또는 도메인 이름을 방문하고 호스트 또는 서비스 메뉴로 이동하여 Nagios 웹 인터페이스에 다시 로그인하십시오. 모니터링되는 호스트 및 서비스는 이제 플러그인에서 확인해야 하며 플러그인 명령 종료 상태에 따라 올바른 출력을 표시해야 합니다. 표시되는 색상은 정상일 경우 녹색, 경고일 경우 노란색, 위험일 경우 빨간색입니다.

HTTPS 프로토콜을 사용하여 보안 연결을 통해 Nagios 엔진 웹 인터페이스에 액세스하려면 다음 명령을 실행하여 Apache 웹 서버 SSL 모듈 및 SSL 사이트 구성 파일을 활성화하십시오.

a2enmod ssl
a2ensite default-ssl.conf

다음으로 방문자가 브라우저에서 Nagios 웹 인터페이스를 방문할 때마다 자동으로 HTTPS 프로토콜로 리디렉션되도록 하려면 편집을 위해 /etc/apache2/sites-enabled/000-default.conf 파일을 열고 다음 재작성 규칙을 추가합니다. 아래 예와 같이 DocumentRoot 문 뒤에.

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1

마지막으로 Apache 데몬을 다시 시작하여 지금까지 구성된 모든 규칙을 적용하고 HTTP 프로토콜을 통해 Nagios 웹 인터페이스를 방문합니다.

systemctl restart apache2.service

Apache가 HTTPS 포트에서 수신하는지 확인하려면 netstat 명령을 실행하고 아래 이미지와 같이 443 포트 바인딩을 찾습니다.

netstat -tlpn

UFW 방화벽 애플리케이션이 HTTPS 포트로 들어오는 네트워크 연결을 차단하는 경우 다음 명령을 실행하여 HTTPS 트래픽이 방화벽을 통과하도록 허용하는 새 규칙을 추가해야 합니다.

ufw allow 'WWW Full'

또는

ufw allow 443/tcp

Debian 시스템을 보호하기 위해 iptables 방화벽을 실행하는 경우 방문자가 Nagios Core 웹 인터페이스를 탐색할 수 있도록 방화벽에서 포트 443 인바운드 트래픽을 허용하는 다음 규칙을 추가하십시오.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

이제 HTTPS 프로토콜을 통해 자동으로 Nagios 웹 패널로 리디렉션됩니다. 설치 시 Apache에서 발급한 자동 자체 서명 인증서 쌍을 사용하고 있기 때문에 브라우저에 오류 경고가 표시되어야 합니다. 아래 스크린샷과 같이 브라우저 경고를 수락하고 이전에 구성한 자격 증명으로 Nagios에 로그인합니다.

Nagios에서 모니터링할 새 호스트를 추가하려면 편집을 위해 /usr/local/nagios/etc/objects/localhost.cfg 구성 파일을 열고 localhost 정의 뒤에 새 기기를 추가하세요.

define host{
        use                     linux-server
        host_name               router
        alias                   router
        address                 192.168.1.1
        }

host_name, aliasIP 주소 변수를 적절하게 교체하고 Nagios 데몬을 다시 시작하여 새 호스트 정의를 로드하고 변경 사항을 적용합니다.

systemctl restart nagios

몇 분 후에 Nagios 웹 인터페이스의 Hosts 메뉴로 이동하여 아래 이미지와 같이 기기 상태를 확인하세요.

그게 다야! Debian 9의 소스에서 Nagios 엔진을 성공적으로 설치 및 구성했습니다. Nagios에서 모니터링할 조직 네트워크 장치, 서버 또는 중요 서비스를 추가할 수 있습니다. Nagios Core 및 Nagios Plugins에 관한 기타 사용자 지정 구성에 대해서는 다음 링크 https://support.nagios.com/kb/category.php?id=12의 설명서 페이지를 방문하십시오.