Nagios 네트워크 모니터링


1. 사전 준비 사항

Nagios 설치에는 Apache 웹 서버PHP, 그리고 Nagios 코어 및 플러그인 설치가 필요합니다. Nagios는 소스에서 컴파일 설치를 진행하므로, 필수 개발 도구들이 설치되어 있어야 합니다.


2. 필수 패키지 설치

Nagios 설치 전, 필요한 패키지와 Apache 웹 서버를 설치합니다.

<bash>

sudo apt update
sudo apt install -y apache2 php libapache2-mod-php build-essential libgd-dev

이제 Apache를 실행하고 부팅 시 자동 시작되도록 설정합니다.

<bash>

sudo systemctl start apache2
sudo systemctl enable apache2

3. Nagios 사용자 및 그룹 생성

Nagios 데몬을 실행할 사용자와 그룹을 생성합니다. Nagios는 기본적으로 ‘nagios’ 사용자로 실행됩니다.

<bash>

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -aG nagcmd nagios
sudo usermod -aG nagcmd www-data

4. Nagios 코어 다운로드 및 설치

Nagios는 공식 사이트에서 다운로드할 수 있습니다. 여기서는 최신 안정 버전을 다운로드하여 설치합니다.

<bash>

cd /tmp
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
tar -zxvf nagios-4.4.6.tar.gz
cd nagios-4.4.6

컴파일 및 설치

Nagios를 컴파일하여 설치합니다.

<bash>

./configure --with-command-group=nagcmd
make all
sudo make install
sudo make install-init
sudo make install-commandmode
sudo make install-config
sudo make install-webconf

5. Nagios 웹 인터페이스 설정

Nagios 웹 인터페이스에 접근하기 위해 Apache 설정 파일을 수정하고, 웹 인터페이스에 로그인할 사용자 계정을 만듭니다.

Nagios 웹 인터페이스 사용자 생성

Nagios 웹 대시보드에 접근할 사용자 계정을 생성합니다.

<bash>

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

비밀번호를 입력하라는 메시지가 표시되면, 원하는 비밀번호를 설정하세요.

Apache 재시작

<bash>

sudo systemctl restart apache2

6. Nagios 플러그인 설치

Nagios 플러그인은 다양한 서버 및 네트워크 장비를 모니터링하는 데 필요한 기능을 제공합니다.

<bash>

cd /tmp
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar -zxvf nagios-plugins-2.3.3.tar.gz
cd nagios-plugins-2.3.3

컴파일 및 설치:

<bash>

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install

7. Nagios 서비스 시작 및 자동 시작 설정

Nagios 서비스를 시작하고, 부팅 시 자동으로 시작되도록 설정합니다.

<bash>

sudo systemctl start nagios
sudo systemctl enable nagios

Nagios가 성공적으로 시작되었는지 확인하기 위해 상태를 확인합니다.

<bash>

sudo systemctl status nagios

8. Nagios 웹 인터페이스 접근

브라우저에서 Nagios 웹 인터페이스에 접근합니다. 서버의 IP 주소를 사용하여 http://YOUR_SERVER_IP/nagios로 접속하면 됩니다. 로그인 화면이 표시되면, 이전에 설정한 nagiosadmin 계정으로 로그인합니다.


9. 호스트 및 서비스 모니터링 설정

Nagios 설정 파일은 /usr/local/nagios/etc/ 디렉토리에 있습니다. Nagios는 기본적으로 localhost(Nagios가 설치된 서버)만 모니터링하도록 설정되어 있으며, 다른 호스트를 모니터링하려면 설정 파일을 편집해야 합니다.

호스트 추가 예제

  1. /usr/local/nagios/etc/objects/ 디렉토리에 새로운 파일을 생성하여 관리하거나, 기본 설정 파일인 localhost.cfg 파일을 참조하여 설정할 수 있습니다.
  2. 아래 예제를 참고해 모니터링할 호스트를 추가해보세요.
<conf>

define host {
    use             linux-server       ; 호스트 템플릿 지정
    host_name       서버_이름
    alias           서버_별칭
    address         호스트_IP_주소
}

서비스 추가 예제

호스트에 대한 서비스 모니터링을 추가하려면 define service 섹션을 추가합니다.

<conf>

define service {
    use                     generic-service
    host_name               서버_이름
    service_description     서비스_이름
    check_command           check_http   ; HTTP 서비스 모니터링 예제
}

설정을 마친 후 Nagios 구성을 확인하여 오류가 없는지 검사합니다.

<bash>

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

오류가 없다면 Nagios를 다시 시작합니다.

<bash>

sudo systemctl restart nagios

10. 알림 설정

Nagios는 특정 상태 변경에 따라 관리자에게 알림을 전송할 수 있습니다. 기본 알림 방법은 이메일이며, contacts.cfg 파일에서 설정할 수 있습니다.

<conf>

define contact {
    contact_name        nagiosadmin
    alias               Nagios Admin
    service_notification_period    24x7
    host_notification_period       24x7
    service_notification_options   w,u,c,r
    host_notification_options      d,u,r
    service_notification_commands  notify-service-by-email
    host_notification_commands     notify-host-by-email
    email               your-email@example.com  ; 알림을 받을 이메일
}

이후 이메일 설정이 완료되면 서비스 및 호스트 상태 변경 시 자동으로 알림이 전송됩니다.


11. Nagios 모니터링 플러그인 활용

Nagios는 다양한 플러그인을 통해 네트워크 장비 및 서버 상태를 세밀하게 모니터링할 수 있습니다. 각 플러그인은 /usr/local/nagios/libexec/ 디렉토리에 설치되며, check_pingcheck_httpcheck_disk 등 기본 제공되는 플러그인을 사용할 수 있습니다.

플러그인 예제: Ping 체크

Nagios 설정 파일에서 아래와 같이 check_ping 플러그인을 호출하여 Ping 응답 시간을 모니터링할 수 있습니다.

<conf>

define service {
    use                     generic-service
    host_name               서버_이름
    service_description     PING
    check_command           check_ping!100.0,20%!500.0,60%
}

여기서 100.0,20%는 경고 임계값(응답 시간 100ms, 패킷 손실 20%)이며, 500.0,60%는 위험 임계값을 의미합니다.


맺음말

Nagios는 강력한 오픈소스 모니터링 도구로, 서버와 네트워크 장비의 성능과 상태를 효과적으로 모니터링할 수 있습니다. 설치 및 설정이 다소 복잡할 수 있으나, 이를 통해 효율적이고 안정적인 모니터링 시스템을 구축할 수 있습니다.

위 단계를 차근차근 따라 하시면 Nagios로 다양한 IT 인프라를 통합적으로 모니터링할 수 있는 환경을 만들 수 있습니다.


2930 Blog에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.