, Solar Winds,
3COM Network Superviser HP OpenView -
.
Nagios
OSS (Operations Support Systems)
.
Nagios
.
Big Brother, Angel Network Monitor, HiWayS, MARS, Autostatus, NocMonitor, RITW,
Zabbix, NetXMS, OpenNMS .
.
, sms ,
- .
, . ,
, Nagios
, .
SMS.
, Nagios,
, Tom Welsh
. http://nagios.square-box.com/.
guest guest.
Nagios SMTP, TELNET,
SSH, HTTP, DNS, POP3, IMAP, NNTP .
, ,
.
.
, .
. , ,
. Nagios
wap
. "" ,
. ,
. , ,
, , -
. Nagios
.
Nagios , ,
.
. - 20
. -
.
, .
Nagios .
Nagios NetSaint.
, NetSaint ,
Nagios.
Nagios. Nagios Linux,
FreeBSD 4.5.
, Nagios, ,
Unix . web- Nagios
Apache. , ,
Apache, Unix
web-. web-,
, .
GD Graphics, Thomas
Boutel. PNG, JPEG WBMP.
.
WBMP,
. 2.0.6 GIF,
- .
GIF LZW.
Unisys. ,
PNG
JPEG. , GD zlib, LibPng jpeg.
, .
.
, ,
. ,
"
".
- zlib, - Jean-loup Gailly
Mark Adler. API .
,
, .
http://www.gzip.org/zlib.
1.1.4. .
# tar zvxf zlib-1.1.4.tar.gz
# cd zlib-1.1.4
# ./configure
# make test
# make install
, LibPng PNG.
1.2.5. :
http://www.graphicswiz.com/png/libpng.html
LibPng - .
# tar zxvf libpng-1.2.5.tar.gz
# cd libpng-1.2.5
, scripts
makefile .
makefile.freebsd.
# cp ./scripts/makefile.freebsd Makefile
zlib zlib
*.h
# mkdir zlib
. .
# make all
# make test
- :
Testing pngtest.png:
Pass 0: rwrwrwrwrwrwrwrwrw
Pass 1: rwrwrwrwrwrwrwrwrw
Pass 2: rwrwrwrwrwrwrwrw
Pass 3: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Pass 4: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Pass 5: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Pass 6: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
PASS (9782 zero samples)
Filter 0 was used 21 times
Filter 1 was used 15 times
Filter 2 was used 52 times
Filter 3 was used 10 times
17:58:08 +0000
0 bytes
337346 bytes
Total
memory allocation:
Number of allocations:
1023516 bytes
198
/usr/local/include/libpng/
# mkdir /usr/local/include/libpng
. .
# make install
:
# make test
rm -f testout*
./djpeg -dct int -ppm -outfile testout.ppm
./testorig.jpg
./testorig.jpg
./testimg.ppm
jpeg.
# make install
, GD.
http://www.boutell.com/gd/. ,
.
# tar zxvf gd-2.0.6.tar.gz
# cd gd-2.0.6
# ./configure --x-includes=/usr/local/include --x-libraries=/usr/local/lib
--x-includes --x-libraries ,
.
# make all
, ,
make.
# make devclean
1 GD 2.0.11 .
# make distclean
.
configure,
.
, .
# make install
.
GD, zlib, LibPng jpeg .
GD, , , ,
.
# cd /usr/ports/graphics/gd
# make install
. ,
, , .
, ,
FreeBSD.
. CD
sysinstall.
# /stand/sysinstall
, ,
.
Configure->Packages->CD/DVD->graphics->gd-1.8.4_3->ok->install->ok
, pkg_add. ,
. /usr/local/lib,
/usr/local/include/gd. , , ,
. ,
. .
. Nagios
.
.
Nagios - ,
core program, plugins.
.
Nagios
.
http://www.nagios.org/download/.
nagios-1.0b6 nagiosplug-1.3-beta1. ,
.
# tar zxvf nagios-1.0b6.tar.gz
# cd nagios-1.0b6
, Nagios.
/usr/local/nagios/. , ,
.
. ,
. , ,
. , .
# mkdir /usr/local/nagios
adduser -
nagios, nagios.
# adduser nagios
# ./configure --prefix=/usr/local/nagios --with-cgi-url=/nagios/cgi-bin --withhtml-url=/nagios/ \
--with-nagios-user=nagios --with-nagios-grp=nagios --with-gdlib=/usr/local/lib \
--with-gd-inc=/usr/local/include/gd
.
--prefix=/usr/local/nagios - .
/usr/local/nagios.
--with-cgi-url=/nagios/cgi-bin - URL CGI
web- nagios. URL "/" .
somesite.ru URL
CGI httt://somesite.ru/nagios/cgi-bin/statusmap.cgi.
--with-html-url=/nagios/ - URL html ,
web- .
--with-nagios-user=nagios - , .
--with-nagios-grp=nagios - .
--with-gd-lib=/usr/local/lib - GD
--with-gd-inc=/usr/local/include/gd - .
configure,
.
# make all
# make install
, .
make install-init , Nagios
.
Nagios stop, reload, start, restart, reload, force-reload.
.
start - Nagios.
stop - Nagios.
restart - Nagios
reload - Nagios SIGHUP,
,
force-reload -
status -
FreeBSD /usr/local/etc/rc.d
nagios.sh.
, ,
. , Slackware
/etc/rc.d/init.d rc.nagios. ,
.
# make install-init
:
/usr/bin/install -c -m 755 -d -o root -g root /usr/local/etc/rc.d
install: unknown group root
*** Error code 67
Stop in /tmp/nagios-1.0b6.
, . , ,
, .
Makefile.
32
INIT_OPTS=-o root -g root
, , FreeBSD root
wheel. .
INIT_OPTS=-o root -g wheel
154
$(INSTALL) -m 774 $(INIT_OPTS) daemon-init $(DESTDIR)$(INIT_DIR)/nagios
nagios.sh nagios.
. 100.
:
, , . ,
nagios.sh ,
start. .
:
echo "Usage: nagios {start|stop|restart|reload|force-reload|status}"
:
/usr/local/etc/rc.d/nagios.sh start
nagios.sh,
, start. FreeBSD 4.6.2
.
- , ,
Nagios. ,
/usr/local/nagios/var/rw/nagios.cmd. , ,
/usr/local/nagios/var/rw/ . ,
nagios.cmd.
,
NagiosCmd=${prefix}/var/rw/nagios.cmd
:
NagiosCmd=${prefix}/var/nagios.cmd
nagios.cmd /usr/local/nagios/var/.
, , nagios.cmd.
Nagios ,
. , nagios.cmd . ,
nagios nagios. ,
. , ,
Nagios web-. Apache
nobody nogroup. , web nagios.cmd.
,
.
nobody nagios. .
nobody. nobody
nagios.
, nagios, web-.
nagios.sh
sleep 1
status_nagios nagios
touch $NagiosCmd
chown nobody $NagiosCmd
nagios.sh, , - ,
.
make install-config ,
/usr/local/nagios/etc/.
# make install-config
/usr/local/nagios/, ,
5 .
# ls /usr/local/nagios
bin
etc
sbin
share
var
, .
bin - . Nagios.
etc -
sbin - CGI web-
share - html web-
var -
Nagios.
. ,
.
. ,
,
.
.
. , ,
. Nagios ,
, .
. make,
, .
gmake.
# tar zxvf nagiosplug-1.3-beta1.tar.gz
# cd nagiosplug-1.3-beta1
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios
nagios-grp=nagios
--with-
,
.
./configure help.
# gmake all
# gmake install
/usr/local/nagios/libexec. , perl. ,
. .
Nagios,
. .
help -h,
Nagios. .
, check_dns.
# check_dns -h
check_dns (nagios-plugins 1.3.0-alpha1) 1.1.1.1
The nagios plugins come with ABSOLUTELY NO WARRANTY. You may
copies of the plugins under the terms of the GNU General Public
For more information about these matters, see the file named
Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
Usage: check_dns -H host [-s server] [-t timeout]
check_dns --help
check_dns --version
-H, --hostname=HOST
-s, --server=HOST
Optional DNS server you want to use for the lookup
-t, --timeout=INTEGER
Seconds before connection times out (default: 10)
-h, --help
redistribute
License.
COPYING.
, , check_dns
H -s, -t. ,
H . -s
DNS, ,
. -t ,
. DNS 192.168.10.254
.
# check_dns -H 192.168.10.254
DNS ok - 0 seconds response time, Address(es) is/are 192.168.10.254
, DNS .
,
Nagios.
.
# cd /usr/local/nagios/etc
# ll
total 92
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
dependencies.cfg-sample
-rw-rw----
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-sample, ,
, . ,
, , sample.
, - .
# mkdir sample
# cp * ./sample
, -sample. ,
, Nagios .
- :
# ll
total 94
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw----
1 nagios
nagios
drwxr-xr-x
2 root
nagios
-rw-rw-r--
1 nagios
nagios
-rw-rw-r--
1 nagios
nagios
, . Nagios ,
. ,
, .
.
. .
1.0b2, Nagios
.
.
mail.firma.ru proxy.firma.ru.
, , .
.
hosts.cfg
#
define host{
name
generic-host
# -
notifications_enabled
1
#
event_handler_enabled
1
#
flap_detection_enabled
1
#
process_perf_data
1
#
retain_status_information
1
#
retain_nonstatus_information 1
#
register
0
# , - .
#
}
# mail
define host{
use
generic-host
#
host_name
#
alias
Mail Server
#
address
mail.firma.ru
# fqdn
check_command
check-host-alive
# ping.
# checkcommands.cfg
max_check_attempts
10
# ,
# .
notification_interval 120
# ,
# , .
notification_period 24x7
# ,
# . .
# timeperiods.cfg.
notification_options d,u,r
# ,
# . d,u,r (DOWN, UNREACHABLE, RECOVERY)
# "", "", "".
}
# proxy
define host{
use
generic-host
host_name
proxy
# . alias address.
alias
Proxy Server
address
proxy.firma.ru
check_command
check-host-alive
max_check_attempts
10
notification_interval 120
notification_period 24x7
notification_options d,u,r
}
. ,
Nagios ,
. ,
, hostgroups.cfg. ,
. , .
hostgroups.cfg
define hostgroup{
hostgroup_name firma-servers
#
alias
Firma Servers
#
contact_groups firma-admins
# ,
members
mail proxy
# ,
}
, .
,
. . , ,
HTTP PING, proxy.firma.ru. ,
mail.firma.ru, SMTP IMAP.
services.cfg
#
define service{
name generic-service
#
active_checks_enabled 1
#
passive_checks_enabled 1
#
parallelize_check 1
# ,
#
obsess_over_service 0
#
# .
check_freshness 0
# .
notifications_enabled 1
#
event_handler_enabled 1
#
flap_detection_enabled 1
#
process_perf_data 1
#
retain_status_information 1
# Nagios
retain_nonstatus_information 1
# Nagios
register 0
#
}
# HTTP proxy.firma.ru
define service{
use generic-service
#
hostname proxy.firma.ru
#
service_description HTTP
#
is_volatile 0
# 0
# ,
# ""
# , .
check_period 24x7
# ,
max_check_attemps 3
#
normal_check_interval 5
#
retry_check_interval 1
# . ,
#
contact_groups firma-admins
# ,
notification_interval 120
# ( ), ,
#
notification_period 24x7
# ,
notification_options w,u,c,r
# ,
# .
check_command check_http
# ,
}
# PING proxy.firma.ru
define service{
use generic-service
#
hostname proxy.firma.ru
#
service_description PING
#
is_volatile 0
check_period 24x7
# ,
max_check_attempts 3
#
normal_check_interval 5
#
retry_check_interval 1
# . ,
#
contact_groups firma-admins
# ,
notification_interval 120
# ( ), ,
#
notification_period 24x7
# ,
notification_options w,u,c,r
# ,
# .
check_command check_ping
# ,
}
# SMTP mail.firma.ru
define service{
use generic-service
hostname mail.firma.ru
service_description SMTP
#
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups firma-admins
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_smtp
# ,
}
# IMAP mail.firma.ru
define service{
use generic-service
hostname mail.firma.ru
service_description IMAP
#
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups firma-admins
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_imap
# ,
}
, , , ,
, check_command.
checkcommands.cfg.
check_imap , , ,
/usr/local/nagios/libexec/, check_imap .
, Nagios. ,
. checkcommands.cfg
:
# 'check_imap' command definition
define command{
command_name check_imap
command_line $USER1$/check_imap -H $HOSTADDRESS$
}
hosts.cfg services.cfg .
,
.
, ,
. Nagios contacts.cfg
- .
, .
contacts.cfg
define contact{
contact_name
#
alias
#
tigrisha
Andrei Beshkov
service_notification_period 24x7
# ,
#
host_notification_period
24x7
# ,
#
service_notification_options w,u,c,r
# ,
# .
host_notification_options
d,u,r
# ,
# .
service_notification_commands notify-by-email, notify-by-epager
#
host_notification_commands
host-notify-by-email, host-notify-by-epager
#
email
#
admin@firma.ru
pager
143652565@pager.icq
#
}
define contact{
contact_name
#
alias
#
amon
Dmitry Larin
service_notification_period 24x7
# ,
host_notification_period
24x7
# ,
service_notification_options w,u,c,r
# ,
# .
host_notification_options
d,u,r
# ,
# .
service_notification_commands notify-by-email, notify-by-epager
#
host_notification_commands
host-notify-by-email, host-notify-by-epager
#
email
#
amon@firma.ru
pager
177345865@pager.icq
#
}
.
, .
contactgroups.cfg
define contactgroup{
contactgroup_name
firma-admins
#
alias
firma.ru Admins
#
members
tigrisha amon
#
}
dependencies.cfg . escalations.cfg,
, . ,
, .
, , .
,
.
- .
, Nagios
. ,
.
1) .
2) .
3) .
4) , .
. ,
. nagios.sh.
# /usr/local/etc/rc.d/nagios.sh
: Nagios ,
.
Starting network monitor: nagios
/bin/sh:
, .
, , ,
-l su. FreeBSD .
su -. /usr/local/etc/rc.d/ nagios.sh ,
su -l l. - , .
Nagios. , ,
status.
# /usr/local/etc/rc.d/nagios.sh
status
PID
TT
STAT
101
??
Ss
TIME COMMAND
0:20.81 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc
, , Nagios ,
, /usr/local/nagios/
nagios nagios.
, .
# chown -R nagios:nagios /usr/local/nagios/
, , Nagios .
#
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
. .
. , ,
, .
Nagios
, . ,
, . ,
.
, ,
web-. ,
, , web- Apache.
.
Apache httpd.conf :
<Directory "/usr/local/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
:
ScriptAlias /nagios/cgi-bin/ "/usr/local/nagios/sbin/"
<Directory "/usr/local/nagios/sbin/">
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /nagios/ /usr/local/nagios/share/
<Directory "/usr/local/nagios/share/">
AllowOverride AuthConfig
Options None
Order allow,deny
Allow from all
</Directory>
, . - cgi nagios,
"/usr/local/nagios/sbin/". ,
http http:// /nagios/cgi-bin/.
, /usr/local/nagios/share/ html
web- . ,
http:// /nagios/. , .
, .htaccess
/usr/local/nagios/sbin/ :
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user
Apache.
# /usr/local/apache/bin/apachectl restart
, web-,
/usr/local/nagios/sbin/ .
,
Nagios , .htaccess
/usr/local/nagios/sbin/ /usr/local/nagios/share/.
/usr/local/nagios/etc/htpasswd.users,
.
c .
# /usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users
tigrisha
, , .
# /usr/local/apache/bin/htpasswd /usr/local/nagios/etc/htpasswd.users amon
New password: ******
Re-type new password: ******
Adding password for user amon
/usr/local/nagios/etc/cgi.cfg.
:
authorized_for_system_information=tigrisha, amon
# ,
# Nagios
authorized_for_configuration_information= tigrisha, amon
# ,
# .
#
# ,
# .
authorized_for_system_commands=tigrisha, amon
# ,
# cmd.cgi Nagios.
authorized_for_all_services=tigrisha, amon
authorized_for_all_hosts=tigrisha, amon
# ,
# .
#
# , .
refresh_rate=10
# ( ) , web-.
# 90 , .
# 10 .
nagios.cfg
date_format=euro
#
use_authentication=1
#
check_external_commands=1
# , Nagios web-.
command_file=/usr/local/nagios/var/nagios.cmd
# .
, Nagios:
# /usr/local/etc/rc.d/nagios.sh restart
,
. .
.
Windows
Nagios
Nagios
FreeBSD 4.7. Linux, Solaris Unix-
.
.
Windows 2000 Professional. ,
,
. , ,
.
Windows.
Windows NT, Windows 2000, Windows XP
. Windows 2003
, .
(performance
counters) . ,
.
.
.
- , , . ,
.
" "
Internet Information Server. , " "
,
, .
, .
"", "", "". " " "", , .
, , ,
. ,
, , .
, .
, ,
.
, -. , ,
Windows 2000:
Committed Bytes
Byte vincolati
Zugesicherte Bytes
Octets dedies
Bytes comprometidos
Bytes confirmados
, , ,
. ,
.
Windows.
Windows.
, :
\\TIGROID\(_Total)\%
\\TIGROID\(0)\%
\\TIGROID\(1)\%
- ,
. "" - .
, (_Total) - ,
. , (0) (1)-
. , , "% " .
. ,
.
:
.
\ (_Total)\ .
,
. \\/.,
.
.
Platform Software Development Kit. ,
. ,
, "
", Microsoft.
, , perfmon.exe.
.
, .
, .
. , .
"+",
,
, . , ,
, .
"",
. ,
- "% DPC"? ,
.
. , "".
"".
"".
- ,
.
.
.
test.html .
.
.
Windows
, , .
Windows win2000rus. ,
, Nagios .
.
hosts.cfg.
# win2000rus
define host{
use generic-host
host_name win2000rus
alias Windows 2000 Russian
address win2000rus
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,u,r
}
hostgroups.cfg .
define hostgroup{
hostgroup_name win-servers
alias Windows Servers
contact_groups win-admins
members win2000rus
}
contacts.cfg , Windows .
define contact{
contact_name serge
alias Sergei Petrov
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email, notify-by-epager
host_notification_commands host-notify-by-email, host-notify-by-epager
email serge@test.ru
pager 172345885@pager.icq
}
win-admins contactgroups.cfg
define contactgroup{
contactgroup_name win-admins
alias Windows admins
members serge
}
NSClient
. , Windows NSClient,
NetSaint. ,
Windows.
,
24 . ,
1248- .
check_nt Nagios.
, Windows
check_nt:
24
, .
http://nsclient.ready2run.nl/download.htm
NSClient. 1.0.7.1.
:
LinuxBin
UnixSource
NTSource
Win_2k_XP_Bin
Win_NT4_Bin
Linux
Unix
Windows
Windows 2000 XP
Windows NT
NTSource, - Delphi. ,
. c:\Program Files\NSClient. ,
,
Win_2k_XP_Bin, Win_NT4_Bin. ->
cmd.exe. :
> C:\Program Files\NSClient\pNSClient /install
, .
regedit .
\HKEY_LOCAL_MACHINE\SOFTWARE\NSClient\Params.
password port. , .
- ,
,
. password - , , "PxRT890mY".
, 1248,
.
, NetSaint NT agent.
->-> .
"", "".
- :
, , Nagios,
check_nt. ,
.
. , Windows, check_nt.c , UnixSource,
, Unix- ./nagiosplug-1.3-beta1/plugins/.
. , FreeBSD
Solaris. ./nagiosplug-1.3-beta1/plugins/utils.c :
nchars = vsnprintf (str, size, fmt, ap);
, :
nchars = vsprintf (str, fmt, ap);
, check_nt
:
Memory usage: total:??????? Mb - used: ??????? Mb (???????%) - free: ??????? Mb
(???????%)
. ,
. ,
, , .
# cd ..
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --withnagios-grp=nagios
# gmake all
# gmake install
, gmake
make.
:
Making all in plugins
/tmp/nagiosplug-1.3-beta1/plugins/Makefile,
line 760: Need an operator
make: fatal errors encountered cannot continue
*** Error code 1
, ,
Nagios .
checkcommands.cfg. .
define command{.
command_name .
command_line
, Nagios.
$USER1$, $HOSTADDRESS$, $ARG1$, $ARG2$.
, :
$USER1$ - , .
/usr/local/nagios/libexec/. resource.cfg
$HOSTADDRESS$ - IP , .
services.cfg
$ARG1$, $ARG2$ - , .
,
.
}. ,
checkcommands.cfg.
# win2000rus
# check_nt_cpuload .
#
define command{
command_name check_nt_cpuload
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v CPULOAD -l $ARG1$ -s $ARG2$
}
# check_nt_memuse. .
# .
define command{
command_name check_nt_memuse
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v MEMUSE -w $ARG1$ -c $ARG2$
-s $ARG3$
}
# check_nt_uptime.
#
define command{
command_name check_nt_uptime
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v UPTIME -s $ARG1$
}
# check_nt_disk_space.
#
define command{
command_name check_nt_disk_space
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v USEDDISKSPACE -l $ARG1$ -w
$ARG2$ -c $ARG3$ -s $ARG4$
}
# check_nt_service. ,
# -d SHOWALL,
# .
define command{
command_name check_nt_service
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v SERVICESTATE -d SHOWALL -l
$ARG1$ -s $ARG2$
}
# check_nt_client_version
# NSClient.,
define command{
command_name check_nt_client_version
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v CLIENTVERSION -s $ARG1$
}
# check_nt_file_age
#
define command{
command_name check_nt_file_age
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v FILEAGE -l $ARG1$ -w $ARG2$
-c $ARG3$ -s $ARG4$
}
# check_nt_process. ,
# , .
# -d SHOWALL,
# .
define command{
command_name check_nt_process
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v PROCSTATE -d SHOWALL -l
$ARG1$ -s $ARG2$
}
# check_nt_counter
# ,
# .
define command{
command_name check_nt_counter
command_line $USER1$/check_nt -H $HOSTADDRESS$ -v COUNTER -l $ARG1$ -w $ARG2$
-c $ARG3$ -s $ARG4$
}
, , .
Nagios.
check_command, ,
$ARG1$ .
check_command
check_nt_process!"calc.exe,notepad.exe,mspaint.exe"!PxRT890mY
check_command - , check_nt_process -
, checkcommands.cfg. ,
$ARG1$, $ARG2$, $ARG3$
. , ,
"calc.exe,notepad.exe,mspaint.exe" $ARG1$, PxRT890mY $ARG1$.
, services.cfg:
# .
# ,
# .
# "", "Paint", "",
# Windows
define service{
use generic-service
host_name win2000rus
service_description User Programs
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# ,
# , .
# Windows
# .
# .
check_command check_nt_process!"calc.exe,notepad.exe,mspaint.exe"!PxRT890mY
}
# NSClient ,
define service{
use generic-service
host_name win2000rus
service_description NSClient Version
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# . $ARG1$
check_command check_nt_client_version!PxRT890mY
}
#
# c:\upload\ update.dbf
#
# , 70 ,
# , - ,
# . , 90 ,
# .
define service{
use generic-service
host_name win2000rus
service_description File age
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# "\"
check_command check_nt_file_age!"c:\\upload\\update.dbf"!70!90!PxRT890mY
}
# ,
# . NSClient
# "\\ "
# 100.
# , ,
# .
# "\\ "
# . ,
# . ,
# . NSClient .
define service{
use generic-service
host_name win2000rus
service_description Free Memory
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# , 70% .
# , 90%
check_command check_nt_memuse!70%!90%!PxRT890mY
}
#
define service{
use generic-service
host_name win2000rus
service_description CPU Load
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# , 70% .
# , 90%
check_command check_nt_memuse!70%!90%!PxRT890mY
}
# .
define service{
use generic-service
host_name win2000rus
service_description Up time is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
check_command check_nt_uptime!PxRT890mY
}
# , MS SQL SERVER
# vmxposman
define service{
use generic-service
host_name win2000rus
service_description Runing Services
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# , Windows
# , .
# ,
# Windows.
# HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.,
# 'Service Manager NT' ,
#
# http://www-rnks.informatik.tu-cottbus.de/~fsch/english/nttols.htm
# ,
# .
check_command check_nt_service!"mssqlserver,vmxposman"
}
# ,
define service{
use generic-service
host_name win2000rus
service_description Print Queue
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# check_nt_counter, .
# - \ (_Total)\
# "%.0f job(s)"
# float .
# "job(s)".
# , -
# printf ( ) .
# 5
# , , 10 .
check_command check_nt_counter!"\ (_Total)\","%.0f job(s)"!5!10!
PxRT890mY
}
#
define service{
use generic-service
host_name win2000rus
service_description Paging File is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# check_nt_counter, .
# "Usage %.2f %%"
# float .
# "Usage".
# "%" .
# printf ( ) ,, "%".
#
# 80 , ,
# 90 . check_command check_nt_counter!"\ (_Total)\%
","Usage %.2f %%"!80%!90%!PxRT890mY }
, ,
, cp1251.
, NSClient , ,
. cp1251
Windows- . -
. , Unix
KOI8-R. , ,
cp1251, .
. FTP, checkcommands.cfg Windows-.
"" . ,
Unix /usr/local/nagios/etc/.
, . ,
.
koi8-r.
:
1.
2.
3.
4.
5.
siconv-0.2.1
fconv-1.1
ru-xcode-1.0
ru-dt1489-1.4
ru-mtc-1.3
, ru-mtc.
.
# cat checkcommands.cfg | mtc -f koi8 -t win 1251 > checkcommands.tmp
# mv checkcommands.tmp checkcommands.cfg
Nagios .
# /usr/local/etc/rc.d/nagios.sh restart
,
, Windows .
Windows
Nagios SNMP
, , c,
Nagios. , .
Nagios
Windows.
NSClient, check_nt.
.
SNMP (Simple Network Management Protocol). ,
,
Nagios. SNMP
Windows
, SNMP. ,
mrtg, OpenNMS, Dec PolyCenter Network Manager, HP Open View, IBM AIX NetView/600, IBM
Tivoli, Micromuse Netcool
.
.
, ,
SNMP, . , ,
, .
.
. .
, .
.
, .
- . ,
-
, ,
. SNMP
(SNMP Trap).
, , ,
. ,
. ,
:
,
IP- ,
,
, , ,
.
SNMP ,
, , ,
. , ,
. ,
, , - , ,
.
- MIB (Management Information Base)
- . ,
, ,
. MIB
.
SNMP.
System - (,
)
Interfaces - (, , , ,)
At (Address translation table) - . .
.
TCP - TCP ( , ,
)
ICMP - ICMP (
, )
EGP - (
, )
UDP - UDP ( , )
SNMP - (
, , )
IP - (
, )
. private.
,
. ,
SNMP, win2000rus.
,
. iso.org.dod.internet.mgmt.mib2.system.sysUpTime.
, .
, .
iso
org
dod
internet
mgmt
mib2
system
1
3
6
1
2
1
1
sysUpTime
, .1.3.6.1.2.1.1.3.
,
.iso.3.dod.1.mgmt.1.1.sysUpTime.
, .
. ,
, ,
. OID (Object identifier) ,
, " ".
, iso.org.dod.internet.mgmt.mib2 OID,
. ,
system.sysUpTime.
,
, . .
, system.sysUpTime ,
. ,
, "0". ,
system.sysUpTime, system.sysUpTime.0.
:
interfaces.ifTable.ifEntry.ifType -
interfaces.ifTable.ifEntry.ifIndex -
interfaces.ifTable.ifEntry.ifMtu -
, .
interfaces . .interfaces.ifNumber
"2", , .
interfaces.ifTable.ifEntry .
. .
interfaces.ifTable.ifEntry.ifIndex
. ,
. , ,
:
interfaces.ifTable.ifEntry.ifType.16777219
interfaces.ifTable.ifEntry.ifIndex.16777219
interfaces.ifTable.ifEntry.ifMtu.16777219
:
interfaces.ifTable.ifEntry.ifType.1
interfaces.ifTable.ifEntry.ifIndex.1
interfaces.ifTable.ifEntry.ifMtu.1
, ,
SNMP.
GetRequest - .
MIB. Get.
GetNextRequest - .
.
. , .
GetRequest .
, , . GetNextRequest.
. ,
. GetNext.
SetRequest - ,
MIB. Set.
GetResponse - GetRequest, GetNextRequest,
SetRequest. ,
, ,
. Reply
Response.
Trap - OID, ,
, MIB
. - , .
- " " (Community Names).
, ,
.
,
. ,
. Read-Only, Read-Write,
Read-Create Trap. GetRequest, GetNextRequest,
Read-Only .
SetRequest,
MIB. read-write.
Read-Write. ,
.
Trap .
. ,
, .
SNMP UDP 162.
UDP ,
.
. SNMP
ATM, Ethernet, IPX.
SNMP ,
.
"public".
. SNMP
.
, SNMP
. , .
.
, SNMP "Security Not My Problem".
SNMP.
Symmetric Privacy Protocol (SPP),
, Digest Authentication
Protocol (DAP). , SNMP v.2 ,
, , ,
SetRequest.
. , ,
.
SNMP .
IP ,
, .
- SNMP,
. ,
snmp faq. , ,
, .
RFC 1156, 1213, 1157, 1146, 2571, 2574. SNMP,
.
, win2000rus SNMP,
. ->-
" ".
"" "" .
, . " SNMP"
. ,
, , , ,
" SNMP".
, SNMP. ,
Read-Write .
, SNMP,
Nagios Windows ,
. , Windows - ,
SNMP, .
SNMP,
.
, .
Windows SNMP. - ,
SNMP .
Windows MS SMS Netmon
http://www.microsoft.com/smsmgmt/.
GetIf 2.2, http://www.wtcs.org/snmp4tpc/FILES/Tools/SNMP/getif/getif2.2.zip. , , ,
SNMP. 2.3.
- .
"Next". ,
SNMP . Unix -
http://snmpbrowser.sourceforge.net/.
GetIf. ,
SNMP .
SNMP . "Host Name"
Windows . "Read commuinty" "Write
community" "QWEmn90" "Zxasd098". "Start".
, "error" "none" -
, SNMP .
MBrowser,
. , , - ,
"iso". , , OID
iso.org.dod.internet.mgmt.mib-2.system.sysDescr, .
, "Walk".
- .
, . OID
.
MIB. 4 , .
(Type), (Access), ,
(Enums). , OID,
.iso.org.dod.internet.mgmt.mib-2.IfTable.IfTable.IfEntry.IfOperStatus,
"up", "down", "testing". (Status) -
. ,
. , , ,
, .
,
. , ,
, "Walk".
, . ,
, .
, ,
Read-Write. OID,
. , ,
"Set" . ,
, . , ,
GetIf, , -
. , MIB, ,
MIB OID.
MIB http://www.wtcs.org/snmp4tpc/FILES/Tools/SNMP/getif/GETIFMIBS.ZIP. ,
.mib , GetIf. C:/Program
Files/GetIf 2.2/Mibs/. .index,
, MIB. Getif, .index
MIB . MBrowser,
. ,
:
Mib_ii
MIB_II_TRANSMISSION
RFC_BASE_MINIMUM
PRIVATE_ENTERPRISES/Microsoft_win2k
PRIVATE_ENTERPRISES/Microsoft_Apps
, OID,
.
.iso.org.dod.internet.mgmt.mib2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad
, , Windows SNMP,
. ,
. ,
(performance counters), ,
SNMP. ,
SNMP4W2K. Windows NT, , SNMP4NT.
.
SNMP4W2K-STD SNMP4NT-STD. ,
SNMP4W2K-PLUS SNMP4NT-PLUS.
Windows NT , SNMP4NT-PLUS,
.
. MIB 50$
. , ,
Windows:
Print Services
SMTP Services
NNTP Services
,
:
, ,
.
http://www.wtcs.org/snmp4tpc/FILES/SNMP4W2K/STD/SNMP4W2K-STD.zip
SNMP4W2K. ,
Window NT
http://www.wtcs.org/snmp4tpc/. ""
" ".
SNMP, Windows
SNMP perfmib.dll, , mib.bin
, perfmib.ini,
. OID
mib.bin. ,
SNMP4W2K-STD. SNMP4W2K-STD.exe.
, C:\Program Files\SNMP4W2K-STD\.
,
"View Readme File" "Run Installed Application".
"".
, . ,
, "Y".
SNMP.
SNMP , . , , SNMP4W2K,
GetIf, MIB SNMP4W2K,
C:\Program Files\SNMP4W2K-STD\Mibs\ , MIB
C:\Program Files\Getif 2.2\Mibs\. .index , GetIf,
.iso.org.dod.internet.private.enterprises. ,
, SNMP4W2K.
SNMP4W2K. , ,
SNMP4W2K,
SNMP4W2K. - IIS.
SNMP4W2K, OID,
, , SNMP4W2K
IIS, , MIB .
- IIS, SNMP4W2K,
.
. SNMP4W2K.
WINS, SMTP, DNS
.iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.windowsNT.performance.
, OID
. , OID:
.iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.windowsNT.performance.
cpuprocessorTable.cpuprocessorEntry.cpuPercentProcessorTime.
! OID .
.
, SNMP . ,
, .
OID
.iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.windowsNT.performance.me
mmory.memmoryCommitLimit, "\\
", 100 , ,
.
3.184.967 . ,
.
.iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.windowsNT.performance.me
mmory.memmoryCommittedBytes, "\\
". 53776337 .
, 3184967 , 16.88%. ,
.
90% - 286647030
80% - 254797360 , Nagios
.
, -
Windows . ,
.iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.windowsNT.performance.pdi
skphysicalDiskTable
.iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.windowsNT.performance.ldis
klogicalDiskTable,
. . OID,
SNMP4W2K, .iso.org.dod.internet.mgmt.mib2.host.hrStorage.hrStorageTable.
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
, . OID hrStorageDescr,
, , .
hrStorageDescr.1
hrStorageDescr.2
hrStorageDescr.3
hrStorageDescr.4
A:\
C:\ Label: Serial Number 445c03ba
D:\
Virtual Memory
, 1 - , 2 3 - ,
C:\ - D:\ - CD-ROM. 4, ,
.
OID hrStorageAllocationUnits,
.
hrStorageAllocationUnits.1
hrStorageAllocationUnits.2
hrStorageAllocationUnits.3
hrStorageAllocationUnits.4
0
2048
0
65536
,
C:\ 2048 , 65536 .
, OID
hrStorageSize.
hrStorageSize.1
hrStorageSize.2
hrStorageSize.3
hrStorageSize.4
0
1044209
0
4859
, , . ,
0
418859
0
0
,
. ,
. , , , . ,
C:\ 80% 90% .
835367 938788 . Nagios
.
, ,
. :
.iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.windowsNT.performance.
pagefilepaging-FileTable.pagefilepaging-FileEntry.pagefilePercentUsage
! OID .
.
, .
. , ,
, . ,
, MIB , .
Windows, FreeBSD. SNMP
Nagios check_snmp. , ,
net-snmp, SNMP.
ucd-snmp.
ucd-snmp, net-snmp.
. , net-snmp,
http://net-snmp.sourceforge.net/. 5.0.8.
.
# tar zxvf net-snmp-5.0.8.tar.gz
, configure, ,
.
# ./configure
Defaul version
# SNMP,
# .
# 1, 2c, 3. , , .
System contact infomation
root@: tigrisha@sysadmins.ru
# , SNMP. .
System Location (Unknown): home
# . ,
# .
Location to write log file /var/log/snmpd.log:
/var/log/snmpd.log
# snmpd
Location to write persistent information
/var/net/snmp:
/var/net/snmp
# SNMP
, configure , .
# make
, umask ,
.
# umask 022
# make install
/usr/local/bin/.
, .
/usr/local/bin SNMP:
snmpbulkget
snmpbulkwalk
snmpcheck
snmpconf
snmpdelta
snmpdf
snmpget
snmpget.old
snmpgetnext
snmpinform
snmpnetstat
snmpset
snmpstatus
snmptable
snmptest
snmptranslate
snmptrap
snmpusm
snmpvacm
snmpwalk
, -
. Net-snmp, ucd-snmp, ,
FreeBSD. , FreeBSD 4.7,
, 4- ,
. Net.
, .
,
net-snmp 5.0.3_2 ucd-snmp 4.2.5_2. ,
.
. , ,
.
,
.
SNMP. , ,
FreeBSD SNMP . ,
, .
, , snmpd.
/usr/local/etc/rc.d/snmpd.sh,
.
# /usr/local/etc/rc.d/snmpd.sh stop
# chmod
ugo-x /usr/local/etc/rc.d/snmpd.sh
, : Nagios nagios-plugins.
1.3.0 - beta 3. ,
, check_snmp /usr/local/libexec/ .
. ,
nagios-plugins snmp. configure,
, ,
,. ucd-snmp net-snmp. ,
nagios-plugins .
nagios-plugins :
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --withnagios-grp=nagios
# gmake all
# gmake install
, , .
check_snmp snmpget.
Windows
.
#/usr/local/nagios/libexec/check_snmp -H win2000rus -C QWEmn90 -o
system.sysUpTime.0
SNMP problem - No data recieved from host
CMD: /usr/local/bin/snmpget -m ALL -v 1 -c
system.sysUpTime.0
QWEmn90
win2000rus
, , .
, . ,
check_snmp. check_snmp
snmpget, .
-v 1
# . Windows 1 2c. 2 ,
# 1 .
-m ALL
# MIB
-c QWEmn90
# , . .
win2000rus
# IP , .
OID
# , .
, snmpget check_snmp
Nagios. . ,
snmpget ,
SNMP.
,
.
net-snmp:
# /usr/local/bin/snmpget -v2c -m ALL -c QWEmn90 win2000rus system.sysUpTime.0
ucd-snmp:
# /usr/local/bin/snmpget -m ALL -c QWEmn90 -v2c win2000rus system.sysUpTime.0
, SNMP ,
. , snmpget
OID, SNMP4W2K SNMP4NT. ,
, .
, OID .
net-snmp:
# /usr/local/bin/snmpget -v2c -m ALL -c QWEmn90 win2000rus .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1
ucd-snmp:
# /usr/local/bin/snmpget -m ALL -c QWEmn90 -v2c win2000rus .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1
, , ,
. . snmpget
snmpwalk, OID. ,
.
net-snmp:
# /usr/local/bin/snmpwalk -v2c -m ALL -c QWEmn90 win2000rus .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1
ucd-snmp:
# /usr/local/bin/snmpwalk -m ALL -c QWEmn90 -v2c win2000rus .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1
,
check_snmp. plugins
check_snmp.c. ,
snmp_get:
/* create the command line to execute */
command_line = ssprintf
(command_line,
"%s -m ALL -v 1 %s %s %s",
PATH_TO_SNMPGET, server_address, community, oid);
, snmp.
net-snmp:
ucd-snmp:
/* create the command line to execute */
command_line = ssprintf
(command_line,
"%s -m ALL -c %s -v2c %s
%s",
, , .
# gmake all
# gmake install
check_snmp.
Windows . , OID
SNMP4W2K
#/usr/local/nagios/libexec/check_snmp -H win2000rus -C QWEmn90 -o .
1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1
SNMP OK - INTEGER: 12
, - .
12 , .
Nagios. checkcommands.cfg
check_snmp_oid,
.
define command{
command_name check_snmp_oid
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -o $ARG1$ -C $ARG2$ -w
$ARG3$ -c $ARG4$ -u $ARG5$ -l ""
}
, check_snmp.
$USER1$ - /usr/local/nagios/libexec/
$HOSTADDRESS$ -
$ARG1$ - OID,
$ARG2$ - SNMP$ARG1$ - OID,
$ARG3$ - ,
$ARG4$ -
$ARG5$ - , . ,
"bytes"
-l "" . ,
snmp . "SNMP OK".
, .
, , ,
win2000rus hosts.cfg, hostgroups.cfg,
. ,
.
# ,
define service{
use generic-service
host_name win2000rus
service_description SNMP Page File Usage
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# 80%, 90%
# "%", .
# ,
# .
check_command check_snmp_oid!.1.3.6.1.4.1.311.1.1.3.1.1.6.1.3!QWEmn90!80!90!%
}
# , SNMP4W2K
define service{
use generic-service
host_name win2000rus
service_description SNMP CPU Load
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
check_command check_snmp_oid!.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1!QWEmn90!80!90!%
}
# ,
# .iso.org.dod.internet.mgmt.mib2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad
define service{
use generic-service
host_name win2000rus
service_description SNMP hrProcessorLoad
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
check_command check_snmp_oid!.1.3.6.1.2.1.25.3.3.1.2.2!QWEmn90!80!90!%
}
#
define service{
use generic-service
host_name win2000rus
service_description SNMP Up Time
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# ,
#
# , "".
# ,
# ""
check_command check_snmp_oid!.1.3.6.1.2.1.1.3!QWEmn90!""!""!""
}
#
define service{
use generic-service
host_name win2000rus
service_description SNMP Virtual Memory usage
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
check_command
# 80% ,
# 254797360 , ,
# 90% ,
# 286647030 .
# , , "bytes"
check_snmp_oid!.1.3.6.1.4.1.311.1.1.3.1.1.1.3.0!QWEmn90!254797360!286647030!bytes
}
# C:\
define service{
use generic-service
host_name win2000rus
service_description SNMP Space used on disk C:\
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
contact_groups win-admins
notification_interval 120
notification_period 24x7
notification_options c,r
# 80% # , 835367 .
# 90% .
# 938788 .
# , , "blocks"
check_command check_snmp_oid!.1.3.6.1.2.1.25.2.3.1.6.2!QWEmn90!835367!938788!blocks
}
, , Nagios
.
# /usr/local/etc/rc.d/nagios
,
Windows . , ,
.
, SNMP4W2K
, Windows,
. , , , ,
, SNMP.