Мониторинг. · 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

Имя пользователя по умолчанию - 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.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 ; Краткое имя пользователя
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-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_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


Get new posts in your inbox
No spam. Unsubscribe anytime.

