Nagios Core 개요
Nagios Core는 오픈 소스 기반의 IT 인프라 모니터링 솔루션으로, 서버, 네트워크 장비, 애플리케이션, 서비스 등을 실시간으로 감시할 수 있는 도구이다. 기업과 기관에서 시스템 가용성을 유지하고 장애를 조기에 감지하는 데 널리 사용된다.
1. Nagios Core의 주요 특징
1.1 다양한 모니터링 대상 지원
• 서버: Linux, Windows, macOS 등
• 네트워크 장비: 라우터, 스위치, 방화벽 (SNMP 활용 가능)
• 애플리케이션 및 서비스: 웹 서버(Apache, Nginx), 데이터베이스(MySQL, PostgreSQL), 클라우드 환경(AWS, Azure)
• 하드웨어 상태: CPU, 메모리, 디스크, 네트워크 트래픽
1.2 모니터링 방식
• Nagios Agent 기반 (NRPE, NSClient++): 원격 서버에서 직접 데이터를 수집
• 에이전트리스 방식 (SNMP, HTTP, SSH, API): 원격 장비와 애플리케이션을 모니터링
• 플러그인 확장 지원: 사용자 정의 스크립트(쉘, Python 등)로 맞춤형 모니터링 가능
1.3 장애 감지 및 알림 시스템
• 서비스 다운, 서버 과부하, 네트워크 장애 감지 가능
• 이메일, SMS, Slack, PagerDuty 등과 연동하여 알람 전송
• 자동 복구 스크립트 실행 가능 (예: 웹 서버 장애 발생 시 자동 재시작)
1.4 확장성과 커스터마이징
• 플러그인 시스템 지원 → 3000개 이상의 플러그인 활용 가능
• Nagios XI (상용 버전) 및 타사 모듈과 연동 가능
• 웹 인터페이스 제공 → Nagios Core UI 및 타사 UI(예: Nagiosgraph, Check_MK) 활용
2. Nagios Core 아키텍처
2.1 주요 컴포넌트
1. Nagios Core: 모니터링 엔진으로, 모든 감시 작업을 수행
2. Nagios Plugins: 서비스 상태를 체크하는 플러그인 모음
3. Nagios Configuration Files: 호스트, 서비스, 알람 등의 설정을 저장하는 파일
4. NRPE (Nagios Remote Plugin Executor): 원격 서버에서 모니터링 데이터를 수집하는 에이전트
5. Web Interface: 웹 UI를 통해 시스템 상태를 시각적으로 확인
2.2 모니터링 흐름
1. Nagios Core가 정의된 호스트 및 서비스의 상태를 주기적으로 검사
2. 플러그인을 실행하여 서버/서비스의 응답 상태를 확인
3. 상태 변경(예: 정상 → 장애)이 발생하면 알람을 전송
4. 시스템 관리자 또는 자동 복구 스크립트가 대응
3. Nagios Core 설치 및 설정 (Ubuntu 20.04 기준)
3.1 필수 패키지 설치
sudo apt update
sudo apt install -y apache2 php libapache2-mod-php build-essential libgd-dev unzip
3.2 Nagios Core 다운로드 및 설치
cd /usr/src
sudo wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
sudo tar -xvf nagios-4.4.6.tar.gz
cd nagios-4.4.6
sudo ./configure --with-httpd-conf=/etc/apache2/sites-enabled
sudo make all
sudo make install-groups-users
sudo usermod -aG nagios www-data
sudo make install
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config
sudo make install-webconf
3.3 웹 인터페이스 설정
sudo a2enmod rewrite cgi
sudo systemctl restart apache2
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
3.4 서비스 시작
sudo systemctl enable nagios
sudo systemctl start nagios
3.5 웹 UI 접속
• 브라우저에서 http://<Nagios 서버 IP>/nagios 접속
• 로그인 ID: nagiosadmin, 설정한 비밀번호 입력
4. Nagios Core 기본 설정
4.1 호스트 추가 (예: Linux 서버 모니터링)
1. 설정 파일 열기
sudo nano /usr/local/nagios/etc/servers/linux-server.cfg
2. 아래 내용 추가
define host {
use linux-server
host_name my-linux-server
alias My Linux Server
address 192.168.1.100
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
3. 설정 반영 후 Nagios 재시작
sudo systemctl restart nagios
5. Nagios Core 활용 예제
5.1 웹 서버 모니터링 (Apache/Nginx)
• check_http 플러그인을 사용하여 웹 서버 가용성 확인
• 명령 실행 예제:
/usr/local/nagios/libexec/check_http -H www.example.com
• 설정 추가 (commands.cfg)
define command {
command_name check_http
command_line $USER1$/check_http -H $ARG1$
}
6. Nagios Core의 장점과 단점
6.1 장점
✅ 완전한 오픈 소스 (무료로 사용 가능)
✅ 경량화된 구조 (낮은 리소스 사용량)
✅ 강력한 확장성 (플러그인, API 활용 가능)
✅ 다양한 알람 연동 (Email, Slack, SMS 등)
✅ 에이전트 및 에이전트리스 모니터링 지원
6.2 단점
❌ 설정 파일 기반 관리 → UI 기반 설정이 제한적
❌ 초기 설정이 복잡함 (수동 설정 필요)
❌ 실시간 대시보드 부족 (Nagiosgraph 등의 추가 설치 필요)
❌ 대규모 시스템에서 성능 한계 (대량의 호스트 모니터링 시 부하 발생)
7. Nagios Core와 다른 모니터링 도구 비교
기능 |
Nagios Core |
Zabbix |
Prometheus |
Datadog (유료) |
---|---|---|---|---|
설치 및 설정 |
중간 난이도 |
복잡함 |
쉬움 (컨테이너 기반) |
간편함 |
확장성 |
플러그인 기반 |
템플릿 기반 |
강력한 시계열 DB |
SaaS 기반 |
실시간 분석 |
제한적 |
강력함 |
매우 강력함 |
매우 강력함 |
알람 시스템 |
기본 제공 |
강력함 |
외부 연동 필요 |
클라우드 연동 |
대규모 지원 |
제한적 |
강력함 |
매우 강력함 |
매우 강력함 |
8. 결론
Nagios Core는 오픈 소스 기반의 강력한 IT 모니터링 솔루션으로, 서버, 네트워크, 애플리케이션을 감시하는 데 적합하다. 플러그인을 활용해 기능을 확장할 수 있지만, 설정이 복잡하고 대규모 환경에서는 성능이 제한될 수 있다. 보다 직관적인 대시보드와 자동화 기능을 원한다면 Nagios XI(상용 버전) 또는 다른 솔루션(Zabbix, Prometheus)과 비교하여 선택하는 것이 좋다.