모니터링 서버 설치 · 13 min read · Nov 02, 2025
생산 준비가 완료된 Naemon 모니터링 서버 설치 방법
Naemon은 빠르고 안정적이며 혁신적인 새로운 모니터링 스위트로, 네트워크 및 애플리케이션 상태를 명확하게 볼 수 있도록 설계되었습니다. 이는 nagios 서버의 대체품이며 매우 안정적이며 thruk이라는 놀라운 대시보드를 사용합니다. Naemon 설정은 매우 쉽고 실시간 상태가 내장되어 있습니다. 이 튜토리얼에서는 pnp4nagios와 함께 생산 환경에서 naemon을 설치하고 구성하는 방법을 보여드리겠습니다. Naemon은 매우 안정적이며 대규모 환경에서 구성 파일을 유지 관리하는 방법도 보여드리겠습니다.
이 튜토리얼에서는 네 대의 서버를 사용할 것입니다.
- 192.168.1.170 - Naemon 서버 - centos 7
- 192.168.1.21 - nrpe 클라이언트 - centos 6
- 192.168.1.182 - nrpe 클라이언트 - ubuntu
- 192.168.1.75 - nscp 클라이언트 - windows server 2012R2
Naemon 서버 설치
저는 SELinux가 비활성화되고 firewalld가 활성화된 최소 설치의 CentOS 7 호스트를 사용하고 있습니다.
[root@naemon ~]# sestatus
SELinux status: disabled
[root@naemon ~]#레포 설치:
[root@naemon ~]# yum -y install https://labs.consol.de/repo/stable/rhel7/x86_64/labs-consol-stable.rhel7.noarch.rpmepel 레포 활성화:
yum -y install epel-releaseNaemon 패키지 설치:
[root@naemon ~]# yum install naemon*Naemon은 호스트를 모니터링하기 위해 동일한 Nagios 플러그인과 nrpe를 사용합니다. 이제 이를 설치하겠습니다:
[root@naemon ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y방화벽 규칙을 추가하겠습니다:
[root@naemon ~]# firewall-cmd --add-service=http --permanent
success
[root@naemon ~]# firewall-cmd --add-service=https --permanent
success
[root@naemon ~]# firewall-cmd --reload
success
[root@naemon ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eno16777736
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[root@naemon ~]#
pnp4nagios 설치.
yum install gcc-c++ rrdtool perl-Time-HiRes perl-rrdtool php-gd php php-cli wgetpnp4nagios 다운로드.
[root@naemon ~]# wget https://svwh.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
[root@naemon ~]# tar -zxvf pnp4nagios-0.6.25.tar.gz
[root@naemon ~]# cd pnp4nagios-0.6.25/
[root@naemon pnp4nagios-0.6.25]# ./configure --with-nagios-user=naemon --with-nagios-group=naemon
[root@naemon pnp4nagios-0.6.25]# make all
[root@naemon pnp4nagios-0.6.25]# make fullinstall
[root@naemon pnp4nagios-0.6.25]# make install-webconf
[root@naemon pnp4nagios-0.6.25]# make install-config
[root@naemon pnp4nagios-0.6.25]# make install-init
서비스를 재시작하고 활성화합니다.
[root@naemon ~]# systemctl enable httpd && systemctl restart httpd
[root@naemon ~]# systemctl enable naemon && systemctl restart naemon
[root@naemon ~]# systemctl enable thruk && systemctl restart thruk
[root@naemon ~]# systemctl enable npcd && systemctl restart npcd
http://192.168.1.170/thruk에서 URL에 접근할 수 있어야 합니다.

기본 사용자 이름은 thrukadmin이며, 비밀번호는 thrukadmin입니다.
thrukadmin 비밀번호를 변경하려면 다음을 실행하십시오:
[root@naemon ~]# htpasswd /etc/thruk/htpasswd thrukadmin노드를 모니터링하기 위한 모니터링 클라이언트 설치
리눅스 호스트 모니터링을 위한 nrpe 클라이언트 설치
192.168.1.21 - nrpe 클라이언트 - centos 6
Nagios 플러그인 및 nrpe 클라이언트 설치:
[root@centos6 ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -ynrpe.cfg의 백업을 만듭니다:
[root@centos6 ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkpnrpe.conf 파일의 내용을 아래 내용으로 교체합니다:
[root@centos6 ~]# cat /etc/nagios/nrpe.cfg
log_facility=daemon
pid_file=/var/run/nrpe/nrpe.pid
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=127.0.0.1,192.168.1.170
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nrpe.d/
[root@centos6 ~]#
allowed_host 아래에 naemon 서버의 IP 주소인 192.168.1.170을 추가합니다.
이제 nrpe 서비스를 재시작해야 합니다:
[root@centos6 ~]# service nrpe restart
[root@centos6 ~]# chkconfig nrpe on
192.168.1.182 - nrpe 클라이언트 - ubuntu
root@ubuntu:~# apt-get install nagios-nrpe-server nagios-plugins -ynrpe.cfg의 백업을 만듭니다:
[root@ubuntu ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkpnrpe.conf 파일의 내용을 아래 내용으로 교체합니다:
root@ubuntu:~# cat /etc/nagios/nrpe.cfg
log_facility=daemon
pid_file=/var/run/nagios/nrpe.pid
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1,192.168.1.170
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nagios/nrpe.d/
root@ubuntu:~#
이제 nrpe 서비스를 재시작해야 합니다:
root@ubuntu:~# systemctl restart nagios-nrpe-server.service
root@ubuntu:~# systemctl enable nagios-nrpe-server.service
Windows에서 Nscp 설치
192.168.1.75 - nscp 클라이언트 - windows server 2012R2
이 웹사이트에서 nscp를 다운로드합니다:
https://www.nsclient.org/download/
다운로드가 완료되면 설치 스크린샷을 따르십시오.

일반을 선택하십시오.

전체를 선택하십시오:

기본 경로를 선택하십시오:

이제 allowed hosts 아래에 naemon 호스트를 추가하십시오. 여기서 설정은 192.168.1.170입니다.
복잡한 비밀번호를 제공해야 합니다. 이 예제에서는 비밀번호를 “howtoforge”로 사용했습니다. 다음으로 nsclient 및 nrpe를 활성화하십시오.


설치가 완료되면 서비스가 실행 중인지 확인하십시오.
이제 naemon 호스트에서 유효성을 검사하여 도달할 수 있는지 확인합니다.
Naemon 서버에서 nrpe 및 nscp 유효성 검사
[root@naemon ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.182
NRPE v2.15
[root@naemon ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.21
NRPE v2.15
[root@naemon ~]#
[root@naemon ~]# /usr/lib64/nagios/plugins/check_nt -H 192.168.1.75 -p 12489 -v CLIENTVERSION -s 'howtoforge'
NSClient++ 0.5.0.62 2016-09-14
[root@naemon ~]#
서버 모니터링
이 튜토리얼에서는 서버 성능을 모니터링합니다.
생산 환경에서는 CPU, 메모리 및 하드디스크 사용량과 함께 호스트 생존 확인을 모니터링해야 합니다.
nrpe conf /etc/nrpe.d/base.cfg에 다음 줄 추가
192.168.1.21 - nrpe 클라이언트 - centos 6
[root@centos6 ~]# cat /etc/nrpe.d/base.cfg
command[check_disks]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -X nfs -X cifs -X none -X tmpfs -w $ARG1$ -c $ARG2$
command[memory]=/usr/lib64/nagios/plugins/check_memory -w $ARG1$ -c $ARG2$
command[load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
command[check_procs_c]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -C $ARG2$
command[check_procs_a]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -a $ARG2$
파일을 저장하고 재시작한 후 nrpe를 재시작합니다.
[root@centos6 ~]# /etc/init.d/nrpe restart
Shutting down nrpe: [FAILED]
Starting nrpe: [ OK ]
[root@centos6 ~]#
메모리 플러그인은 기본 플러그인으로 제공되지 않습니다. 아래 플러그인을 사용하겠습니다.
[root@centos6 ~]# cd /usr/lib64/nagios/plugins/
[root@centos6 plugins]# vim check_memory
아래 내용을 추가합니다.
#! /usr/bin/perl -w
##Included Perf data
#The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute
#copies of the plugins under the terms of the GNU General Public License.
#
use strict;
use Getopt::Long;
my ($opt_f, $opt_h, $opt_c, $opt_w);
my ($result, $message, $ram_percent);
my $PROGNAME="check_memory";
$opt_f = "";
Getopt::Long::Configure('bundling');
GetOptions(
"h" => \$opt_h, "help" => \$opt_h,
"c=s" => \$opt_c, "Warning_Percentage" => \$opt_c,
"w=s" => \$opt_w, "Critical_Percentage" => \$opt_w,
);
if ($opt_h) {
&print_help();
exit 0;
}
$opt_w = shift unless ($opt_w);
$opt_c = shift unless ($opt_c);
if (! $opt_c && ! $opt_w) {
print "Warning and Critical must be specified\n";
exit 3;
}
if ($opt_c <= $opt_w){
print "Critical must be greater than Warning CRITICAL: \$opt_c WARNING: \$opt_w\n";
exit 3;
}
$result = 'OK';
open(FREE_M, "free -m|");
while (my $line = ){
if ($line =~ /^Mem/){
my ($junk,$total_mem,$used_mem,$free_mem,$shared_mem,$buffered_mem,$cached_mem)=split(/\s+/,$line);
$ram_percent=int(($total_mem-($free_mem+$cached_mem+$buffered_mem))/$total_mem*100*100)/100;
}
}
close(FREE_M);
if ($ram_percent > $opt_c){
print "Memory usage is: CRITICAL: \\${ram_percent}% used | used=\$ram_percent;\$opt_w;\$opt_c\n";
exit 2;
}elsif ($ram_percent > $opt_w) {
print "Memory usage is: WARNING: \\${ram_percent}% used | used=\$ram_percent;\$opt_w;\$opt_c\n";
exit 1;
}
else{
print "Memory usage is: \$result: \\${ram_percent}% used | used=\$ram_percent;\$opt_w;\$opt_c\n";
exit 0;
}
sub print_usage () {
print "Usage:\n";
print " \$PROGNAME -f \n";
print " \$PROGNAME -c \n";
print " \$PROGNAME -w \n";
print " \$PROGNAME [-h | --help]\n";
print " \$PROGNAME [-V | --version]\n";
}
sub print_help () {
print << EOF;
\$PROGNAME v1.0.01
The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute
copies of the plugins under the terms of the GNU General Public License.
EOF
&print_usage();
print "\n";
exit 3;
}
check_memory 플러그인 다운로드 링크
파일에 실행 권한을 부여해야 합니다:
[root@centos6 plugins]# chmod 755 check_memorynrpe conf /etc/nagios/nrpe.d/base.cfg에 다음 줄 추가
192.168.1.182 - nrpe 클라이언트 - ubuntu
여기서 파일 경로는 다릅니다:
플러그인 폴더는 lib이고 lib64가 아닙니다.
root@ubuntu:~# cat /etc/nagios/nrpe.d/base.cfg
command[check_disks]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
command[check_disk]=/usr/lib/nagios/plugins/check_disk -X nfs -X cifs -X none -X tmpfs -w $ARG1$ -c $ARG2$
command[memory]=/usr/lib/nagios/plugins/check_memory -w $ARG1$ -c $ARG2$
command[load]=/usr/lib/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
command[check_procs_c]=/usr/lib/nagios/plugins/check_procs -c $ARG1$ -C $ARG2$
command[check_procs_a]=/usr/lib/nagios/plugins/check_procs -c $ARG1$ -a $ARG2$
check_memory 스크립트를 /usr/lib/nagios/plugins에 추가합니다.
root@ubuntu:~# vim /usr/lib/nagios/plugins/check_memory
root@ubuntu:~# chmod 755 /usr/lib/nagios/plugins/check_memory
root@ubuntu:~# systemctl restart nagios-nrpe-server.service
root@ubuntu:~#
Naemon 서버에서 구성
naemon 사용자로 로그인:
[root@naemon ~]# su - naemon
Last login: Thu Mar 9 17:11:39 CET 2017 on pts/0
-sh-4.2$
/etc/naemon/naemon.cfg에서 관리자 이메일을 변경합니다.
........
........
[email protected]
[email protected]
........
............이제 /etc/naemon/conf.d에서 체크를 수행하기 위한 사용자 정의 명령을 구성하겠습니다.
custom_commands.cfg라는 사용자 정의 명령을 만들고 아래 내용을 추가합니다.
$ vim /etc/naemon/conf.d/custom_commands.cfg## 호스트 생존 확인 ##
# command 'check_icmp Host Alive'
define command{
command_name host_alive
command_line $USER1$/check_icmp -H $HOSTADDRESS$ -n 1 -w 3000.00,80% -c 5000.00,100%
}
### 서비스 명령 ##
# command 'check_nrpe_disks'
define command{
command_name check_nrpe_disks
command_line $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c check_disks -a $ARG1$ $ARG2$ $ARG3$
}
# command 'nrpe'
define command{
command_name nrpe
command_line $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c $ARG1$
}
# NRPE With Arguements
define command{
command_name check_nrpe_a
command_line $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$
}
#####################################
# Windows NSClient++ Checks
# command 'check_nt'
define command{
command_name nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s $USER4$
}
안전성을 위해 /etc/naemon/resource.cfg에 nscp 클라이언트 비밀번호를 저장합니다.
...........
...........
$USER4$=howtoforge
...........
............이제 호스트 구성을 정의해야 합니다.
linux.cfg라는 파일을 생성합니다.
$ vim /etc/naemon/conf.d/linux.cfgdefine host {
host_name centos6.sunil.cc
alias Centos
address 192.168.1.21
use linux-server
hostgroups linux-servers
}
define host {
host_name ubuntu.sunil.cc
alias Ubuntu
address 192.168.1.182
use linux-server
hostgroups linux-servers
}
Windows 호스트에 대해서도 동일하게 진행합니다.
$ vim /etc/naemon/conf.d/windows.cfgdefine host {
host_name ad.sunil.cc
alias My Windows Server
address 192.168.1.75
use windows-server
}
define hostgroup {
hostgroup_name windows-servers
alias Windows Servers
}
이제 서비스 구성을 정의해야 합니다.
$ vim linux_services.cfgdefine service {
service_description Disks Status
hostgroup_name linux-servers
use generic-service
check_command check_nrpe_a!check_disk!15%!5%
}
define service{
use generic-service
hostgroup_name linux-servers
service_description Load Average
check_command check_nrpe_a!load!30,25,20!45,40,35
}
define service{
use generic-service
hostgroup_name linux-servers
service_description Memory Usage
check_command check_nrpe_a!memory!80!90
}
Windows에 대해서도 유사한 구성을 생성합니다.
$ vim window_services.cfgdefine service{
use generic-service
hostgroup_name windows-servers
service_description Disk - C:
check_command nt!USEDDISKSPACE!-l c -w 80 -c 90
}
define service{
use generic-service
hostgroup_name windows-servers
service_description Load Average
check_command nt!CPULOAD!-l 60,90,95
}
define service{
use generic-service
hostgroup_name windows-servers
service_description Memory Usage
check_command nt!MEMUSE!-w 90 -c 95
}
이제 연락처 이메일 주소를 변경합니다.
$ vim contacts.cfgdefine contact {
contact_name naemonadmin ; Short name of user
alias Naemon Admin ; Full name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
email [email protected] ; <<*** CHANGE THIS TO YOUR EMAIL ADDRESS ****
}
이제 필요하지 않은 구성 파일을 제거합니다.
$ mv switch.cfg switch.cfg.bkp$ mv printer.cfg printer.cfg.bkp구성을 검증합니다.
$ naemon -v /etc/naemon/naemon.cfg
Naemon Core 1.0.6-pkg
Copyright (c) 2013-present Naemon Core Development Team and Community Contributors
Copyright (c) 2009-2013 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
License: GPL
Website: http://www.naemon.org
Reading configuration data...
Read main config file okay...
Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
Checked 20 services.
Checked 4 hosts.
Checked 1 contacts.
Checked 2 host groups.
Checked 0 service groups.
Checked 1 contact groups.
Checked 29 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 4 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
-sh-4.2$
root로 로그인하고 naemon 서비스를 재시작합니다.
[root@naemon conf.d]# systemctl restart naemon
[root@naemon conf.d]# systemctl status naemon
? naemon.service - Naemon Monitoring Daemon
Loaded: loaded (/usr/lib/systemd/system/naemon.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2017-03-09 19:14:36 CET; 7s ago
Docs: http://naemon.org/documentation
Process: 5112 ExecStart=/usr/bin/naemon --daemon /etc/naemon/naemon.cfg (code=exited, status=0/SUCCESS)
Process: 5110 ExecStartPre=/usr/bin/chown -R naemon:naemon /var/run/naemon/ (code=exited, status=0/SUCCESS)
Process: 5108 ExecStartPre=/usr/bin/mkdir /var/run/naemon (code=exited, status=1/FAILURE)
Main PID: 5114 (naemon)
CGroup: /system.slice/naemon.service
??5114 /usr/bin/naemon --daemon /etc/naemon/naemon.cfg
??5115 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
??5116 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
??5117 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
??5118 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
??5119 /usr/bin/naemon --daemon /etc/naemon/naemon.cfg
Mar 09 19:14:36 naemon.sunil.cc systemd[1]: Starting Naemon Monitoring Daemon...
Mar 09 19:14:36 naemon.sunil.cc systemd[1]: Failed to read PID from file /var/run/naemon/naemon.pid: Invalid argument
Mar 09 19:14:36 naemon.sunil.cc systemd[1]: Started Naemon Monitoring Daemon.
[root@naemon conf.d]#
대시보드에 로그인하면 서비스가 실행 중인 것을 확인할 수 있습니다.
우리는 Ubuntu 호스트에서 서비스가 실패하는 것을 봅니다.
Ubuntu용으로 컴파일된 nrpe 패키지가 보안 취약성으로 인해 인수 사용이 비활성화된 것으로 보이며, 이것이 실패하는 이유입니다.패키지를 다시 컴파일하여 인수를 활성화해야 하며, naemon에서 조정할 수 있도록 해야 합니다.
아래 링크에서는 어떻게 다시 컴파일할 수 있는지 보여줍니다. 이 사이트에서 인수가 활성화된 이미 컴파일된 패키지를 찾을 수도 있습니다. 이 튜토리얼에서는 이 미리 컴파일된 패키지를 사용할 것입니다.
https://www.claudiokuenzler.com/blog/626/nrpe-debian-jessie-command-ags-arguments-not-working-errorroot@ubuntu:~# wget https://www.claudiokuenzler.com/downloads/nrpe/nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb패키지를 설치합니다.
root@ubuntu:~# dpkg -i nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb
(Reading database ... 79576 files and directories currently installed.)
Preparing to unpack nagios-nrpe-server (2.15-1ubuntu2) over (2.15-1ubuntu1) ...
Unpacking nagios-nrpe-server (2.15-1ubuntu2) ...
Setting up nagios-nrpe-server (2.15-1ubuntu2) ...
Processing triggers for systemd (229-4ubuntu16) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for man-db (2.7.5-1) ...
root@ubuntu:~#
NRPE를 재시작합니다.
root@ubuntu:~# systemctl restart nagios-nrpe-server.service이제 우리는 naemon을 사용하여 모든 호스트를 모니터링하고 있습니다.
pnp4nagios 구성
성능 그래프를 위해 pnp4nagios를 구성해야 합니다.
이제 thruk 대시보드와 동일한 인증 방법을 사용할 것이므로, 먼저 파일의 백업을 만들고 다음 줄을 변경합니다.
[root@naemon conf.d]# cd /etc/httpd/conf.d/
[root@naemon conf.d]# cp pnp4nagios.conf pnp4nagios.conf.bkp
[root@naemon share]# cat /etc/httpd/conf.d/pnp4nagios.conf
# SAMPLE CONFIG SNIPPETS FOR APACHE WEB SERVER
Alias /pnp4nagios "/usr/local/pnp4nagios/share"
AllowOverride None
Order allow,deny
Allow from all
#
# Use the same value as defined in nagios.conf
#
AuthName "Thruk Access"
AuthType Basic
AuthUserFile /etc/thruk/htpasswd
Require valid-user
# Turn on URL rewriting
RewriteEngine On
Options symLinksIfOwnerMatch
# Installation directory
RewriteBase /pnp4nagios/
# Protect application and system files from being viewed
RewriteRule "^(?:application|modules|system)/" - [F]
# Allow any files or directories that exist to be displayed directly
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteCond "%{REQUEST_FILENAME}" !-d
# Rewrite all other URLs to index.php/URL
RewriteRule "^.*$" "index.php/$0" [PT]
[root@naemon share]#
[root@naemon conf.d]# systemctl restart httpd.service
이제 pnp4nagios의 구성 파일을 변경해야 합니다.
[root@naemon share]# cd /usr/local/pnp4nagios/share/
[root@naemon share]# mv install.php install.php.txt
이제 pnp4nagios의 구성 파일을 변경해야 합니다.
구성 파일에서 nagios를 naemon으로 변경합니다.
[root@naemon conf.d]# vi /usr/local/pnp4nagios/etc/config_local.php
............................
................................
$conf['nagios_base'] = "/naemon/cgi-bin";
..................................
............................성능 데이터를 0에서 1로 활성화합니다.
[root@naemon conf.d]# vi /etc/naemon/naemon.cfg
.....................
.....................
process_performance_data=1
......................
......................naemon.conf의 맨 아래에 다음 줄을 추가합니다.
[root@naemon conf.d]# vi /etc/naemon/naemon.cfg#
# 서비스 성능 데이터
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::\$TIMET$\tHOSTNAME::\$HOSTNAME$\tSERVICEDESC::\$SERVICEDESC$\tSERVICEPERFDATA::\$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::\$SERVICECHECKCOMMAND$\tHOSTSTATE::\$HOSTSTATE$\tHOSTSTATETYPE::\$HOSTSTATETYPE$\tSERVICESTATE::\$SERVICESTATE$\tSERVICESTATETYPE::\$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
#
#
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::\$TIMET$\tHOSTNAME::\$HOSTNAME$\tHOSTPERFDATA::\$HOSTPERFDATA$\tHOSTCHECKCOMMAND::\$HOSTCHECKCOMMAND$\tHOSTSTATE::\$HOSTSTATE$\tHOSTSTATETYPE::\$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
이제 custom_commands.conf에 다음 줄을 추가해야 합니다.
[root@naemon conf.d]# vim /etc/naemon/conf.d/custom_commands.cfg
define command{
command_name process-service-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.\$TIMET$
}
define command{
command_name process-host-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.\$TIMET$
}
이제 서비스 성능 및 호스트 성능 그래프에 대한 템플릿을 생성합니다.
$ cd /etc/naemon/conf.d/templates/
$ cat pnp.cfg
define host {
name host-pnp
process_perf_data 1
action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name service-pnp
process_perf_data 1
action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=\$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=\$SERVICEDESC$
register 0
}
서비스에 대한 성능 그래프에 접근하려면, service.cfg 파일을 업데이트해야 합니다.
$ cat linux_services.cfg
define service {
service_description Disks Status
hostgroup_name linux-servers
use generic-service,service-pnp ; Name of service template to use
check_command check_nrpe_a!check_disk!15%!5%
}
define service{
use generic-service,service-pnp
hostgroup_name linux-servers
service_description Load Average
check_command check_nrpe_a!load!30,25,20!45,40,35
}
define service{
use generic-service,service-pnp
hostgroup_name linux-servers
service_description Memory Usage
check_command check_nrpe_a!memory!80!90
}
$ cat window_services.cfg
define service{
use generic-service,service-pnp
hostgroup_name windows-servers
service_description Disk - C:
check_command nt!USEDDISKSPACE!-l c -w 80 -c 90
}
define service{
use generic-service,service-pnp
hostgroup_name windows-servers
service_description Load Average
check_command nt!CPULOAD!-l 60,90,95
}
define service{
use generic-service,service-pnp
hostgroup_name windows-servers
service_description Memory Usage
check_command nt!MEMUSE!-w 90 -c 95
}
호스트 그래프를 확인하려면, 아래 파일에 포함해야 합니다.
$ cat linux.cfg
define host {
host_name centos6.sunil.cc
alias Centos
address 192.168.1.21
use linux-server,host-pnp
hostgroups linux-servers
}
define host {
host_name ubuntu.sunil.cc
alias Ubuntu
address 192.168.1.182
use linux-server,host-pnp
hostgroups linux-servers
}
$ cat windows.cfg
define host {
host_name ad.sunil.cc
alias My Windows Server
address 192.168.1.75
use windows-server,host-pnp
}
define hostgroup {
hostgroup_name windows-servers
alias Windows Servers
}
구성을 검증합니다.
$ naemon -v /etc/naemon/naemon.cfg
Naemon Core 1.0.6-pkg
Copyright (c) 2013-present Naemon Core Development Team and Community Contributors
Copyright (c) 2009-2013 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
License: GPL
Website: http://www.naemon.org
Reading configuration data...
Read main config file okay...
Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
Checked 20 services.
Checked 4 hosts.
Checked 1 contacts.
Checked 2 host groups.
Checked 0 service groups.
Checked 1 contact groups.
Checked 31 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 4 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
서비스를 재시작합니다.
[root@naemon ~]# systemctl enable npcd
npcd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig npcd on
[root@naemon ~]# systemctl restart npcd
[root@naemon ~]# systemctl restart naemon


새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.

