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, 자동화 초안 형태로 정리합니다.