Мониторинг. · 14 min read · Nov 02, 2025

Как установить сервер мониторинга Naemon, готовый к производству

Naemon — это новый набор инструментов мониторинга, который стремится быть быстрым, стабильным и инновационным, предоставляя вам четкое представление о состоянии вашей сети и приложений. Это замена серверу nagios, которая очень стабильна и использует удивительную панель управления под названием thruk. Настройка naemon очень проста и имеет встроенный живой статус. В этом руководстве я покажу вам, как установить и настроить naemon в производственной среде вместе с pnp4nagios для графиков. 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

Я использую хост CentOS 7 с минимальной установкой, отключенным SELinux и включенным firewalld.

[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.rpm

включение репозитория epel:

yum -y install epel-release

Установка пакета Naemon:

[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 wget

Скачивание pnp4nagios.

[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 ~]# 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

вы должны иметь возможность получить доступ к URL с http://192.168.1.170/thruk

Интерфейс Thruk

Имя пользователя по умолчанию - thrukadmin, пароль - thrukadmin.

В случае, если вы хотите изменить пароль thrukadmin, выполните:

[root@naemon ~]# htpasswd /etc/thruk/htpasswd thrukadmin

Установка клиента мониторинга для мониторинга узлов

Установка клиентов nrpe для мониторинга Linux-хостов

192.168.1.21 - клиент nrpe - centos 6

Установка плагина Nagios и клиента nrpe:

[root@centos6 ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y

Сделайте резервную копию nrpe.cfg:

[root@centos6 ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp

Замените содержимое файла nrpe.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 добавьте IP-адрес сервера naemon, здесь это 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 -y

Сделайте резервную копию nrpe.cfg:

[root@ubuntu ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp

Замените содержимое файла nrpe.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

Установка Nscp на Windows

192.168.1.75 - клиент nscp - windows server 2012R2

Скачайте nscp с этого сайта:

https://www.nsclient.org/download/

После загрузки, пожалуйста, следуйте скриншотам установки

Выберите generic.

Выберите complete:

Выберите путь по умолчанию:

Теперь в разделе allowed hosts добавьте хост naemon. Здесь в нашей настройке это 192.168.1.170.

Убедитесь, что вы задали сложный пароль. Для этого примера я использовал пароль “howtoforge”. Далее проверьте включение nsclient и nrpe.

После завершения установки убедитесь, что служба работает.

Теперь мы проверим с хоста naemon, чтобы убедиться, что мы можем к нему обратиться.

Проверка nrpe и nscp с сервера Naemon для проверки подключения

[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 /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_memory

Добавление следующих строк в конфигурацию nrpe /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
## Проверка работоспособности хоста ##
# команда '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%
    }
### Команда службы ##
# команда '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$
    }

# команда 'nrpe'
define command{
    command_name                   nrpe
    command_line                   $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c $ARG1$
    }

# NRPE с аргументами
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++
# команда 'check_nt'
define command{
    command_name                   nt
    command_line                   $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s $USER4$
    }

Для безопасности сохраните пароль клиентов nscp в /etc/naemon/resource.cfg

...........
...........
$USER4$=howtoforge
...........
............

Теперь нам нужно определить конфигурацию хоста.

Мы создаем файл с именем 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
}

Мы делаем то же самое для 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
}

Теперь нам нужно определить конфигурацию службы.

$ 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
    }

Для Windows мы создаем аналогичную конфигурацию.

$ 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
    }

Теперь мы изменим адрес электронной почты для контактов.

$ vim contacts.cfg
define contact {
  contact_name                   naemonadmin                         ; Краткое имя пользователя
  alias                          Naemon Admin                        ; Полное имя пользователя
  use                            generic-contact                     ; Унаследовать значения по умолчанию из шаблона generic-contact (определенного выше)
  email                          [email protected]             ; <<*** ИЗМЕНИТЕ ЭТО НА ВАШ АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ ****
}

Теперь мы удаляем ненужные конфигурации, которые не требуются.

$ 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.

Согласно данным, пакет nrpe, скомпилированный для ubuntu, имел отключенные аргументы из-за уязвимости безопасности, и именно поэтому он не работает.

Нам нужно будет перекомпилировать пакет, чтобы включить аргументы, чтобы управлять настройкой из naemon.

Ниже приведена ссылка, которая показывает, как его можно перекомпилировать. Вы также можете найти пакет, уже скомпилированный с включенными аргументами, на этом сайте. Я буду использовать этот предварительно скомпилированный пакет для этого руководства.

https://www.claudiokuenzler.com/blog/626/nrpe-debian-jessie-command-ags-arguments-not-working-error
root@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_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) ...
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
        
                # Включить URL-перезапись
                RewriteEngine On
                Options symLinksIfOwnerMatch
                # Установка каталога
                RewriteBase /pnp4nagios/
                # Защитить приложение и системные файлы от просмотра
                RewriteRule "^(?:application|modules|system)/" - [F]
                # Разрешить любые файлы или каталоги, которые существуют, отображаться напрямую
                RewriteCond "%{REQUEST_FILENAME}" !-f
                RewriteCond "%{REQUEST_FILENAME}" !-d
                # Перезаписать все другие URL на index.php/URL
                RewriteRule "^.*$" "index.php/$0" [PT]
        
[root@naemon share]#
[root@naemon conf.d]# systemctl restart httpd.service

Теперь нам нужно будет изменить страницу конфигурации.

[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                       ; Имя шаблона службы для использования
  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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.