Professional Documents
Culture Documents
56462218 NGHIEN CỨU TRIỂN KHAI HỆ THỐNG GIAM SAT QUẢN TRỊ MẠNG TREN NỀN TẢNG HỆ THỐNG MA NGUỒN MỞ NAGIOS
56462218 NGHIEN CỨU TRIỂN KHAI HỆ THỐNG GIAM SAT QUẢN TRỊ MẠNG TREN NỀN TẢNG HỆ THỐNG MA NGUỒN MỞ NAGIOS
H NI - 2009
I HC QUC GIA H NI
TRNG I HC CNG NGH
H NI - 2009
LI CM N
Sau 3 thng lm kho lun tt nghip, c s hng dn, ch bo tn tnh ca
thy gio Nguyn Nam Hi v s c gng n lc ca bn thn, em hon thnh kho
lun tt nghip vi ti NGHIN CU TRIN KHAI H THNG GIM ST
QUN TR MNG (TRN NN TNG H THNG M NGUN M NAGIOS);
Em xin chn thnh cm n Thy v cc thy c gio khoa Cng ngh thng tin
trng i Hc Cng Ngh - i Hc Quc Gia H Ni o to, truyn t cho em
nhng kin thc v kinh nghim trong lnh vc Cng ngh thng tin ni ring v
nhng kin thc khc ni chung em c c nhng kin thc tng hp trc khi ra
trng;
Xin cm n bn b gip ti liu v trao i kinh nghim hon thnh
kho lun tt nghip.
Xin cm n!
H Ni, Thng 5-2009
Ngi thc hin
Phm Hng Khi
TM TT
Hin nay khi nim qun tr mng khng cn xa l g trong ngnh cng ngh
thng tin. N tr thnh mt trong nhng lnh vc nghin cu chnh v mng my
tnh v l mt cng vic quan trng khng th thiu trong cc h thng my tnh ca
cc t chc, doanh nghip, trng hc Theo hng nghin cu lnh vc trn, kha
lun ny tp trung vo vic tm hiu v trin khai mt h thng gim st qun tr mng
da trn nn tng h thng m ngun m. l Nagios. Nagios l h thng gim st
mng c chi ph u t thp. Tuy nhin n c kh nng rt mnh m trong vic gim
st hot ng ca cc thit b trn mng. Bi vy Nagios rt c tin tng v s dng
rng ri trn ton cu.
MC LC
DANH MC CC T, THUT NG VIT TT
Vit tt/thut
ng
Host
Flap
plugin
Tn y
ngha
Dng ch cc thit b mng, cc my
u cui c gim st(tt c cc thit b
tham gia vo mng u c gi chung l
host)
Tnh trng thay i trng thi lin tc
L cc ng dng h tr cho hot ng
ca mt phn mm.
1.3. Kt qu t c
Sau mt thi gian nghin cu, tm hiu, ti nm bt c cc chc nng v
c im ca Nagios, tm hiu c cch thc t chc v hot ng ca h thng. Ti
trin khai th nghim h thng trn mng ca trng i hc Cng Ngh v
bc u c nhng nhn xt v nh gi v hot ng ca h thng.
Chng 2: Gii thiu tng quan v Nagios, a ra ci nhn khi qut v h thng
Nagios.
Chng 3: Gii thiu c bn v c im v cch thc cu hnh trong Nagios.
Chng 4: Chi tit cc chc nng ca h thng Nagios.
Chng 5: Cc khi nim, vn lin quan n h thng Nagios.
Chng 6: im li kt qu t c sau khi nghin cu, ci t v trin khai h
thng Nagios
2.2 c im ca Nagios
Cc hot ng kim tra c thc hin bi cc plugin cho my phc v Nagios
v cc m un client trn cc thit b ca ngi dng cui, Nagios ch nh k nhn
cc thng tin t cc plugin v x l nhng thng tin (thng bo cho ngi qun l,
ghi vo tp log, hin thi ln giao din web).
Thit k plugin n gin cho php ngi dng c th t nh ngha v pht trin
cc plugin kim tra cc dch v theo nhu cu ring bng cc cng c lp trnh nh shell
scripts, C/C++, Perl, Ruby, Python, PHP, C#.
C kh nng kim tra song song trng thi hot ng ca cc dch v( ng thi
kim tra nhiu dch v).
Li Nagios
2.
Plugin
Phn li nagios c chc nng qun l cc host/dch v c gim st, thu thp
cc kt qu kim tra (check) host/dch v t cc plugin gi v, biu din trn giao din
chng trnh, lu tr v thng bo cho ngi qun tr. Ngoi ra n cn tng hp v
a ra cc bo co v tnh hnh hot ng chung hoc ca tng host/dch v trong mt
khong thi gian no .
Plugin l b phn trc tip thc hin kim tra host/dch v. Mi mt loi dch v
u c mt plugin ring bit c vit phc v ring cho cng vic kim tra dch v
. Plugin l cc script (Perl, C ) hay cc tp c bin dch (executable). Khi
cn thc hin kim tra mt host/dch v no Nagios ch vic gi plugin tng ng
v nht kt qu kim tra t chng. Vi thit k nh th ny, h thng Nagios rt d
dng c m rng v pht trin. Bt k mt thit b hay dch v no cng c th c
gim st nu nh vit c plugin cho n. Hnh bn di cho ta thy s tng quan
gia cc thnh phn trong Nagios.
nh ssh cc plugin phc v gim st phi c ci t trn host c gim st. NRPE
c th thc thi c tt c cc loi plugin gim st. Nagios c th iu khin my ci
NRPE kim tra cc thng s phn cng, cc ti nguyn, tnh trng hot ng ca my
hoc s dng NRPE thc thi cc plugin yu cu truy vn dch v mng n mt
my th 3 kim tra hot ng ca cc dch v mng nh http, ftp, mail
2.3.2.4 Gim st qua SNMP
Ct li ca giao thc SNMP (SimpleNetwork Management Protocol )l tp hp
n gin cc hot ng gip nh qun tr mng c th qun l, thay i trng thi thit
b. Hin nay rt nhiu thit b mng h tr giao thc SNMP nh Switch, router, my
in, firewall ... Nagios cng c kh nng s dng giao thc SNMP theo di trng thi
ca cc client, cc thit b mng c h tr SNMP. Qua SNMP, Nagios c c thng
tin v tnh trng hin thi ca thit b. V d nh vi SNMP, Nagios c th bit c
cc cng ca Switch, router c m hay khng, thi gian Uptime (chy lin tc) l bao
nhiu
2.3.2.5. NSCA (Nagios Service Check Acceptor)
Nagios c coi l mt phn mm rt mnh v n d dng c m rng v kt
hp vi cc phn mm khc. N c th tng hp thng tin t cc phn mm kim tra
ca hng th ba hoc cc tin trnh Nagios khc v trng thi ca host/dch v. Nh
th Nagios khng cn phi lp lch v chy cc hnh ng kim tra host/dch v m
cc ng dng khc s thc hin iu ny v bo co thng tin v cho n. V cc ng
dng kim tra c th tn dng c kh nng rt mnh ca Nagios l thng bo v
tng hp bo co. Nagios s dng cng c NSCA gi cc kt qu kim tra t ng
dng ca bn v server Nagios. Cng c ny gip cho thng tin gi trn mng c an
ton hn v n c m ha v xc thc.
client 4: Kim tra dch v qua giao thc snmp, nagios server s s dng
plugin check_snmp kim tra cc dch v trn client c h tr giao thc SNMP. Rt
nhiu thit b mng nh router, switch, my in c h tr giao thc SNMP.
Localhost.cfg
Contact.cfg
Printer.cfg
//n cc my in
Switch.cfg
//n switch
Window.cfg
//n my window
Command.cfg
//n cc lnh
Template.cfg
//mu n c sn
Timeperiods.cfg
use
host_name
fedora10
alias
f10
address
192.168.1.254
linux-server
service_description
check-disk-sda1
check_command
check-disk!/dev/sda1
max_check_attempts 5
check_interval
retry_interval
check_period
24x7
notification_interval
30
notification_period
24x7
notification_options
w,c,r
contact_groups
linux-admins
}
Tuy nhin cng ging nh nh ngha host, nu s dng k tha t nh ngha
mu th khi nh ngha mt host mi ch cn khai bo 4 ty chn:
define service{
use
generic-service
host_name
linux-server
service_description
check-disk-sda1
check_command
check-disk!/dev/sda1
10
define command{
command_name
command_line
Tn lnh
}
V d:
define command{
command_name
command_line
check_local_disk
$USER1$/check_disk! w $ARG1$ -c
$ARG2$ -p $ARG3$
}
Mt lnh c nh ngha gm hai thnh phn tn lnh v ni dung lnh. Trong
$USER1$ l nhn ngi dng c nh ngha trong tp ti nguyn resource.cfg.
$ARG1$, $ARG2$, $ARG3$ l cc nhn tham s vo ca lnh. V check_disk trong
v d trn c th thay bng mt script, file t chy bt k Nh v d trn, khi cn
kim tra a cng ca mt host A, Nagiso s gi lnh check_local_disk vi cc tham
s vo ca host A. Lnh ny s thc thi script check_disk vi cc tham s .
11
4.1.1. My in
4.1.1.1. Tng quan
Nagios s dng plugin check_hpjd cho vic gim st trng thi ca my in.
Plugin check_hpjd s dng giao thc SNMP xc nh trng thi ca my in.
kt ni n my in(ping n my in)
Kt giy
Ht giy
My in tt
Yu cu xen vo
Mc t
Thiu b nh
Khay ra giy b y
12
in
address
my in
hostgroups
in
generic-printer
hplj2605dn
HP LaserJet 2605dn
192.168.1.30
allhosts
; Tha k gi tr
; Tn ca my in
; Tn khc ca my
; a ch IP ca
; Host groups ca my
}
By gi bn c th b xung nh ngha cc dch v c gim st. Nu l ln u
tin nh ngha th bn c th sa lun nh ngha dch v mu trong tp printer.cfg.
Thm nh ngha dch v bn di kim tra trng thi ca my in. 10 pht mt
ln check_hpjd plugin s kim tra trng thi ca my in.
define service{
use
host_name
generic-service
hplj2605dn
c gim st
13
; K tha t mu
; Tn ca my in
service_description
Printer Status
; M t dch
v
check_command
s dng gim st
check_hpjd!-C public
dch v
normal_check_interval
10 pht
10
; Lnh
}
Thm nh ngha dch v bn di ping n my in 10 pht mt ln. N phc
v cho vic gim st RTA, s mt gi tin, v kt ni ca mng.
define service{
use
generic-service
host_name
hplj2605dn
service_description
PING
check_command
check_ping!3000.0,80%!
5000.0,100%
normal_check_interval 10
retry_check_interval
}
Lu tp li v kim chng li cu hnh v khi ng li Nagios.
14
generic-switch
; k tha gi tr mc
nh t mu
host_name
linksys-srw224p
; tn ca
switch
alias
switch
address
192.168.1.253
switch
15
; a ch IP ca
hostgroups
group ca switch
allhosts,switches
; Host
template
host_name
linksys-srw224p
check_command
check_ping!200.0,20%!
600.0,60% ;
}
Dch v ny tr v:
- CRITICAL, nu round trip average (RTA) ln hn 600 milliseconds hoc s
gi b mt trn 60%,
- WARNING, cnh bo nu RTA ln hn 200ms hoc gi tin b mt ln hn
20%.
- OK, Ngc li chy bnh thng nu RTA nh hn 200ms v s gi b mt nh
hn 20%.
4.1.2.4. Gim st thng tin trng thi qua SNMP
Nu switch hay router ca bn h tr SNMP, bn c th gim st rt nhiu thng
tin bng check_snmp plugin. B xung nh ngha dch v bn di nh ngha
uptime(thi gian chy lin tc) ca switch.
define service{
use
generic-service ;
k tha gi tr t
mu
host_name
linksys-srw224p
service_description
Uptime
check_command
check_snmp!-C public -o
sysUpTime.0
}
Trong mc check_command trn, tham s "-C public" ch ra rng tn SNMP l
"public" v "-o sysUpTime.0" ch ra OID c kim tra.
16
generic-service Tha k gi tr t mu
host_name
linksys-srw224p
service_description
check_command
check_snmp!-C public -o
ifOperStatus.1 -r 1 -m RFC1213-MIB
}
Trong v d trn, tham s "-o ifOperStatus.1" ch v tr cng y l 1. Tham s
"-r 1" c ngha l check_snmp plugin tr v trng thi OK nu "1" c tm thy
trong kt qu SNMP (1 ch trng thi "up"ca cng) v CRITICAL nu n khng tm
thy. Tham s "-m RFC1213-MIB" ch ra rng check_snmp plugin ch ti "RFC1213MIB" thay v ti cc MIB c ci trn h thng ca bn. iu ny gip lm tng tc
mi th ln.
Lu :
Bn c th tm ra cc OID c gim st trn switch bng cch s dng
lnh( thay 192.168.1.253 thnh a ch IP ca switch bn qun l):
snmpwalk -v1 -c public 192.168.1.253 -m ALL .1
4.1.2.5 Gim st bng thng v t l lu lng
Nu bn ang gim st bng thng s dng trn switch hay router s dng
MRTG, bn c th nhn c cnh bo khi t l lu lng t ti ngng m bn nh
trc. check_mrtgtraf plugin (sn c trong cc bn Nagios plugin c phn phi) cho
php bn lm iu ny. Bn cng cn phi cho check_mrtgtraf plugin bit tp log no
lu tr nhng d liu MRTG , ngng gii hn, v.v... Trong v d ny, chng ta s
gim st mt cng trn Linksys switch. Tp MRTG log c lu trong
/var/lib/mrtg/192.168.1.253_1.log. y l nh ngha dch v m chng ta s dng
gim st d liu bng thng c lu trong tp log.
define service{
use
template
host_name
linksys-srw224p
service_description
check_command
check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!
1000000,2000000!5000000,5000000!10
}
17
Nhit CPU.
Tc qut.
Pin.
Gi h thng.
18
thc).
generic-host
; k tha gi tr mc
nh t mu
host_name
alias
address
hostgroups
remotehost ; Tn ca host
Some Remote Host
192.168.1.50
allhosts
19
; Tn khc ca host
; a ch IP ca host
; Nhm ca host
generic-service
; k tha gi tr mc
nh t mu
host_name
remotehost
service_description
HTTP
check_command check_http
}
nh ngha dch v ny s gim st dch v HTTP chy trn my xa. N s to
cnh bo nu web server khng tr li sau 10 giy hoc web server tr v m
li(403,404)
Lu :
gim st mc su hn bn c th xem hng dn check_http plugin vi
tham s dng lnh l --help. C php --help c tt c cc plugin.
Di y l mt nh ngha dch v mc su hn. N s kim tra xem
/download/index.php URI c cha chui "latest-version.tar.gz" hay khng. Thng bo
li nu khng tm thy, URI khng hp l, hay l web server tr li sau 5 giy.
define service{
use
generic-service
; k tha gi tr mc
nh t mu
host_name
remotehost
service_description
check_command
-t 5 -s "latest-version.tar.gz"
20
check_ftp
$USER1$/check_ftp -H
$HOSTADDRESS$ $ARG1$
}
Di y l nh ngha dch v n gin cho vic gim st PTF server t xa:
define service{
21
use
generic-service
; k tha gi tr mc
nh t mu
host_name
remotehost
service_description
FTP
check_command check_ftp
}
nh ngha dch v ny s gim st dch v PTP v to ra thng bo nu server
khng tr li sau 10 giy.
Cn di y l mt nh ngha dch v mc su hn. Dch v s kim tra FTP
server chy trn cng 1023 ca host xa. N s to ra thng bo nu server khng tr
li sau 5 giy hoc thng ip server tr li khng c chui "Pure-FTPd [TLS]".
define service{
use
generic-service
from a template
host_name
remotehost
service_description
Special FTP
check_smtp
command_line
$HOSTADDRESS$ $ARG1$
$USER1$/check_smtp -H
}
Di y l nh ngha dch v n gin cho vic gim st SMTP server
define service{
22
use
generic-service
; k tha gi tr mc
nh t mu
host_name
remotehost
service_description
SMTP
check_command check_smtp
}
nh ngha dch v ny s gim st dch v SMTP server v to ra thng bo nu
SMTP server khng tr li sau 10 giy.
Cn nh ngha di y s kim tra SMTP server v to ra thng bo nu server
khng tr li sau 5 giy v thng ip tr v t server khng cha on
"mygreatmailserver.com".
define service{
use
generic-service
; k tha gi tr mc nh
t mu
host_name
remotehost
service_description
check_command
"mygreatmailserver.com"
check_smtp!-t
-e
}
4.3.4.2. Gim st dch v POP3
check_pop plugin c s dng gim st dch v POP3 trn mail server . Tp
commands.cfg cha nh ngha lnh s dng check_pop plugin:
define command{
command_name
check_pop
command_line
$HOSTADDRESS$ $ARG1$
$USER1$/check_pop -H
}
Di y l nh ngha dch v n gin cho vic gim st dch v POP3 trn
host xa:
define service{
use
generic-service
nh t mu
host_name
remotehost
service_description
POP3
check_command check_pop
23
; k tha gi tr mc
}
nh ngha dch v ny s gim st dch v POP3 v to ra thng bo nu POP3
khng tr li sau 10 giy.
Cn nh ngha di y s kim tra dch v POP3 v to ra thng bo nu server
khng tr li sau 5 giy v thng ip tr v t server khng cha on
"mygreatmailserver.com".
define service{
use
generic-service
; k tha gi tr mc
nh t mu
host_name
remotehost
service_description
check_command
check_pop!-t
-e
"mygreatmailserver.com"
}
4.3.4.3. Gim st dch v IMAP
check_imap plugin c s dng gim st dch v IMAP4 trn mail server .
Tp commands.cfg cha nh ngha lnh s dng check_imap plugin:
define command{
command_name
check_imap
command_line
$HOSTADDRESS$ $ARG1$
$USER1$/check_imap -H
}
Di y l nh ngha dch v n gin cho vic gim st dch v IMAP4 trn
host xa:
define service{
use
generic-service
; k tha gi tr mc
nh t mu
host_name
remotehost
service_description
IMAP
check_command check_imap
}
nh ngha dch v ny s gim st dch v IMAP4 v to ra thng bo nu
IMAP4 khng tr li sau 10 giy.
24
generic-service
; k tha gi tr mc
nh t mu
host_name
remotehost
service_description
check_command
"mygreatmailserver.com"
check_imap!-t
-e
}
Khi ng li Nagios. Ch l mi ln bn thm mt nh ngha dch v mi
vo tpc cu hnh th bn phi kim chng li tp , v khi ng li Nagios. Nu
qu trnh kim chng c li th phi cu hnh li cho ng n khi khng cn li th
mi khi ng li Nagios.
25
4.5. Tng hp bo co
Ngoi chc nng gim st v cnh bo cc trng thi hin thi ca cc thnh
phn mng Nagios cn c th lp bo co v tnh trng hot ng ca cc thnh phn
mng trong mt khong thi gian nht nh. Bo co c th c lp vi tng
host/dch v, tng nhm hoc ton b mng vi cc b lc trng thi(SORT/HARD),
tnh trng(OK, WARNING, CRITICAL, UNKNOWN). T cc s liu trong bo co
ngi qun tr nm c tnh trng hot ng ca cc thnh phn mng trong mt
khong thi gian nht nh, nh gi c n nh ca cc thnh phn mng. Vic
tng hp bo co c thc hin kh n gin qua giao din web.
26
27
service_description DNS
...
normal_check_interval 5
retry_check_interval 1
max_check_attempts 5
...
}
Trong
normal_check_interval: khong thi gian gia cc ln kim tra bnh thng(l 5
pht).
retry_check_interval: nu gp li, sau 1 pht kim tra li xc nhn (soft state).
max_check_attempts: thc hin kim tra li 5 ln, nu li vn sy ra. Nagios kt
lun chc chn dch v thay i trng thi (hard state).
28
T hnh trn ta c th thy l trong 20 ln kim tra, dch v thay i trng thi 12
ln. Nagios da vo s liu ny thng bo dch v ang ri vo tnh trng flapping
hoc thot khi tnh trng flapping. Khi flapping sy ra, Nagios s ghi s kin ny vo
tp log, t thng tin flap vo phn comment ca dch v v dng hnh ng thng
bo trng thi dch v.
Pht hin flap c cu hnh 2 v tr; tp cu hnh chnh nagios.cfg (ci t cu
hnh ni chung) v trong nh ngha ca tng dch v c th.
Trong tp cu hnh chnh:
#/etc/nagios/nagios.cfg
...
enable_flap_detection=1
low_service_flap_threshold=5.0
//ngng di flap
flap_detection_enabled 1
low_flap_threshold 6.0
high_flap_threshold 20.0
...
}
Tng t pht hin flapping i vi host.
29
30
}
define host{
host_name
Switch1
parents
Nagios
}
define host{
host_name
Web
parents
Switch1
}
Nh v d hnh bn di, ta tt host web v router1. Mt hnh ng kim tra
c thc hin v tr v kt qu cho Nagios. Trng hp ny Nagios kt lun host
web v router1 trng thi DOWN bi v host cha Switch1 hot ng bnh thng.
Trong khi cc host nm sau router1 c kt lun l UNREACHABLE<Khng xc
nh>. V Nagios khng th lin lc c vi chng v router1 b tt ko theo mt
ng kt ni n cc host ny.
31
Router1
down ko
theo cc host
con ca n
mt lin lc
vi phn cn
li ca mng
32
Hnh 5.3 V d Xc nh li 1.
Hnh 5.4 V d xc nh li 2.
Vy trong trng hp ny khi khc phc s c DNS, ngi qun tr xc nh
c ngay nguyn nhn u tin dn n s c l do switch2 b DOWN.
33
5.2. B x l s kin
Khi trng thi ca host/dch v thay i, nagios c th chy mt chng trnh bt
k c nh sn vi b x l s kin (event handler) x l tnh hung m khng
cn s can thip ca ngi qun tr.
34
...
}
nh ngha trong tp lnh lnh restart-lpd:
define command{
command_name restart-lpd
command_line $USER1$/eventhandler/restart-lpd.sh \
$SERVICESTATE$ $SERVICESTATETYPE$
$SERVICEATTEMPT$
}
Lnh ny s gi mt script c tn l restart-lpd.sh t trong th mc
/usr/local/nagios/libexec/eventhandler (thng thng cc script c t trong th mc
/usr/local/nagios/libexec/). Script ny nhn 3 macro lm tham s l trng thi hin
thi ca dch v $SERVICESTATE$ (OK,WARNING, CRITICAL, hoc
UNKNOWN), loi trng thi $SERVICESTATETYPE$ (mm hoc cng), v s ln
kim tra li hin thi $SERVICEATTEMPT$ ). i vi host th cc macro ny l
$HOSTSTATE$, $HOSTSTATETYPE$, v $HOSTATTEMPT$.
2.3. Script x l
#!/bin/bash
#/usr/local/nagios/libexec/eventhandlers/restart-lpd.sh
#$1= Status, $2 =status type, $3 =attempt
case $1 in
OK)
;;
WARNING)
;;
CRITICAL)
if [$2=="HARD" ]||[[$2=="SOFT" && $3 -eq 3]]; then
echo "Restarting lpd service"
/usr/bin/sudo /etc/init.d/lpd restart
35
fi
;;
UNKNOWN)
;;
esac
exit 0
Vi script ny nu trng thi dch v l critical, loi trng thi l HARD hoc loi
trng thi l SOFT v kim tra li n ln th 3 th dch v lpd c gi vi tham
s l restart. Script ny c thc thi vi quyn ca ngi dng Nagios (c th khng
c quyn tm dng hoc khi ng li dch v h thng). V vy phi s dng lnh
sudo dng quyn root khi ng li dch v lpd.
Nu nh bn mun ngi dng nagios c quyn vi dch v lpd th thc hin nh
sau:
linux: # visudo
Thm dng sau v tp cu hnh
nagios nagsrv=(root)NOPASSWD: /etc/init.d/lpd
Dng ny cho php ngi dng nagios c quyn chy lnh /etc/init.d/lpd trn
host nagsrv v khng cn mt khu.
Nu bn khi ng li dch v khi n ang trng thi mm th ngi qun tr s
khng nhn c bt k thng bo no. Tuy nhin s kin vn c ghi li vo tp log.
36
37
38
Cc trng
Thnh vin v
cc n v trc
thuc HQG
Switch
Cc phng lm vic
v phng my tnh trong
ta nh E3
Cc phng lm vic
v phng my tnh
trong ta nh E4
Cc phng lm vic
v phng my tnh
trong ta nh G2
39
Cm my
ch
Router,
Switch
Mt s my tnh
thuc trung tm
my tnh
40
41
42
43
44
45
46
47
Hnh 6.16 l s liu gim st dch v ftp trn host 10.10.0.18 c ghi li t ngy
1/4/2009 n 1/5/2009. T s liu ny ta c th thy trong thng 4 dch v b gin
on 1 ln. Di y l s liu ghi li ngy dch v gin on:
48
49
50
51
PH LC I
1. HNG DN CI T NAGIOS TRN DEBIAN/UBUNTU
Phn ny cung cp nhng hng dn c bn v cch ci t m ngun Nagios
trn Debian/Ubuntu..
Nagios v cc plugin c t trong th mc /usr/local/nagios.
Giao din web Nagios c truy cp qua a ch http://localhost/nagios/
1.1 Gi yu cu
m bo cc gi sau c ci t trc khi tip tc ci Nagios
Apache 2
Th vin GD
52
53
1.9 Ci t mailx
Nu mun nhn cnh bo t Nagios qua email cn phi ci t gi mailx
(Postfix).
sudo apt-get install mailx
54
PH LC II
2. Cp nht phin bn Nagios 3.x
Cp nht, nng cp phin bn mi ca Nagios l mt vic cng ht sc quan
trng. Qu trnh nng cp c tin hnh nh sau:
Sao lu h thng trc khi tin hnh nng cp. iu m bo cho bn c th
phc hi li h thng c nu nh c s c sy ra trong qu trnh nng cp.
Chuyn sang ti khon nagios. Vi ngi dng Debian/Ubuntu s dng lnh:
su -l nagios
Ti v phin bn mi nht ca Nagios(c th gh thm
http://www.nagios.org/download/ c c thng tin v phin bn mi nht).
trang
wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.x.tar.gz
Gii nn m ngun Nagios:
tar xzf nagios-3.x.tar.gz
cd nagios-3.x
Chy script cu hnh Nagios, Tham s nhm l tn nhm nagcmd uc to lc
ci t.
./configure --with-command-group=nagcmd
Bin dch m ngun Nagios
make all
Ci t nh phn, Ti liu, v giao din web. Cu hnh c ca bn s khng b
ghi bc ny.
make install
Kim chng tp cu hnh v khi ng li Nagios. Hon tt
/usr/local/nagios/bin/nagios \
-v /usr/local/nagios/etc/nagios.cfg
55
Tt c cc tp nh ngha i tng ca bn
Cc tp log ca Nagios c lu tr
b.
c.
d.
e.
PH LC III
3. CI T NSCLIENT++ GIM ST MY WINDOW
Phn ny s m t cch ci t nagios gim st mt my chy h iu hnh
window.
Nhng ci c
Mt vi nhim v cu hnh c thc hin:
56
nht
ca
NSClient
theo
ch
57
B comment cc module trong phn [modules], tr CheckWMI.dll v
RemoteConfiguration.dll
windows-server //tha k t mu c sn
host_name
alias
winserver
My Windows Server
address 192.168.1.2
}
Tip theo phi nh ngha mt s dch v khai bo cho Nagios bit nhng mc
s c gim st.
nh ngha dch v gim st phin bn ca NSClient++ chy trn my window:
define service{
use
generic-service
host_name
winserver
check_nt!CLIENTVERSION
}
nh ngha dch v gim st thi gian uptime ca Windows server:
58
define service{
use
generic-service
host_name
winserver
service_description Uptime
check_command
check_nt!UPTIME
}
nh ngha dch v gim st vic s dng CPU v a ra cnh bo CRITICAL
nu ti CPU l 90% trong vng 5 pht, hoc cnh bo WARNING nu ti CPU l 80%
trong vng 5 pht.
define service{
use
generic-service
host_name
winserver
check_nt!CPULOAD!-l 5,80,90
}
nh ngha dch v gim st vic s dng b nh v a ra cnh bo CRITICAL
nu b nh s dng n 90%, hoc cnh bo WARNING nu b nh s dng n
80%.
define service{
use
generic-service
host_name
winserver
service_description
Memory Usage
check_command
check_nt!MEMUSE!-w 80 -c 90
}
nh ngha dch v gim st vic s dng a C:\ v a ra cnh bo
CRITICAL nu b nh s dng n 90%, hoc cnh bo WARNING nu b nh s
dng n 80%.
define service{
use
generic-service
host_name
winserver
service_description
check_command
check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
nh ngha dch v gim st trng thi dch v W3SVC trn window v a ra
cnh bo CRITICAL nu dch v tm dng.
59
define service{
use
generic-service
host_name
winserver
service_description
W3SVC
check_command
check_nt!SERVICESTATE!-d
SHOWALL
-l
W3SVC
}
nh ngha dch v gim st tin trnh Explorer.exe v a ra cnh bo
CRITICAL nu tin trnh ny tm dng.
define service{
use
generic-service
host_name
service_description
check_command
Explorer.exe
winserver
Explorer
check_nt!PROCSTATE!-d
SHOWALL
-l
}
Mt khu
Nu ch nh mt khu trong tp cu hnh NSClient++ ca my window phi sa
nh ngha lnh check_nt v thm mt khu. M tp commands.cfg:
vi /usr/local/nagios/etc/commands.cfg
Thay i nh ngha lnh check_nt v thm tham s "-s <PASSWORD>" (trong
PASSWORD l mt khu ch nh trn my window):
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s
PASSWORD -v $ARG1$ $ARG2$
}
PH LC IV
4. CI T GIM ST MY LINUX VI NRPE
Ti liu ny hng dn ci t trn h thng Fedora 6. i vi cc nn tng linux
khc c th tham kho hng dn v tr gip ti a ch:
http://www.nagioscommunity.org/wiki/
60
4.1 iu kin
Quyn root truy cp vo h thng linux.
Ti khon truy cp vo Nagios my gim st
lu :
Gi thit rng nhng ch dn cho vic ci t NRPE l trn h thng linux c kt
ni TCP v xinetd c ci t. Vi hu ht cc phin bn linux ngy nay th chng
c mc nh trong h thng. Tuy nhin vi cc h thng c th vn dng inetd(thay
v xinetd) v c th khng h tr TCP. V vy nu mun ci t NRPE deamon trn
nhng h thng nh th ny th c th tham kho thm thng tin trong 2 tp README
v SECURITY t trong th mc gc ca b ci NRPE.
61
= 127.0.0.1 <nagios_ip_address>
Thm mc bn di vo tp /etc/services.
nrpe
5666/tcp # NRPE
62
Tip theo kim tra m bo rng cc chc nng ca NRPE daemon chy
ng:
/usr/local/nagios/libexec/check_nrpe H localhost
Bn s nhn c mt chui tr v thng bo phin bn ca NRPE c ci t,
v d:
NRPE v2.8
m bo rng tng la trn my cc b cho php NRPE daemon c th c
truy cp t server xa. lm iu ny chy lnh iptables. Ch rng tn RHFirewall-1-INPUT trong Fedora c th khc trong cc bn linux khc
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp dport 5666 -j
ACCEPT
Lu li bng nh tuyn.
4.2.3 Ty chnh cc lnh NRPE
Tp cu hnh mu NRPE c ci t cha mt s lnh c nh ngha sn
c th dng gim st my . Bn c th sa cc nh ngha lnh v thm cc lnh
mi bng cch sa tp cu hnh NRPE:
vi /usr/local/nagios/etc/nrpe.cfg
Sau bn c th kim tra li s hp l ca cc lnh c nh ngha bng cch
s dng cc lnh sau:
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
63
-H
localhost
-c
/usr/local/nagios/libexec/check_nrpe -H localhost -c
check_zombie_procs.
Ci t check_nrpe plugin.
http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-
64
gim st
check_nrpe
$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
By gi bn c th bt u thm cc dch v trn cc my xa c gim st.
4.3.3 nh ngha cc dch v
Tip theo, nh ngha mt s dch v cho vic gim st my Linux/Unix t xa.
Cc dch v ny c nh ngha trong tp cu hnh i tng Nagios nh ngha mt
host Linux/Unix xa c gim st. Cc v d nh ngha dch v s s dng nhng
lnh mu c nh ngha trong tp nrpe.cfg file ca host t xa. Dch v di y s
gim st ti CPU trn host t xa. Tham s "check_load" c t trong phn nh
ngha check_nrpe ch ra rng NRPE daemon chy lnh "check_load" c nh ngha
trong tp nrpe.cfg.
define service{
use generic-service
host_name remotehost
service_description CPU Load
65
check_command check_nrpe!check_load
}
Dch v di y s gim st s lng ngi dng ang ng nhp vo host t
xa.
define service{
use generic-service
host_name remotehost
service_description Current Users
check_command check_nrpe!check_users
}
Dch v di y s gim st khng gian a cn trng ca phn vng /dev/hda1
ca host t xa.
define service{
use generic-service
host_name remotehost
service_description /dev/hda1 Free Space
check_command check_nrpe!check_hda1
}
Dch v di y s gim st tng s tin trnh trn my t xa.
define service{
use generic-service
host_name remotehost
service_description Total Processes
check_command check_nrpe!check_total_procs
}
Dch v di y s gim st s lng tin trnh trng thi zombie trn host t
xa.
define service{
use generic-service
host_name remotehost
service_description Zombie Processes
check_command check_nrpe!check_zombie_procs
}
66
67
PH LC V
5.1 khi ng Nagios
1.
2.
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
5.2.2 khi ng li Nagios
1.
/etc/rc.d/init.d/nagios reload
2.
Cch 2: qua giao din web,Click vo cc ng link ch dn Restart
the Nagios process.
3.
68
5.3 Tt Nagios
1.
/etc/rc.d/init.d/nagios stop
2.
3.
kill <nagios_pid>
69
70