Si të instaloni një server Monitorimi Naemon gati për prodhim
Naemon është kompleti i ri i monitorimit që synon të jetë i shpejtë, i qëndrueshëm dhe inovativ duke ju dhënë një pamje të qartë të gjendjes së rrjetit dhe aplikacioneve tuaja. Ky është një zëvendësim për serverin nagios dhe shumë i qëndrueshëm dhe përdor një panel kontrolli mahnitës të quajtur thruk. Vendosja e naemon është shumë e lehtë dhe ka status live inbuild. Në këtë tutorial, unë do t'ju tregoj se si të instaloni dhe konfiguroni naemon në një mjedis prodhimi së bashku me pnp4nagios për grafikë. Naemon është shumë i qëndrueshëm, unë do t'ju tregoj se si t'i mirëmbani konfigurimet në një mjedis në shkallë të gjerë.
Në këtë tutorial, unë do të përdor katër serverë
- 192.168.1.170 - Serveri Naemon - centos 7
- 192.168.1.21 - klienti nrpe - centos 6
- 192.168.1.182 - klienti nrpe - ubuntu
- 192.168.1.75 - klienti nscp - serveri i Windows 2012R2
Instalimi i serverit Naemon
Unë jam duke përdorur një host CentOS 7 me një instalim minimal, SELinux i çaktivizuar dhe muri i zjarrit i aktivizuar.
[ ~]# sestatus
SELinux status: disabled
[ ~]#
Instalimi i repos:
[ ~]# yum -y install https://labs.consol.de/repo/stable/rhel7/x86_64/labs-consol-stable.rhel7.noarch.rpm
duke mundësuar repo epel:
yum -y install epel-release
Instalimi i paketës Naemon:
[ ~]# yum install naemon*
Naemon përdor të njëjtën shtojcë Nagios dhe nrpe për të monitoruar hostet. Tani do t'i instalojmë ato:
[ ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y
Ne do të shtojmë rregullat e murit të zjarrit:
[ ~]# firewall-cmd --add-service=http --permanent
success
[ ~]# firewall-cmd --add-service=https --permanent
success
[ ~]# firewall-cmd --reload
success
[ ~]# 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:
[ ~]#
Instalimi i pnp4nagios.
yum install gcc-c++ rrdtool perl-Time-HiRes perl-rrdtool php-gd php php-cli wget
Po shkarkohet pnp4nagios.
[ ~]# wget https://svwh.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
[ ~]# tar -zxvf pnp4nagios-0.6.25.tar.gz
[ ~]# cd pnp4nagios-0.6.25/
[ pnp4nagios-0.6.25]# ./configure --with-nagios-user=naemon --with-nagios-group=naemon
[ pnp4nagios-0.6.25]# make all
[ pnp4nagios-0.6.25]# make fullinstall
[ pnp4nagios-0.6.25]# make install-webconf
[ pnp4nagios-0.6.25]# make install-config
[ pnp4nagios-0.6.25]# make install-init
Rinisja dhe aktivizimi i shërbimit.
[ ~]# systemctl enable httpd && systemctl restart httpd
[ ~]# systemctl enable naemon && systemctl restart naemon
[ ~]# systemctl enable thruk && systemctl restart thruk
[ ~]# systemctl enable npcd && systemctl restart npcd
ju duhet të jeni në gjendje të hyni në URL nga http://192.168.1.170/thruk
Emri i parazgjedhur i përdoruesit është thrukadmin, fjalëkalimi është thrukadmin.
Në rast se dëshironi të ndryshoni fjalëkalimin e thrukadmin, ekzekutoni:
[ ~]# htpasswd /etc/thruk/htpasswd thrukadmin
Instalimi i Klientit Monitorues për të monitoruar nyjet
Instalimi i klientëve nrpe për monitorimin e hosteve Linux
192.168.1.21 - nrpe klient - centos 6
Instalimi i shtojcës Nagios dhe klientit nrpe:
[ ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y
Merrni një kopje rezervë të nrpe.cfg:
[ ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp
Zëvendësoni përmbajtjen e skedarit nrpe.conf me përmbajtjen e mëposhtme:
[ ~]# 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/
[ ~]#
Nën allow_host shtoni adresën ipad të serverit naemon këtu është 192.168.1.170.
Tani duhet të rifillojmë shërbimin nrpe:
[ ~]# service nrpe restart
[ ~]# chkconfig nrpe on
192.168.1.182 - klienti nrpe - ubuntu
:~# apt-get install nagios-nrpe-server nagios-plugins -y
Merrni një kopje rezervë të nrpe.cfg:
[ ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp
Zëvendësoni përmbajtjen e skedarit nrpe.conf me përmbajtjen e mëposhtme:
:~# 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/
:~#
Tani duhet të rinisim shërbimin nrpe:
:~# systemctl restart nagios-nrpe-server.service
:~# systemctl enable nagios-nrpe-server.service
Instalimi i Nscp në Windows
192.168.1.75 - klienti nscp - serveri i Windows 2012R2
Shkarkoni nscp nga kjo faqe interneti:
Pasi të keni shkarkuar, ju lutemi ndiqni pamjet e instalimit
Zgjidhni gjenerike.
Zgjidhni të plotë:
Zgjidhni rrugën e paracaktuar:
Tani, nën hostet e lejuar, ju lutemi shtoni hostin naemon. Këtu në konfigurimin tonë është 192.168.1.170.
Sigurohuni që të jepni një fjalëkalim kompleks. Për këtë shembull, unë kam përdorur fjalëkalimin si \howtoforge\. Kontrolloni tjetër aktivizoni nsclient dhe nrpe.
Pasi të përfundojë instalimi, ju lutemi sigurohuni që shërbimi të funksionojë.
Tani do të vërtetojmë nga hosti naemon, për t'u siguruar që jemi në gjendje ta arrijmë atë.
Vërtetoni nrpe dhe nscp nga serveri Naemon për të kontrolluar lidhjen
[ ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.182
NRPE v2.15
[ ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.21
NRPE v2.15
[ ~]#
[ ~]# /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
[ ~]#
Monitorimi i serverëve
Ne do të monitorojmë performancën e serverëve në këtë tutorial.
Në një mjedis prodhimi, do të na duhet të monitorojmë përdorimin e CPU-së, kujtesës dhe harddiskut, së bashku me kontrollin e gjallë të hostit.
Shtimi i rreshtave të mëposhtëm në nrpe conf /etc/nrpe.d/base.cfg
192.168.1.21 - nrpe klient - centos 6
[ ~]# 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$
Ruani dhe rinisni skedarin, më pas rinisni nrpe.
[ ~]# /etc/init.d/nrpe restart
Shutting down nrpe: [FAILED]
Starting nrpe: [ OK ]
[ ~]#
Shtojca e kujtesës nuk do të ofrohet si shtesë e paracaktuar. Ne do të përdorim shtojcën e mëposhtme.
[ ~]# cd /usr/lib64/nagios/plugins/
[ plugins]# vim check_memory
Shtoni përmbajtjen e mëposhtme.
#! /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;
}
Shkarkoni shtojcën check_memory të lidhjes
Ju duhet të jepni leje ekzekutimi për skedarin:
[ plugins]# chmod 755 check_memory
Shtimi i rreshtave të mëposhtëm në nrpe conf /etc/nagios/nrpe.d/base.cfg
192.168.1.182 - klienti nrpe - ubuntu
Këtu rruga e skedarit është e ndryshme:
Dosja e shtojcave është lib dhe jo lib64.
:~# 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$
Shtoni të njëjtin skript check_memory në /usr/lib/nagios/plugins.
:~# vim /usr/lib/nagios/plugins/check_memory
:~# chmod 755 /usr/lib/nagios/plugins/check_memory
:~# systemctl restart nagios-nrpe-server.service
:~#
Konfigurimi në serverin Naemon
Hyni si përdorues naemon:
[ ~]# su - naemon
Last login: Thu Mar 9 17:11:39 CET 2017 on pts/0
-sh-4.2$
Ndryshoni postën e administratorit në /etc/naemon/naemon.cfg
........
........
........
........
Tani do të konfigurojmë komandat e personalizuara për të bërë kontrollin në /etc/naemon/conf.d
Krijo një komanda të personalizuar të quajtur custom_commands.cfg me përmbajtjen e mëposhtme.
$ vim /etc/naemon/conf.d/custom_commands.cfg
## Host Alive check ##
# 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%
}
### Service Command ##
# 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$
}
Për qëllime sigurie, ruani fjalëkalimin e klientit nscp në /etc/naemon/resource.cfg
...........
...........
$USER4$=howtoforge
...........
............
Tani duhet të përcaktojmë konfigurimin e hostit.
Ne krijojmë një skedar të quajtur linux.cfg.
$ vim /etc/naemon/conf.d/linux.cfg
define 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
}
Ne bëjmë të njëjtën gjë për hostin e Windows.
$ vim /etc/naemon/conf.d/windows.cfg
define 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
}
Tani duhet të përcaktojmë konfigurimin e shërbimit.
$ vim linux_services.cfg
define 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
}
Për Windows, ne krijojmë një konfigurim të ngjashëm.
$ vim window_services.cfg
define 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
}
Tani do të ndryshojmë adresën e emailit të kontaktit.
$ vim contacts.cfg
define 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 ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}
Tani heqim konfigurimet e panevojshme që nuk kërkohen.
$ mv switch.cfg switch.cfg.bkp
$ mv printer.cfg printer.cfg.bkp
Për të vërtetuar konfigurimet.
$ 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$
Hyni si root dhe rinisni shërbimin naemon.
[ conf.d]# systemctl restart 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.
[ conf.d]#
Identifikohuni në panelin e kontrollit dhe duhet të shihni shërbimet në funksionim.
Ne shohim që shërbimet dështojnë për hostin e Ubuntu.
It is seen that nrpe package compiled for ubuntu had enable arguments disabled for security vulnerabily and that is the reason it is failing
Do të na duhet të rikompilojmë paketën për të mundësuar argumente, për të menaxhuar akordimin nga naemon.
Lidhja e mëposhtme ju tregon se si mund të ripërpilohet. Ju gjithashtu e gjeni paketën tashmë të përpiluar me argumentet e aktivizimit në këtë sajt. Unë do të përdor këtë paketë të parapërpiluar për këtë tutorial.
https://www.claudiokuenzler.com/blog/626/nrpe-debian-jessie-command-ags-arguments-not-working-error
:~# wget https://www.claudiokuenzler.com/downloads/nrpe/nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb
Instaloni paketën.
:~# 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_amd64.xenial.deb ...
Unpacking nagios-nrpe-server (2.15-1ubuntu2) over (2.15-1ubuntu1) ...
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) ...
:~#
Rinisni NRPE.
:~# systemctl restart nagios-nrpe-server.service
Tani po monitorojmë të gjithë hostet duke përdorur naemon.
Konfigurimi i pnp4nagios
Do të na duhet të konfigurojmë pnp4nagios për grafikun e performancës.
Tani do të përdorim të njëjtën metodë vërtetimi si pulti i pultit, së pari do të bëjmë një kopje rezervë të skedarit dhe do të ndryshojmë rreshtat e mëposhtëm.
[ conf.d]# cd /etc/httpd/conf.d/
[ conf.d]# cp pnp4nagios.conf pnp4nagios.conf.bkp
[ share]# cat /etc/httpd/conf.d/pnp4nagios.conf
# SAMPLE CONFIG SNIPPETS FOR APACHE WEB SERVER
Alias /pnp4nagios "/usr/local/pnp4nagios/share"
<Directory "/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]
[ share]#
[ conf.d]# systemctl restart httpd.service
Tani do të na duhet të ndryshojmë faqen e konfigurimit.
[ share]# cd /usr/local/pnp4nagios/share/
[ share]# mv install.php install.php.txt
Tani do të na duhet të ndryshojmë skedarin e konfigurimit për pnp4nagios.
Ndrysho nagios në naemon në skedarin e konfigurimit.
[ conf.d]# vi /usr/local/pnp4nagios/etc/config_local.php
............................
................................
$conf['nagios_base'] = "/naemon/cgi-bin";
..................................
............................
Aktivizo të dhënat e performancës nga 0 në 1.
[ conf.d]# vi /etc/naemon/naemon.cfg
.....................
.....................
process_performance_data=1
......................
......................
Shtoni rreshtat e mëposhtëm në fund të naemon.conf.
[ conf.d]# vi /etc/naemon/naemon.cfg
#
# service performance data
#
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
Tani duhet të shtojmë rreshtat e mëposhtëm në custom_commands.conf.
[ 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$
}
Tani krijojmë një shabllon për performancën e hostit dhe grafikun e performancës së shërbimit.
$ 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
}
Tani për të hyrë në grafikun e performancës për shërbimet që ju nevojiten, duhet të përditësojmë skedarin 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
}
Për të kontrolluar grafikun e hostit, duhet ta përfshijmë atë në skedarin e mëposhtëm.
$ 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
}
Vërtetoni konfigurimin.
$ 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
Rinisni shërbimet.
[ ~]# systemctl enable npcd
npcd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig npcd on
[ ~]# systemctl restart npcd
[ ~]# systemctl restart naemon