[모니터링] Nagios(나기오스) - 호스트 모니터링 등록
- IT/모니터링
- 2020. 6. 12.
이번 포스팅은 nagios에서 원격 호스트를 모니터링하는 방법에 대해 알아보겠습니다.
아직 nagios 설치가 안되신 분들은 아래 링크를 참고하여 먼저 설치를 진행해 주시기 바랍니다.
https://sh-safer.tistory.com/28
[모니터링] Nagios(나기오스) 모니터링 설치
설치 환경 VirtualBox CentOS 7.8 - (IP : 192.168.56.101) nagios-4.4.6 nagios-plugins-2.3.3 selinux 비활성화 vi /etc/selinux/config # SELINUX=enforcing SELINUX=disabled iptables 규칙 제거 작업 편의상..
sh-safer.tistory.com
실습 환경
VirtualBox CentOS 7.8 - (IP : 192.168.56.101) nagios-4.4.6 nagios-plugins-2.3.3 |
VirtualBox |
linux-1 -> linux-2 ssh-key 등록 |
nagios 설정 파일 위치입니다. 대부분의 설정은 해당 경로에서 진행합니다.
/usr/local/nagios/etc/objects
generic-host 템플릿 정의
우선, 원격 서버를 모니터링하기 위해서는 모니터링에 대한 기준틀을 잡아야 합니다.
nagios를 설치하면 기본으로 templates.cfg 파일에 define host로 정의가 되어있습니다.
define host {
name generic-host ; 호스트 템플릿의 이름
notifications_enabled 1 ; 호스트 알람 허용
event_handler_enabled 1 ; 호스트 event handler 허용
flap_detection_enabled 1 ; Flap 감지 허욛
process_perf_data 0 ; 성능 데이터 저장하지 않음
retain_status_information 1 ; 프로세스 재시작 간에 상태 정보 저장
retain_nonstatus_information 0 ; 프로세스 재시작 간에 상태 정보가 아닌 정보값 저장하지 않음
notification_period 24x7 ; 24시간 7일 언제나 모니터링
register 0 ; 템플릿일 경우 0
}
참고로, "24x7"이라는 설정은 timeperiods.cfg 에 정의되어 있습니다. 주말이나, 퇴근 후에는 알람이 받기 원치 않으시면 조정을 하시면 됩니다. 일단은 그대로 두고 진행하겠습니다.
define timeperiod {
name 24x7
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
linux-server 템플릿 정의
다음은 templates.cfg에 또 다른 define host 설정을 보겠습니다.
아래 설정에 4번 라인을 보시면 위에서 설명한 "generic-host" 템플릿이 use로 설정되어 있습니다.
즉, 위에서 설명한 generic-host 설정을 그대로 상속받아 적용한다는 것입니다,
일반적으로 모든 서버의 공통적인 정책은 "generic-host"에서 정의를 하고 "linux-server"에서는 좀 더 세부적인 설정을 하는 것이라고 보시면 됩니다.
그럼 이이서 설정 내용을 보도록 하겠습니다
define host {
name linux-server ; 호스트 템플릿의 이름
use generic-host ; 이 템플릿은 generic-host 템플릿에서 값을 상속 받습니다
check_period 24x7 ; Linux 호스트는 365일 내내 체크합니다
check_interval 5 ; 체크 주기 5분
retry_interval 1 ; 문제시 재시도 주기 1분
max_check_attempts 10 ; 문제시 재시도 체크 횟수
check_command check_host_by_ssh ; linux 호스트를 ssh를 통해 확인합니다
notification_period 24x7 ; 24시간 7일 언제나 모니터링
notification_interval 120 ; 두시간 마다 알람 재전송
notification_options d,u,r ; 호스트의 특정 상태 일때만 알람을 보냄 d = DOWN u = UNREACHABLE r = RECOVERY
contact_groups admins ; 통보 그룹
register 0 ; 템플릿일 경우 0
}
contact_group은 메일 또는 문자 알람 관련 설정입니다. 이 부분은 다음에 따로 다루고 이번 포스팅에서는 그냥 admin으로 두겠습니다.
ssh command 정의
위 설정에서 실질적으로 가장 중요한 부분인 check_command입니다
어떻게 원격 호스트를 모니터링하는지에 대한 설정입니다.
우선 command.cfg 파일을 열어보겠습니다.
원래는 디폴트로 "check-host-alive" 커멘드가 설정이 되어있는데 저는 "check_host_by_ssh"로 변경을 했습니다
아무거나 사용하셔도 무방한데 저는 ping 체크보다는 ssh 체크를 더 선호하여 변경하여 사용하였습니다.
# check-host-alive
define command {
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
# check_host_by_ssh
define command{
command_name check_host_by_ssh
command_line $USER1$/check_ssh -H $HOSTADDRESS$
}
코멘트 라인을 그대로 CLI 창에서 입력하여 정상 통신되는 것을 확인합니다
[root@linux-1 objects]# /usr/local/nagios/libexec/check_ssh -H linux-2
SSH OK - OpenSSH_7.4 (protocol 2.0) | time=0.014835s;;;0.000000;10.000000
(check_ping이나 check_ssh는 플러그인으로 /usr/local/nagios/libexec 경로에서 확인하실 수 있습니다.
각 플러그인에 대한 자세한 사용법은 공식 문서 참고를 권장드립니다.)
호스트 파일 생성 및 등록
이제 모니터링 대상 호스트를 등록을 하는 단계입니다,
/usr/local/nagios/etc/objects 경로에 원하시는 파일 이름으로 cfg 형식의 파일을 생성하고, 아래 예시처럼 호스를 등록합니다.
# linux-host.cfg
define host {
use linux-server
host_name linux-2
}
그리고 nagios.cfg 메인 설정 파일에 위에서 생성한 설정 파일 경로를 등록해 줍니다
cfg_file=/usr/local/nagios/etc/objects/linux-host.cfg
모니터링 확인
네. 이제 설정은 끝났습니다.
마지막으로 nagios 재구동 한번 해주고 페이지에서 정상적으로 모니터링이 되는지 확인해 봅니다.
잘 등록이 되었네요
그럼 여기서 linux-2 서버를 한번 꺼보겠습니다.
예상대로 down으로 변경이 되었네요, ㅎㅎ
이번 포스팅은 간단하게 호스트 모니터링을 하는 방법에 대해 알아보았습니다. 감사합니다~
'IT > 모니터링' 카테고리의 다른 글
[Grafana] admin 계정 패스워드 초기화 (0) | 2020.11.04 |
---|---|
[Linux] ELK 설치 - 1. ElasticSearch 설치 (0) | 2020.06.29 |
[모니터링] Nagios(나기오스) - 서비스 모니터링 등록 (0) | 2020.06.19 |
[모니터링] Nagios(나기오스) 모니터링 설치 (3) | 2020.05.24 |
[모니터링] 1. InfluxDB + Telegraf + Grafana 설치(CentOS7) (0) | 2020.05.03 |