nagios - (시스템 및 네트워크 모니터링) 리눅스 서버 모니터링 설정하기(모니터링측)
nagios - (시스템 및 네트워크 모니터링) 리눅스 서버 모니터링 설정하기(모니터링측)
저번시간에 원격지에서 진행하였으니 이번시간에는 모니터링 측에서 진행하다록 하겠습니다.
APM 설치 관련글 :
APM 컴파일 설치방법 - http://server-talk.tistory.com/59
APM YUM 설치방법 - http://server-talk.tistory.com/174
관련글 :
오픈소스 서버 모니터링 툴 - http://server-talk.tistory.com/120
Nagios 구성파일 알아보기 - http://server-talk.tistory.com/193
이전글 :
nagios - (시스템 및 네트워크 모니터링) 설치하기 - http://server-talk.tistory.com/157
nagios - (시스템 및 네트워크 모니터링) 로컬호스트 모니터링 설정하기 - http://server-talk.tistory.com/192
nagios - (시스템 및 네트워크 모니터링) 리눅스 서버 모니터링 설정하기(원격지측) - http://server-talk.tistory.com/180
원격지측 Nagios NRPE 컴파일 설치하기 |
1. Nagios NRPE 압축해제
[root@nagios ~]# tar zxvf nrpe-2.13.tar.gz
2. Nagios Plugin 컴파일 설치하기
[root@nagios ~]# tar zxvf tar zxf nrpe-2.13.tar.gz [root@nagios ~]# cd nrpe-2.13 [root@nagios ~]# ./configure ; make all ; make install-plugin ; make install-daemon ; make install-daemon-config ; make install-xinetd
모니터링측 Nagios NRPE 데몬 설정하기 |
1. Nagios 모니터링에 필요한 xinetd 설정하기
Nagios NRPE IP 설정
[root@nagios ~]# vi /etc/xinetd.d/nrpe
# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 [원격지측 서버IP 입력]
}
vi /etc/xinetd/nrpe 파일의 only_from에 원격지측의 IP주소를 입력 합니다.
3. 원격지측 서버 통신테스트
[root@client ~]# /usr/local/nagios/libexec/check_nrpe -H [원격지측 서버의IP] NRPE v2.13
NRPE를 이용한 원격지측서버와 통신이 잘되지는 확인하는 테스트입니다.
Nagios 원격서버 장치 추가하기 |
원격지측 서버를 모니터링 하기 위해선 새로운 config파일을 생성하여 추가하여도 되며, 현재 사용하고 있는 config파일을 복사하여 원격지측 서버의 정보로 수정하여도 됩니다 저는 여기서 현재 사용중은 설정파일을 가지고 수정하도록 하겠습니다.
1. 설정파일 복사
[root@server ~]# cd /usr/local/nagios/etc/objects/ [root@server objects]# ls commands.cfg contacts.cfg localhost.cfg localhost.cfg_bak printer.cfg switch.cfg templates.cfg timeperiods.cfg windows.cfg [root@server objects]# cp -rp localhost.cfg remote.cfg
nagios/etc/objects의 디렉토리로 이동하면 localhost.cfg의 파일이 있으며 파일의 내용을 복사합니다.
2. 설정파일 내용 수정
1) vi remote.cfg
[root@server ~]# vi /usr/local/nagios/etc/objects/remote.cfg ############################################################################### # LOCALHOST.CFG - SAMPLE OBJECT CONFIG FILE FOR MONITORING THIS MACHINE # # # NOTE: This config file is intended to serve as an *extremely* simple # example of how you can create configuration entries to monitor # the local (Linux) machine. # ############################################################################### ############################################################################### ############################################################################### # # HOST DEFINITION # ############################################################################### ############################################################################### # Define a host for the local machine define host{ use linux-server ; Name of host template to use ; This host definition will inherit all variables that are defined ; in (or inherited by) the linux-server host template definition. host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 alias remote address 192.168.65.134 ; 원격지측 서버의 IP } ############################################################################### ############################################################################### # # HOST GROUP DEFINITION # ############################################################################### ############################################################################### # Define an optional hostgroup for Linux machines #define hostgroup{ # hostgroup_name linux-servers ; The name of the hostgroup # alias Linux Servers ; Long name of the group # members localhost ; Comma separated list of hosts that belong to this group # } ############################################################################### ############################################################################### # # SERVICE DEFINITIONS # ############################################################################### ############################################################################### # Define a service to "ping" the local machine define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description PING check_command check_ping!100.0,20%!500.0,60% } # Define a service to check the disk space of the root partition # on the local machine. Warning if < 20% free, critical if # < 10% free space on partition. define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description Root Partition check_command check_local_disk!20%!10%!/ } # Define a service to check the number of currently logged in # users on the local machine. Warning if > 20 users, critical # if > 50 users. define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description Current Users check_command check_local_users!20!50 } # Define a service to check the number of currently running procs # on the local machine. Warning if > 250 processes, critical if # > 400 processes. define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description Total Processes check_command check_local_procs!250!400!RSZDT } # Define a service to check the load on the local machine. define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description Current Load check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 } # Define a service to check the swap usage the local machine. # Critical if less than 10% of swap is free, warning if less than 20% is free define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description Swap Usage check_command check_local_swap!20!10 } # Define a service to check SSH on the local machine. # Disable notifications for this service by default, as not all users may have SSH enabled. define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description SSH check_command check_ssh notifications_enabled 0 } # Define a service to check HTTP on the local machine. # Disable notifications for this service by default, as not all users may have HTTP enabled. define service{ use local-service ; Name of service template to use host_name remote_server ; 나기오스 상에서 웹페이지의 띄울 장치(서버의)이름 service_description HTTP check_command check_http notifications_enabled 0 }
remote.cfg는 원격지측의 서버의 설정하는 내용입니다.
host_name은 나기오스 상에서 웹페이지를 띄울 내용입니다 또한 address는 원격지측 서버의 IP를 입력합니다. 그리고 모니터링을 원하는 프로세스의 host_name를 최상단의 선언한 host_name으로 변경하셔야 되며, 모니터링을 하지않을 서비스의 프로세스는 주석처리하시면 됩니다.
2) nagios.cfg
[root@server ~]# vi /usr/local/nagios/etc/nagios.cfg * * * * # Definitions for monitoring the local (Linux) host cfg_file=/usr/local/nagios/etc/objects/localhost.cfg cfg_file=/usr/local/nagios/etc/objects/remote.cfg * * * *
위에서 생성한 remote.cfg 파일을 나기오스 상에서 설정하는 부분입니다
cfg_file=/usr/local/nagios/etc/objects/remote.cfg를 추가하여 주시면 됩니다.
3. Nagios 설정정보 반영
[root@server ~]# service nagios reload [root@server ~]# service nagios restart
웹브라우저로 나기오스를 접속하시면 remote_server가 추가된것을 확인하실 수 있습니다.