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