Launch service pages are live SaaS, web app, indie game, and home server public-context handoffs. No secrets.
Services SaaS Web App Game Homelab

Nagios 설치 및 운용

Linux 서버 운영 관점에서 Nagios 설치 및 운용의 목적, 적용 범위, 실행 전 확인할 항목을 정리한 기술 노트입니다.

핵심 요약

  • Linux 서버 운영 기준으로 글의 목적과 적용 범위를 먼저 확인할 수 있게 정리했습니다.
  • 원문의 명령어, 로그, 절차는 보존하고 운영자가 먼저 봐야 할 맥락을 앞쪽에 배치했습니다.
  • 실행형 명령은 대상 환경, 권한, 백업 또는 롤백 경로를 확인한 뒤 적용하는 것을 전제로 합니다.

적용 범위

이 글은 Linux 서버 운영 업무에서 Nagios 설치 및 운용를 빠르게 검토하기 위한 운영 노트입니다. 실습이나 변경 작업은 각자의 랩/운영 환경 기준으로 값과 절차를 재확인한 뒤 진행합니다.

정리된 본문

Nagios는 시스템과 네트워크를 모니터링하기 위한 오픈소스 도구 중 하나로, 대규모 시스템 및 네트워크 모니터링에 적합합니다. 이번에는 Nagios 설치 및 운용에 대한 총정리를 작성하겠습니다.

1. Nagios 설치

1-1. 사전 준비

  • Nagios 설치를 위해 필요한 패키지들을 설치합니다.
$ sudo apt-get update
$ sudo apt-get install -y wget build-essential apache2 php libapache2-mod-php7.4 openssl perl make php-pear php7.4-dev snmp libnet-snmp-perl gettext

1-2. Nagios Core 설치

  • Nagios Core를 다운로드하고 압축을 해제합니다.
$ cd /tmp
$ wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
$ tar xzf nagios-4.4.6.tar.gz
  • Nagios Core를 컴파일하고 설치합니다.
$ cd nagios-4.4.6
$ ./configure --with-httpd-conf=/etc/apache2/sites-enabled
$ make all
$ sudo make install
$ sudo make install-init
$ sudo make install-commandmode
$ sudo make install-config
  • Nagios 웹 인터페이스를 사용하기 위해 Apache 웹 서버를 구성합니다.
$ sudo usermod -a -G nagios www-data
$ sudo a2enmod rewrite cgi
$ sudo systemctl restart apache2

1-3. Nagios Plugin 설치

  • Nagios Plugin을 다운로드하고 압축을 해제합니다.
$ cd /tmp
$ wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
$ tar xzf nagios-plugins-2.3.3.tar.gz
  • Nagios Plugin을 컴파일하고 설치합니다.
$ cd nagios-plugins-2.3.3
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios
$ make
$ sudo make install

2. Nagios 운용

2-1. Nagios 구성 파일 수정

  • Nagios 구성 파일인 nagios.cfg 파일을 수정합니다.
$ sudo vi /usr/local/nagios/etc/nagios.cfg
  • allowed_hosts 항목에 모니터링 대상 서버의 IP 주소나 서브넷을 추가합니다.
# ALLOWED HOSTS
# This is a comma-delimited list of IP address (or hostnames) that are allowed
# to access the web interface.  This value can be a single IP address of a
# host, or a subnet in CIDR notation (e.g. 192.168.0.0/16).
allowed_hosts=127.0.0.1,192.168.0.0/24

2-2. 모니터링 대상 서버 설정

  • Nagios Plugin을 사용하여 모니터링 대상 서버의 상태를 체크할 수 있습니다.
  • commands.cfg 파일에서 각 체크 명령어의 인수를 수정합니다.
$ sudo vi /usr/local/nagios/etc/objects/commands.cfg
  • 예를 들어, HTTP 서비스 체크 명령어를 수정하려면 다음과 같이 작성합니다.
# 'check_http' command definition
define command{
        command_name    check_http
        command_line    $USER1$/check_http -I $HOSTADDRESS$ -w 5 -c 10
}
  • 위 예시에서 -I 옵션은 체크할 서버의 IP 주소를 나타내며, -w 옵션은 경고 임계값을 나타내고, -c 옵션은 치명적 임계값을 나타냅니다.

2-3. 모니터링 대상 서버 추가

  • Nagios에서 모니터링 대상 서버를 추가하려면 hosts.cfg 파일을 수정합니다.
$ sudo vi /usr/local/nagios/etc/objects/hosts.cfg
  • 모니터링 대상 서버를 추가하려면 다음과 같이 작성합니다.
define host{
        use             linux-server
        host_name       server1
        alias           My Linux Server
        address         192.168.0.1
}
  • use 항목은 호스트 설정을 상속할 템플릿을 지정합니다. host_name 항목은 호스트 이름을 나타내며, alias 항목은 호스트의 설명을 나타냅니다. address 항목은 호스트의 IP 주소를 나타냅니다.

2-4. 서비스 체크 추가

  • Nagios에서 서비스를 체크하려면 services.cfg 파일을 수정합니다.
$ sudo vi /usr/local/nagios/etc/objects/services.cfg
  • 서비스 체크를 추가하려면 다음과 같이 작성합니다.
define service{
        use                     generic-service
        host_name               server1
        service_description     HTTP
        check_command           check_http
        notifications_enabled   0
}
  • use 항목은 서비스 설정을 상속할 템플릿을 지정합니다. host_name 항목은 서비스를 체크할 호스트의 이름을 나타냅니다. service_description 항목은 서비스의 설명을 나타냅니다. check_command 항목은 체크할 명령어를 지정합니다. notifications_enabled 항목은 알림 설정을 나타냅니다.

2-5. Nagios 서비스 시작

  • 모든 구성 파일을 수정한 후 Nagios 서비스를 시작합니다.
$ sudo systemctl start nagios
  • Nagios 웹 인터페이스에서 모니터링 대상 서버의 상태를 확인할 수 있습니다.

위 방법들은 Nagios 설치 및 운용에 대한 대표적인 방법들입니다. 다만, Nagios 모니터링 대상에 따라 추가적인 설정이 필요할 수 있으므로, 상황에 맞게 적절한 방법을 선택하여 사용해야 합니다.

운영 체크리스트

  • 대상 OS, 버전, 네트워크 구간, 권한 범위가 현재 환경과 일치하는지 확인합니다.
  • 운영 장비에서 실행하기 전 테스트 환경 또는 읽기 전용 명령으로 먼저 검증합니다.
  • 설정 변경, 패키지 설치, 서비스 재시작이 포함되면 백업과 롤백 절차를 준비합니다.

실무 지원이 필요하다면

이 글의 내용을 실제 환경에 맞게 검증하거나 운영 절차로 정리해야 한다면, Linux 서버 상태 점검, 장애 로그 분석, 운영 체크리스트 작성를 1회성 기술 리뷰 또는 짧은 운영 개선 스프린트로 도와드릴 수 있습니다.

  • 대상 환경과 현재 증상을 기준으로 실행 전 체크리스트를 정리합니다.
  • 명령어, 로그, 설정 변경이 필요한 경우 안전한 검증 순서와 롤백 포인트를 분리합니다.
  • Nagios 설치 및 운용와 연결된 작업을 보고서, Runbook, 자동화 초안 형태로 정리합니다.

서비스 안내 보기 · 주제별 글 읽기 · 작업 문의

\n\n\n