1
|
[root@kk ~]
#useradd nagios
|
1
2
3
4
5
|
[root@kk ~]
#cd /home/softwares/
[root@kk softwares]
#wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz
[root@kk softwares]
#tar -xzf nagios-plugins-2.1.2.tar.gz
[root@kk softwares]
#cd nagios-plugins-2.1.2
[root@kk nagios-plugins-2.1.2]
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
|
1
2
|
[root@kk nagios-plugins-2.1.2]
#make
[root@kk nagios-plugins-2.1.2]
#make install
|
1
2
|
[root@kk nagios-plugins-2.1.2]
# chown nagios.nagios /usr/local/nagios
[root@kk nagios-plugins-2.1.2]
# chown -R nagios.nagios /usr/local/nagios/libexec
|
1
2
3
4
5
|
[root@kk nagios-plugins-2.1.2]
#cd ..
[root@kk softwares]
#tar zxf nrpe-3.0.1.tar.gz
[root@kk softwares]
#cd nrpe-3.0.1
[root@kk nrpe-3.0.1]
#yum -y install openssl openssl-devel
[root@kk nrpe-3.0.1]
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
|
1
|
[root@kk nrpe-3.0.1]
#make all
|
1
|
[root@kk nrpe-3.0.1]
#make install-plugin
|
1
|
[root@kk nrpe-3.0.1]
#make install-daemon
|
1
|
[root@kk nrpe-3.0.1]
#make install-daemon-config
|
1
|
[root@kk nrpe-3.0.1]
#make install-config
|
1
2
|
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
# service iptables save
|
1
|
[root@kk nrpe-3.0.1]
#vim /usr/local/nagios/etc/nrpe.cfg
|
1
2
3
4
5
|
/usr/local/nagios/libexec/check_nrpe
-H localhost -c check_users
/usr/local/nagios/libexec/check_nrpe
-H localhost -c check_load
/usr/local/nagios/libexec/check_nrpe
-H localhost -c check_sda1
/usr/local/nagios/libexec/check_nrpe
-H localhost -c check_total_procs
/usr/local/nagios/libexec/check_nrpe
-H localhost -c check_zombie_procs
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@kk libexec]
#grep -v '^#' /usr/local/nagios/etc/nrpe.cfg |sed '/^$/d'
log_facility=daemon
debug=0
pid_file=
/usr/local/nagios/var/nrpe
.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=192.183.3.145,172.16.56.131
dont_blame_nrpe=0
allow_bash_command_substitution=0
command_timeout=60
connection_timeout=300
command
[check_users]=
/usr/local/nagios/libexec/check_users
-w 5 -c 10
command
[check_load]=
/usr/local/nagios/libexec/check_load
-w 15,10,5 -c 30,25,20
command
[check_sda1]=
/usr/local/nagios/libexec/check_disk
-w 20% -c 10% -p
/dev/sda1
command
[check_zombie_procs]=
/usr/local/nagios/libexec/check_procs
-w 5 -c 10 -s Z
command
[check_total_procs]=
/usr/local/nagios/libexec/check_procs
-w 150 -c 200
|
1
2
|
[root@kk nrpe-3.0.1]
# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
[root@kk nrpe-3.0.1]
#netstat -tulpn | grep nrpe
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@kk nrpe-3.0.1]
#vi /etc/init.d/nrped
#!/bin/bash
# chkconfig: 2345 88 12
# description: NRPE DAEMON
NRPE=
/usr/local/nagios/bin/nrpe
NRPECONF=
/usr/local/nagios/etc/nrpe
.cfg
case
"$1"
in
start)
echo
-n
"Starting NRPE daemon..."
$NRPE -c $NRPECONF -d
echo
" done."
;;
stop)
echo
-n
"Stopping NRPE daemon..."
pkill -u nagios nrpe
echo
" done."
;;
restart)
$0 stop
sleep
2
$0 start
;;
*)
echo
"Usage: $0 start|stop|restart"
;;
esac
exit
0
|
1
2
3
4
5
|
[root@kk nrpe-3.0.1]
#chmod +x /etc/init.d/nrped
[root@kk nrpe-3.0.1]
#chkconfig --add nrped
[root@kk nrpe-3.0.1]
#chkconfig nrped on
[root@kk nrpe-3.0.1]
#service nrped start
Starting NRPE daemon...
done
.
|
2.2 监控端NRPE安装与配置
1
|
[root@monitors ~]
# yum -y install openssl openssl-devel
|
1
2
3
4
5
|
[root@monitors ~]
# cd /home/nagios/
[root@monitors nagios]
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-3.0.1.tar.gz--2017-01-17 23:36:36-- http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-3.0.1.tar.gz
[root@monitors nagios]
# tar xzvf nrpe-3.0.1.tar.gz
[root@monitors nagios]
# cd nrpe-3.0.1
[root@monitors nrpe-3.0.1]
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
|
1
|
[root@monitors nrpe-3.0.1]
# make all
|
1
|
[root@monitors nrpe-3.0.1]
# make install-plugin
|
1
2
|
[root@monitors nrpe-3.0.1]
# ll /usr/local/nagios/libexec/check_nrpe
-rwxrwxr-x 1 nagios nagios 125293 1月 17 23:47
/usr/local/nagios/libexec/check_nrpe
|
3.NRPE测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
[root@monitors libexec]
# ./check_nrpe -h
NRPE Plugin
for
Nagios
Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org)
Version: 3.0.1
Last Modified: 09-08-2016
License: GPL v2 with exemptions (-l
for
more
info)
SSL
/TLS
Available: OpenSSL 0.9.6 or higher required
Usage: check_nrpe -H <host> [-2] [-4] [-6] [-n] [-u] [-V] [-l] [-d <dhopt>]
[-P <size>] [-S <ssl version>] [-L <cipherlist>] [-C <clientcert>]
[-K <key>] [-A <ca-certificate>] [-s <logopts>] [-b <bindaddr>]
[-f <cfg-
file
>] [-p <port>] [-t <interval>:<state>]
[-c <
command
>] [-a <arglist...>]
Options:
<host> = The address of the host running the NRPE daemon
-2 = Only use Version 2 packets, not Version 3
-4 = bind to ipv4 only
-6 = bind to ipv6 only
-n = Do no use SSL
-u = (DEPRECATED) Make timeouts
return
UNKNOWN instead of CRITICAL
-V = Show version
-l = Show license
<dhopt> = Anonymous Diffie Hellman use:
0 = Don't use Anonymous Diffie Hellman
(This will be the default
in
a future release.)
1 = Allow Anonymous Diffie Hellman (default)
2 = Force Anonymous Diffie Hellman
<size> = Specify non-default payload size
for
NSClient++
<ssl ver> = The SSL
/TLS
version to use. Can be any one of: SSLv2 (only),
SSLv2+ (or above), SSLv3 (only), SSLv3+ (or above),
TLSv1 (only), TLSv1+ (or above DEFAULT), TLSv1.1 (only),
TLSv1.1+ (or above), TLSv1.2 (only), TLSv1.2+ (or above)
<cipherlist> = The list of SSL ciphers to use (currently defaults
to
"ALL:!MD5:@STRENGTH"
. WILL change
in
a future release.)
<clientcert> = The client certificate to use
for
PKI
<key> = The private key to use with the client certificate
<ca-cert> = The CA certificate to use
for
PKI
<logopts> = SSL Logging Options
<bindaddr> = bind to
local
address
<cfg-
file
> = configuration
file
to use
[port] = The port on
which
the daemon is running (default=5666)
[
command
] = The name of the
command
that the remote daemon should run
[arglist] = Optional arguments that should be passed to the
command
,
separated by a space. If provided, this must be the last
option supplied on the
command
line.
NEW TIMEOUT SYNTAX
-t <interval>:<state>
<interval> = Number of seconds before connection
times
out (default=10)
<state> = Check state to
exit
with
in
the event of a timeout (default=CRITICAL)
Timeout state must be a valid state name (
case
-insensitive) or integer:
(OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)
Note:
This plugin requires that you have the NRPE daemon running on the remote host.
You must also have configured the daemon to associate a specific plugin
command
with the [
command
] option you are specifying here. Upon receipt of the
[
command
] argument, the NRPE daemon will run the appropriate plugin
command
and
send the plugin output and
return
code back to *this* plugin. This allows you
to execute plugins on remote hosts and
'fake'
the results to
make
Nagios think
the plugin is being run locally.
|
1
2
|
[root@monitors libexec]
# ./check_nrpe -H 192.183.3.145 -p 5666
NRPE v3.0.1
|
1
2
3
4
5
6
|
[root@monitors libexec]
# cd /usr/local/nagios/etc/objects/
[root@monitors objects]
# vim commands.cfg
define
command
{
command_name check_nrpe
command_line $USER1$
/check_nrpe
-H
"$HOSTADDRESS$"
-c
"$ARG1$"
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
[root@monitors objects]
# vim linuxserver.cfg
#############################################################
#create a new template for linux boxes
#############################################
define host{
name linux-box ; Name of this template
use generic-host ; Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}
########################################################
#defie a new host for the remote Linux/Unix box
#that references the newly created linux-box host template
########################################################
define host{
use linux-box ; Inherit default values from a template
host_name remotehost ; The name we're giving to this
server
alias
centos6_kk ; A longer name
for
the server
address 192.183.3.145 ; IP address of the server
}
######################################################################################
#The following service will monitor the CPU load on the remote host.
# The "check_load" argument that is passed to the check_nrpe command
# defiition tells the NRPE daemon to run the "check_load" comman#d as defied in the nrpe.cfg fie
######################################################################################
define service{
use generic-service
host_name remotehost
service_description CPU Load
check_command check_nrpe!check_load
}
##############################################################################################
#The following service will monitor the number of currently logged in users on the remote host
############################################################################################
define service{
use generic-service
host_name remotehost
service_description Current Users
check_command check_nrpe!check_users
}
#############################################################################################
#The following service will monitor the free drive space on /dev/sda1 on the remote host.
view plain copy print?
#<span style="color:#ff0000;">
#注意:这里的/dev/sda1是通过被检测主机df命令获得,切勿根据官方文档盲目填写/dev/hda1
############################################################################################
define service{
use generic-service
host_name remotehost
service_description
/dev/sda1
Free Space
check_command check_nrpe!check_sda1
}
##############################################################################################
#The following service will monitor the total number of processes on the remote host.
##############################################################################################
define service{
use generic-service
host_name remotehost
service_description Total Processes
check_command check_nrpe!check_total_procs
}
###########################################################################################
#The following service will monitor the number of zombie processes on the remote host.
###########################################################################################
define service{
use generic-service
host_name remotehost
service_description Zombie Processes
check_command check_nrpe!check_zombie_procs
}
|
1
2
3
|
[root@monitors objects]
# vim /usr/local/nagios/etc/nagios.cfg
添加一行:
cfg_file=
/usr/local/nagios/etc/objects/linuxserver
.cfg
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
[root@monitors objects]
# service nagios configtest
或者
[root@monitors objects]
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.2.0
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-01-2016
License: GPL
Website: https:
//www
.nagios.org
Reading configuration data...
Read main config
file
okay...
Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
Checked 15 services.
Warning: Host
'kk'
has no default contacts or contactgroups defined!
Checked 2 hosts.
Checked 1 host
groups
.
Checked 1 service
groups
.
Checked 1 contacts.
Checked 1 contact
groups
.
Checked 26 commands.
Checked 5
time
periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking
for
circular paths...
Checked 2 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: 1
Total Errors: 0
Things
look
okay - No serious problems were detected during the pre-flight check
|
1
2
3
4
|
[root@monitors objects]
# service nagios restart
Running configuration check...
Stopping nagios:
done
.
Starting nagios:
done
.
|
-
在远程主机端的nrpe.cfg文件中增加新的命令定义;
-
在监控端的nagios配置文件中增加新的服务监控定义;
1
2
|
[root@kk libexec]
#/usr/local/nagios/libexec/check_swap -w 20% -c 10%
SWAP OK - 59%
free
(2251 MB out of 3823 MB) |swap=2251MB;764;382;0;3823
|
1
2
|
[root@kk libexec]
#vi /usr/local/nagios/etc/nrpe.cfg
command
[check_swap]=
/usr/local/nagios/libexec/check_swap
-w 20% -c 10%
|
1
2
3
|
[root@kk libexec]
#service nrped restart
Stopping NRPE daemon...
done
.
Starting NRPE daemon...
done
.
|
1
2
3
4
5
6
7
|
[root@monitors ~]
# vim /usr/local/nagios/etc/objects/linuxserver.cfg
define service{
use generic-service
host_name remotehost
service_description Swap Usage
check_command check_nrpe!check_swap
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
[root@monitors ~]
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.2.0
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-01-2016
License: GPL
Website: https:
//www
.nagios.org
Reading configuration data...
Read main config
file
okay...
Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
Checked 16 services.
Warning: Host
'kk'
has no default contacts or contactgroups defined!
Checked 2 hosts.
Checked 1 host
groups
.
Checked 1 service
groups
.
Checked 1 contacts.
Checked 1 contact
groups
.
Checked 26 commands.
Checked 5
time
periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking
for
circular paths...
Checked 2 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: 1
Total Errors: 0
Things
look
okay - No serious problems were detected during the pre-flight check
|
1
2
3
4
|
[root@monitors ~]
# service nagios restart
Running configuration check...
Stopping nagios:
done
.
Starting nagios:
done
.
|