Khóa luận Nghiên cứu triển khai hệ thống giám sát quản trị mạng (Trên nền tảng hệ thống mã nguồn mở Nagios)

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Phm Hng Khi  
NGHIÊN CU TRIN KHAI HTHNG GIÁM  
SÁT QUN TRMNG (TRÊN NN TNG HỆ  
THNG MÃ NGUN MNAGIOS)  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
HÀ NI - 2009  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Phm Hng Khi  
NGHIÊN CU TRIN KHAI HTHNG GIÁM  
SÁT QUN TRMNG (TRÊN NN TNG HỆ  
THNG MÃ NGUN MNAGIOS)  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bhướng dn: ThS. Nguyn Nam Hi  
Cán bộ đồng hướng dn: Th.S Phùng Chí Dũng  
HÀ NI - 2009  
2
LI CM ƠN  
Sau 3 tháng làm khoá lun tt nghip, được shướng dn, chbo tn tình ca  
thy giáo Nguyn Nam Hi và scgng nlc ca bn thân, em đã hoàn thành khoá  
lun tt nghip vi đề tài “NGHIÊN CU TRIN KHAI HTHNG GIÁM SÁT  
QUN TRMNG (TRÊN NN TNG HTHNG MÃ NGUN MNAGIOS)”;  
Em xin chân thành cm ơn Thy và các thy cô giáo khoa Công nghthông tin  
trường Đại Hc Công Ngh- Đại Hc Quc Gia Hà Ni đã đào to, truyn đạt cho em  
nhng kiến thc và kinh nghim trong lĩnh vc Công nghthông tin nói riêng và  
nhng kiến thc khác nói chung để em có được nhng kiến thc tng hp trước khi ra  
trường;  
Xin cm ơn bn bè đã giúp đỡ tài liu và trao đổi kinh nghim để hoàn thành  
khoá lun tt nghip.  
Xin cm ơn!  
Hà Ni, Tháng 5-2009  
Người thc hin  
Phm Hng Khi  
3
TÓM TT  
Hin nay khái nim “qun trmng” không còn xa lgì trong ngành công nghệ  
thông tin. Nó đã trthành mt trong nhng lĩnh vc nghiên cu chính vmng máy  
tính và là mt công vic quan trng không ththiếu trong các hthng máy tính ca  
các tchc, doanh nghip, trường hc… Theo hướng nghiên cu lĩnh vc trên, khóa  
lun này tp trung vào vic tìm hiu và trin khai mt hthng giám sát qun trmng  
da trên nn tng hthng mã ngun m. Đó là Nagios. Nagios là hthng giám sát  
mng có chi phí đầu tư thp. Tuy nhiên nó có khnăng rt mnh mtrong vic giám  
sát hot động ca các thiết btrên mng. Bi vy Nagios rt được tin tưởng và sdng  
rng rãi trên toàn cu.  
4
MC LC  
DANH MC CÁC T, THUT NGVIT TT  
Viết tt/thut  
ngữ  
Tên đầy đủ  
Ý nghĩa  
Host  
Dùng để chcác thiết bmng, các máy  
đầu cui được giám sát…(tt ccác thiết bị  
tham gia vào mng đều được gi chung là  
host)  
Flap  
Tình trng thay đổi trng thái liên tc  
plugin  
Là các ng dng htrcho hot động  
ca mt phn mm.  
5
CHƯƠNG 1. GII THIU CHUNG  
1.1. Gii thiu  
Network mornitoring hay tiếng vit hiu là giám sát, theo dõi mng là mt trong  
nhng vn đề hin nay trlên rt quan trng trong vic qun trcác hthng mng.  
Nó hn chế ti đa vic mng bgián đon trong quá trình hot động. Nó đảm bo vic  
khai thác tài nguyên có hiu qu, đảm bo an toàn, tin cy cho nhng dch vcung  
cp… Hin nay có rt nhiu công cgiám sát mng htrcho công vic ca người  
qun tr. Chc năng ca chúng là giám sát thng thái hot động ca các thiết bmng,  
các dch vmng, và các máy đầu cui tham gia vào mng và thông báo cho người  
qun trkhi có schoc khnăng ssy ra sc. Có cnhng hthng thương mi  
như HPopen View… Hay ngun mnhư openNMS, Cacti, Nagios… Mi hthng li  
có nhng ưu nhược đim riêng. Tuy nhiên khnăng ca chúng li không hơn nhau  
nhiu lm. Bài khóa lun này tp trung vào vic nghiên cu mt hthng giám sát da  
trên Nagios, mt sn phm ngun mở được sdng rng rãi. Tkhi ra đời 2002 đến  
nay Nagios đã liên tc phát trin và rt được quan tâm. Cng đồng quan tâm và sử  
dng Nagios cho đến nay theo thng kê ca http://nagios.org là vào khong 250.000  
người. Tphiên bn 1.0 đầu tiên, đến nay Nagios đã phát trin nên phiên bn 3.x và  
vn liên tc cho ra nhng phiên bn mi vi tính năng mnh mhơn. Đặc bit Nagios  
có khnăng phân tán. Vì vy nó có thgiám sát các mng khng l, đạt c100.000  
node.  
1.2. Mc đích ca khóa lun  
Khóa lun stp trung vào tìm hiu khnăng ca hthng Nagios. Nó đáp ng  
được nhng gì cho công vic qun trmng. Cách thc nó hot động như thế nào và  
trin khai thnghim hthng đó trên mng ca trường đại hc công ngh.  
1.3. Kết quả đạt được  
Sau mt thi gian nghiên cu, tìm hiu, tôi đã nm bt được các chc năng và  
đặc đim ca Nagios, tìm hiu được cách thc tchc và hot động ca hthng. Tôi  
đã trin khai thnghim hthng đó trên mng ca trường đại hc Công Nghvà  
bước đầu có nhng nhn xét và đánh giá vhot động ca hthng.  
1.4. Bcc khóa lun  
Chương 1: Gii thiu chung vkhóa lun, đề tài, mc đích thc hin và kết quả  
đạt được.  
1
Chương 2: Gii thiu tng quan vNagios, đưa ra cái nhìn khái quát vhthng  
Nagios.  
Chương 3: Gii thiu cơ bn về đặc đim và cách thc cu hình trong Nagios.  
Chương 4: Chi tiết các chc năng ca hthng Nagios.  
Chương 5: Các khái nim, vn đề liên quan đến hthng Nagios.  
Chương 6: Đim li kết quả đạt được sau khi nghiên cu, cài đặt và trin khai hệ  
thng Nagios  
2
CHƯƠNG 2. TNG QUAN VNAGIOS  
2.1. Chc năng ca Nagios  
Giám sát trng thái hot động ca các dch vmng (SMTP, POP3, IMAP,  
HTTP, ICMP, FTP, SSH, DHCP, LDAP, DNS, name server, web proxy, TCP port,  
UDP port, csdliu: mysql, portgreSQL, oracle)  
Giám sát các tài nguyên các máy phc vvà các thiết bị đầu cui (chy hệ điu  
hành Unix/Linux, Windows, Novell netware): tình trng sdng CPU, người dùng  
đang log on, tình trng sdng ổ đĩa cng, tình trng sdng bnhtrong và swap,  
stiến trình đang chy, các tp log hthng.  
Giám sát các thông san toàn thiết bphn cng trên host như: nhit độ CPU,  
tc độ qut, pin, gihthng…  
Giám sát các thiết bmng có IP như router, switch và máy in. Vi Router,  
Switch, Nagios có ththeo dõi được tình trng hot động, trng thái bt tt ca tng  
cng, lưu lượng băng thông qua mi cng, thi gian hot động liên tc (Uptime) ca  
thiết b. Vi máy in, Nagios có thnhn biết được nhiu trng thái, tình hung sy ra  
như kt giy, hết mc…  
Cnh báo cho người qun trbng nhiu hình thc như email, tin nhn tc thi  
(IM), âm thanh …nếu như có thiết b, dch vgp trc trc  
Tng hp, lưu givà báo cáo định kvtình trng hot động ca mng.  
2.2 Đặc đim ca Nagios  
Các hot động kim tra được thc hin bi các plugin cho máy phc vNagios  
và các mô đun client trên các thiết bca người dùng cui, Nagios chỉ định knhn  
các thông tin tcác plugin và xlý nhng thông tin đó (thông báo cho người qun lý,  
ghi vào tp log, hin thi lên giao din web…).  
Thiết kế plugin đơn gin cho phép người dùng có thtự định nghĩa và phát trin  
các plugin kim tra các dch vtheo nhu cu riêng bng các công clp trình như shell  
scripts, C/C++, Perl, Ruby, Python, PHP, C#.  
Có khnăng kim tra song song trng thái hot động ca các dch v( đồng thi  
kim tra nhiu dch v).  
3
Htrkhai báo kiến trúc mng. Nagios không có khnăng nht dng được  
topo ca mng. toàn bcác thiết b, dch vmun được giám sát đều phi khai báo và  
định nghĩa trong cu hình.  
Gi thông báo đến người/nhóm người được chỉ định sn khi dch v/host được  
giám sát gp vn đề và khi chúng khôi phc hot động bình thường.(qua e-mail, pager,  
SMS, IM…)  
Khnăng định nghĩa bxlý skin thc thi ngay khi có skin sy ra vi  
host/ dch v.  
Giao din web cho phép xem trng thái ca mng, thông báo, history, tp log.  
2.3. Kiến trúc và tchc hot động  
2.3.1 Kiến trúc ca Nagios  
Hthng Nagios gm hai phn chính:  
1.  
2.  
Lõi Nagios  
Plugin  
Phn lõi nagios có chc năng qun lý các host/dch vụ được giám sát, thu thp  
các kết qukim tra (check) host/dch vtcác plugin gi v, biu din trên giao din  
chương trình, lưu trvà thông báo cho người qun tr. Ngoài ra nó còn tng hp và  
đưa ra các báo cáo vtình hình hot động chung hoc ca tng host/dch vtrong mt  
khong thi gian nào đó.  
Plugin là bphn trc tiếp thc hin kim tra host/dch v. Mi mt loi dch vụ  
đều có mt plugin riêng bit được viết để phc vriêng cho công vic kim tra dch vụ  
đó. Plugin là các script (Perl, C …) hay các tp đã được biên dch (executable). Khi  
cn thc hin kim tra mt host/dch vnào đó Nagios chvic gi plugin tương ng  
và nht kết qukim tra tchúng. Vi thiết kế như thế này, hthng Nagios rt dễ  
dàng được mrng và phát trin. Bt kì mt thiết bhay dch vnào cũng có thể được  
giám sát nếu như viết được plugin cho nó. Hình bên dưới cho ta thy stương quan  
gia các thành phn trong Nagios.  
4
Hình 2.1 Sơ đồ tchc ca Nagios  
2.3.2. Cách thc tchc hot động  
Nagios có 5 cách thc thi các hành động kim tra:  
2.3.2.1. Kim tra dch vtrc tiếp.  
Đối vi các dch vmng có giao thc giao tiếp qua mng như smtp, http, ftp…  
Nagios có thtiến hành kim tra trc tiếp mt dch vxem nó đang hot động hay  
không bng cách gi truy vn kết ni dch vụ đến server dch vđợi kết qutrv.  
Các plugin phc vkim tra này được đặt ngay trên server Nagios.  
2.3.2.2. Chy các plugin trên máy xa bng secure shell  
Nagios server không có cách nào có thtruy cp trc tiếp client để theo dõi  
nhng thông tin như tình trng sdng ổ đĩa, swap, tiến trình … Để làm được vic  
này thì trên máy được giám sát phi cài plugin cc b. Nagios sẽ điu khin các plugin  
cc btrên client qua secure shell ssh bng plugin check_by_ssh. Phương pháp này  
yêu cu mt tài khon truy cp host được giám sát nhưng nó có ththc thi được tt cả  
các plugin được cài trên host đó.  
2.3.2.3. Bthc thi plugin txa (NRPE - Nagios Remote Plugin Executor)  
NRPE là mt addon đi kèm vi Nagios. Nó trgiúp vic thc thi các plugin được  
cài đặt trên máy/thiết bị được giám sát. NRPE được cài trên các host được giám sát.  
Khi nhn được truy vn tNagios server thì nó gi các plugin cc bphù hp trên  
host này, thc hin kim tra và trvkết qucho Nagios server. Phương pháp này  
không đòi hi tài khon truy cp host được giám sát như sdng ssh. Tuy nhiên cũng  
5
như ssh các plugin phc vgiám sát phi được cài đặt trên host được giám sát. NRPE  
có ththc thi được tt ccác loi plugin giám sát. Nagios có thể điu khin máy cài  
NRPE kim tra các thông sphn cng, các tài nguyên, tình trng hot động ca máy  
đó hoc sdng NRPE để thc thi các plugin yêu cu truy vn dch vmng đến mt  
máy th3 để kim tra hot động ca các dch vmng như http, ftp, mail…  
2.3.2.4 Giám sát qua SNMP  
Ct lõi ca giao thc SNMP (SimpleNetwork Management Protocol )là tp hp  
đơn gin các hot động giúp nhà qun trmng có thqun lý, thay đổi trng thái thiết  
b. Hin nay rt nhiu thiết bmng htrgiao thc SNMP như Switch, router, máy  
in, firewall ... Nagios cũng có khnăng sdng giao thc SNMP để theo dõi trng  
thái ca các client, các thiết bmng có htrSNMP. Qua SNMP, Nagios có được  
thông tin vtình trng hin thi ca thiết b. Ví dnhư vi SNMP, Nagios có thbiết  
được các cng ca Switch, router có mhay không, thi gian Uptime (chy liên tc) là  
bao nhiêu…  
2.3.2.5. NSCA (Nagios Service Check Acceptor)  
Nagios được coi là mt phn mm rt mnh vì nó ddàng được mrng và kết  
hp vi các phn mm khác. Nó có thtng hp thông tin tcác phn mm kim tra  
ca hãng thba hoc các tiến trình Nagios khác vtrng thái ca host/dch v. Như  
thế Nagios không cn phi lp lch và chy các hành động kim tra host/dch vmà  
các ng dng khác sthc hin điu này và báo cáo thông tin vcho nó. Và các ng  
dng kim tra có thtn dng được khnăng rt mnh ca Nagios là thông báo và  
tng hp báo cáo. Nagios sdng công cNSCA để gi các kết qukim tra từ ứng  
dng ca bn vserver Nagios. Công cnày giúp cho thông tin gi trên mng được an  
toàn hơn vì nó được mã hóa và xác thc.  
6
Hình 2.2 Các cách thc thc hin kim tra.  
Hình trên cho ta cái nhìn tng quan vcác cách thc kim tra dch vi nagios. Có  
5 client được giám sát bng 5 cách thc khác nhau:  
client 1: Nagios sdng plugin ‘check_xyz’ được cài đặt ngay trên server  
Nagios để gi truy vn kim tra dch vtrên client( http, ftp, dns, smtp…)  
client 2, 3: Nagios sdng các plugin trung gian để chy plugin  
‘check_xyz’ giám sát được cài đặt trc tiếp trên client. (bi vì có nhng dch vkhông  
có htrgiao thc trao đổi qua mng, ví dkhi bn mun kim tra dung lượng ổ đĩa  
cng còn trng trên client…)  
client 4: Kim tra dch vqua giao thc snmp, nagios server ssdng  
plugin check_snmp để kim tra các dch vtrên client có htrgiao thc SNMP. Rt  
nhiu thiết bmng như router, switch, máy in… có htrgiao thc SNMP.  
Client 5: Đây là phương pháp kim tra bị động. Nagios không chủ động  
kim tra dch vmà là client chủ động gi kết qukim tra dch vvcho Nagios  
thông qua plugin NSCA. Phương pháp này được áp dng nhiu trong giám sát phân  
tán. Vi các mng có quy mô ln, người ta có thdùng nhiu server Nagios để giám  
sát tng phn ca mng. Trong đó có mt server Nagios trung tâm thc hin tng hp  
kết qutcác server Nagios con thông qua plugin NSCA.  
7
CHƯƠNG 3. TNG QUAN CU HÌNH  
3.1. Tng quan cu hình  
3.1.1. Các tp cu hình chương trình  
Thư mc /usr/local/nagios/etc/  
- Tp cu hình chính nagios.cfg. Thiết đặt nhng tùy chn chung nht ca  
Nagios, tác động đến cách thc hot động ca Nagios. Trong nagios.cfg bn có thể  
khai báo đường dn các tp cu hình còn li, tp log, tp đệm… . hoc bt tt các tùy  
chn cu hình như cho phép thông báo, sdng lnh ngoi trú, kim tra bị động, cách  
thc log, cp nht…  
- Tp cu hình tài nguyên resource.cfg. Các tp tài nguyên dùng để lưu trcác  
nhãn(macro) được định nghĩa bi người dùng, và lưu trnhng thông tin nhy cm(  
như mt khu…), n vi CGIs. Bn có thchỉ định mt hay nhiu tùy chn tp tài  
nguyên bng cách sdng chthresource_file trong tp cu hình chính.  
- Tp cu hình CGI cgi.cfg. Tp cu hình CGI cha tp các chthị ảnh hưởng  
đến hot động ca CGIs và cách thc hin ththông tin trên giao din web.  
3.1.2. Các tp cu hình đối tượng  
Thư mc /usr/local/nagios/etc/objects  
- Nơi lưu trcác tp cu hình đối tượng được giám sát và qun lý trong nagios.  
Các tp định nghĩa đối tượng được sdng để định nghĩa host, dch v, liên  
h(contacts), nhóm liên h(contactgroups), lnh… đây là nơi định nghĩa tt cmi thứ  
mà bn mun giám sát và cách mà bn giám sát chúng. Bn có thchỉ định mt hay  
nhiu tp định nghĩa đối tượng bng sdng các chthcfg_file và cfg_dir trong tp  
cu hình chính. Các tp cu hình sn có là:  
Localhost.cfg  
Contact.cfg  
Printer.cfg  
//định nghĩa các máy linux  
//đn người dùng  
//đn các máy in  
//đn switch  
Switch.cfg  
Window.cfg  
Command.cfg  
Template.cfg  
//đn máy window  
//đn các lnh  
//mu đn có sn  
8
Timeperiods.cfg  
//đn các chu ki thi gian  
Chi tiết các tùy chn cu hình tham kho phn phlc.  
3.2. Cách thc định nghĩa đối tượng trong các tp cu hình  
đối tượng  
Các đối tượng (bao gm host, dch v, người liên h, lnh, nhóm, chu kthi  
gian) có thể đươc định nghĩa trong bt kì tp nào có đuôi .cfg và khai báo đường dn  
trong tp cu hình chính qua tùy chn cfg_file. Tp template.cfg đã có sn nhng định  
nghĩa đối tượng chun, các định nghĩa đối tượng mi có thkế tha khuôn mu ca  
định nghĩa chun và có ththay đổi đi mi stùy chn cho phù hp vi tng yêu cu  
sdng.  
3.2.1. Định nghĩa host  
Host là mt trong nhng đối tượng cơ bn nht được giám sát. Đặc đim ca host  
là:  
- Host thường là các thiết bvt lý trên mng như server, workstation,  
router,switch, printer…  
- Host có địa chxác định(IP hoc MAC).  
- Host thường có ít nht mt dch vliên quan đến nó.  
- Mt host có thcó mi quan hcha/con, phthuc vi host khác.  
Khi định nghĩa đối tượng host bn có thkế tha mu định nghĩa host có trong  
tp template.cfg. Mu định nghĩa này có trong phn phlc cui tài liu. Tuy nhiên  
vi mi host được định nghĩa mi thì có 3 tùy chn bt buc phi khai báo cho phù  
hp. Đó là tên host, bí danh địa chIP ca host.  
define host{  
use  
linux-server //kế tha đnh nghĩa mu có sn  
host_name  
fedora10  
f10  
alias  
address  
192.168.1.254  
}
9
3.2.2. Định nghĩa dch vụ  
Định nghĩa dch vdùng để khai báo dch vụ được giám sát chy trên host. Dch  
vụ ở đây có thhiu là các dch vmng thc snhư là POP, SMTP, HTTP… hay là  
chlà mt ssliu ca host như slượng người dùng, ổ đĩa còn trng… Các tùy  
chn dưới đây là bt buc khi định nghĩa mt dch vmi. Các tùy chn còn li có thể  
tham kho phn phlc.  
define service{  
host_name  
linux-server  
service_description check-disk-sda1  
check_command  
max_check_attempts 5  
check_interval 5  
check-disk!/dev/sda1  
retry_interval 3  
check_period  
24x7  
notification_interval 30  
notification_period  
notification_options w,c,r  
contact_groups  
}
24x7  
linux-admins  
Tuy nhiên cũng ging như định nghĩa host, nếu sdng kế tha từ định nghĩa  
mu thì khi định nghĩa mt host mi chcn khai báo 4 tùy chn:  
define service{  
use  
generic-service  
linux-server  
host_name  
service_description check-disk-sda1  
check_command  
}
check-disk!/dev/sda1  
3.2.3. Định nghĩa Lnh  
Tt ccác hành động ca Nagios như kim tra host/dch v, thông báo, xlý sự  
kin đều được thc hin bng cách gi lnh. Tt ccác lnh trong Nagios đều được  
định nghĩa trong tp cu hình commands.cfg.  
Khuôn dng ca mt lnh được định nghĩa:  
10  
define command{  
command_name  
Tên lnh  
command_line Người dùng/script! Danh sách tham số  
}
Ví d:  
define command{  
command_name  
check_local_disk  
command_line $USER1$/check_disk! –w $ARG1$ -c $ARG2$ -p $ARG3$  
}
Mt lnh được định nghĩa gm hai thành phn tên lnh và ni dung lnh. Trong  
đó $USER1$ là nhãn người dùng được định nghĩa trong tp tài nguyên resource.cfg.  
$ARG1$, $ARG2$, $ARG3$ là các nhãn tham svào ca lnh. Và check_disk trong  
ví dtrên có ththay bng mt script, file tchy bt kì… Như ví dtrên, khi cn  
kim tra ổ đĩa cng ca mt host A, Nagiso sgi lnh check_local_disk vi các tham  
svào ca host A. Lnh này sthc thi script check_disk vi các tham số đó.  
3.2.4. Các định nghĩa khác  
Ngoài ra còn các định nghĩa khác như nhóm host, nhóm dch v, nhóm liên lc,  
chu kthi gian được gii thiu trong phn phlc ca tài liu …  
11  
CHƯƠNG 4. CÁC DCH VGIÁM SÁT  
4.1. Giám sát các thiết bmng  
Nagios giám sát các thiết bqua giao thc SNMP. Vì vy máy giám sát(Nagios)  
phi cài đặt net-snmp và net-snmp-utils vi redhat/fedora hoc libsnmp-base, snmp,  
snmpd,libsnmp15 vi debian/ubuntu trước khi biên dch và cài đặt nagios plugin. Các  
thiết bị được giám sát phi có IP, htrsnmp, và snmp trng thái bt.  
4.1.1. Máy in  
4.1.1.1. Tng quan  
Nagios sdng plugin check_hpjd cho vic giám sát trng thái ca máy in.  
Plugin check_hpjd sdng giao thc SNMP để xác định trng thái ca máy in.  
Hình 4.1 Giám sát máy in  
Check_hpjd có khnăng phát hin, cnh báo, ghi li các scca máy in như:  
- kết ni đến máy in(ping đến máy in)  
- Kt giy  
- Hết giy  
- Máy in tt  
- Yêu cu xen vào  
- Mc ít  
- Thiếu bnhớ  
- Khay ra giy bị đầy  
4.1.1.2. Cu hình giám sát máy in  
Mc định lnh “check_hpjd” đã được định nghĩa trong tp commands.cfg. Nó  
cho phép bn gi plugin check_hpjd plugin để giám sát máy in trong mng. thna là  
đã có mt mu định nghĩa máy in(được gi là generic-printer) được to trong tp  
12  
templates.cfg. Nó cho phép bn thêm mt định nghĩa máy in mi khá đơn gin. Khi  
định nghĩa máy in được giám sát mi bn chcn khai báo sdng mu này và tùy  
chnh mt stùy chn cho phù hp.  
Trong ln đầu tiên cu hình Nagios giám sát máy in bn cn phi sa tp cu  
hình Nagios. Và sau đó không phi làm li vic này na.  
vi /usr/local/nagios/etc/nagios.cfg  
Sóa du (#) ở đầu dòng như bên dưới trong tp cu hình:  
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg  
Lưu tp cu hình và thoát. Đây là khai báo sdng tp cu hình cho máy in.  
Tp cu hình /usr/local/nagios/etc/objects/printer.cfg slà nơi để bn thêm nhng  
định nghĩa host và dch vmi cho máy in. Tp cu hình này đã cha mt vài ví dvề  
định nghĩa host, hostgroup, và dch v. Bn có thsa nhng mu này để giám sát mt  
máy in trong ln đầu tiên cu hình. Bn cn phi định nghĩa mi đối tượng máy in khi  
giám sát mt máy in mi. Mtp printer.cfg.  
vi /usr/local/nagios/etc/objects/printer.cfg  
Thêm mt định nghĩa host mi cho máy in trong mng mà bn sgiám sát. Thay  
đổi trường host_name, alias, và address theo các giá trca máy in.  
define host{  
use  
generic-printer  
hplj2605dn ; Tên ca máy in  
HP LaserJet 2605dn ; Tên khác ca máy in  
; Tha kế giá trmc đnh ca mu  
host_name  
alias  
address  
192.168.1.30  
; Đa chIP ca máy in  
; Host groups ca máy in  
hostgroups allhosts  
}
Bây gibn có thbxung định nghĩa các dch vụ được giám sát. Nếu là ln đầu  
tiên định nghĩa thì bn có thsa luôn định nghĩa dch vmu trong tp printer.cfg.  
Thêm định nghĩa dch vbên dưới để kim tra trng thái ca máy in. 10 phút mt  
ln check_hpjd plugin skim tra trng thái ca máy in.  
define service{  
use  
generic-service  
hplj2605dn  
; Kế tha tmu  
host_name  
; Tên ca máy in được giám sát  
; Mô tdch vụ  
service_description Printer Status  
check_command  
dch vụ  
check_hpjd!-C public ; Lnh đsdng giám sát  
normal_check_interval 10 ; kim tra li dch vsau 10 phút  
}
13  
Thêm định nghĩa dch vbên dưới để ping đến máy in 10 phút mt ln. Nó phc  
vcho vic giám sát RTA, smt gói tin, và kết ni ca mng.  
define service{  
use  
generic-service  
hplj2605dn  
host_name  
service_description PING  
check_command  
check_ping!3000.0,80%!5000.0,100%  
normal_check_interval 10  
retry_check_interval 1  
}
Lưu tp li và kim chng li cu hình và khi động li Nagios.  
4.1.2. Switch, router  
4.1.2.1. Tng quan  
Nagios sdng 2 plugin giám sát các thiết bnày đó là check_snmp,  
check_mrtgtraf. Nếu mun sdng check_mrtgtraf để giám sát băng thông thì máy  
Nagios phi cài MRTG(chương trình giám sát lưu lượng mng). Hình bên dưới mô tả  
cách thc thc hin vic giám sát Router/switch.  
Hình 4.2: Giám sát Router/Switch  
Khnăng giám sát ca Nagios:  
Kết ni đến thiết b(ping thiết b).  
Trng thái up/down ca các cng.  
Sdng băng thông,lưu lượng trên các cng.  
Tlmt gói tin, trung bình trtrn vòng(RTA)  
14  
4.1.2.2. Cu hình giám sát router/switch  
Hai lnh check_snmp check_local_mrtgtraf đã được định nghĩa trong tp  
commands.cfg. Chúng cho phép bn gi plugin check_snmp check_mrtgtraf plugin  
để giám sát router/switch.  
Mu định nghĩa Router/switch (được gi là generic-switch) đã được to trong tp  
templates.cfg. Nó cho phép bn thêm các định nghĩa router/switch host rt nhanh  
chóng. Các tp cu hình trên được đặt trong thư mc /usr/local/nagios/etc/objects/ .  
Bn có thsdng các định nghĩa sn có này hoc thêm các đinh nghĩa cho phù hp  
vi nhu cu ca mình.  
Trong ln đầu tiên cu hình Nagios giám sát switch bn cn phi sa tp cu hình  
Nagios. Và sau đó không phi làm li vic này na  
vi /usr/local/nagios/etc/nagios.cfg  
Sóa du (#) ở đầu dòng như bên dưới trong tp cu hình:  
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg  
Lưu li và thoát.  
Tp tin /usr/local/nagios/etc/objects/switch.cfg là nơi để định nghĩa cho host và  
dch vrouter and switch. Trong này có sn mt số định nghĩa vhost, hostgroup, và  
dch vmu. Trong ln đầu tiên định nghĩa router/switch bn có thsa luôn các định  
nghĩa mu này tt hơn là to mt định nghĩa mi.  
vi /usr/local/nagios/etc/objects/switch.cfg  
To mt định nghĩa host đơn gin như bên dưới.  
define host{  
use  
generic-switch  
linksys-srw224p  
Linksys SRW224P Switch ; bí danh ca switch  
192.168.1.253 ; đa chIP ca switch  
; Host group ca switch  
; kế tha giá trmc đnh tmu  
host_name  
alias  
; tên ca switch  
address  
hostgroups allhosts,switches  
4.1.2.3. Giám sát Tlmt gói tin, trung bình trtrn vòng  
Ví dthêm định nghĩa dch vdưới đây để giám sát vic mt gói tin và  
RTA(round trip average) gia Nagios host và switch 5 phút mt ln trong điu kin  
bình thường.  
define service{  
use  
generic-service ; Inherit values from a template  
linksys-srw224p  
host_name  
check_command  
check_ping!200.0,20%!600.0,60% ;  
15  
}
Dch vnày trv:  
- CRITICAL, nếu round trip average (RTA) ln hơn 600 milliseconds hoc số  
gói bmt trên 60%,  
- WARNING, cnh báo nếu RTA ln hơn 200ms hoc gói tin bmt ln hơn  
20%.  
- OK, Ngược li chy bình thường nếu RTA nhhơn 200ms và sgói bmt nhỏ  
hơn 20%.  
4.1.2.4. Giám sát thông tin trng thái qua SNMP  
Nếu switch hay router ca bn htrSNMP, bn có thgiám sát rt nhiu thông  
tin bng check_snmp plugin. Bxung định nghĩa dch vbên dưới để định nghĩa  
uptime(thi gian chy liên tc) ca switch.  
define service{  
use  
generic-service ; kế tha giá trtmu  
host_name  
linksys-srw224p  
service_description Uptime  
check_command  
}
check_snmp!-C public -o sysUpTime.0  
Trong mc check_command trên, tham s"-C public" chra rng tên SNMP là  
"public" và "-o sysUpTime.0" chra OID được kim tra.  
Nếu bn mun giám sát mt giao din/cng(port/interface) nào đó trên switch ở  
trng thái up hay down, bn thêm mt định nghĩa dch vnhư sau:  
define service{  
use  
generic-service Tha kế giá trtmu  
host_name  
linksys-srw224p  
service_description Port 1 Link Status  
check_command  
check_snmp!-C public -o ifOperStatus.1 -r 1 -m  
RFC1213-MIB  
}
Trong ví dtrên, tham s"-o ifOperStatus.1" chvtrí cng ở đây là 1. Tham số  
"-r 1" có ý nghĩa là check_snmp plugin trvtrng thái OK nếu "1" được tìm thy  
trong kết quSNMP (1 chtrng thái "up"ca cng) và CRITICAL nếu nó không tìm  
thy. Tham s"-m RFC1213-MIB" chra rng check_snmp plugin chti "RFC1213-  
MIB" thay vì ti các MIB được cài trên hthng ca bn. Điu này giúp làm tăng tc  
độ mi thlên.  
Lưu ý:  
16  
Bn có thtìm ra các OID được giám sát trên switch bng cách sdng lnh(  
thay 192.168.1.253 thành địa chIP ca switch bn qun lý):  
snmpwalk -v1 -c public 192.168.1.253 -m ALL .1  
4.1.2.5 Giám sát băng thông và tllưu lượng  
Nếu bn đang giám sát băng thông sdng trên switch hay router sdng  
MRTG, bn có thnhn được cnh báo khi tllưu lượng đạt ti ngưỡng mà bn định  
trước. check_mrtgtraf plugin (sn có trong các bn Nagios plugin được phân phi) cho  
phép bn làm điu này. Bn cũng cn phi cho check_mrtgtraf plugin biết tp log nào  
lưu trnhng dliu MRTG , ngưỡng gii hn, v.v... Trong ví dnày, chúng ta sẽ  
giám sát mt cng trên Linksys switch. Tp MRTG log được lưu trong  
/var/lib/mrtg/192.168.1.253_1.log. Đây là định nghĩa dch vmà chúng ta sdng để  
giám sát dliu băng thông được lưu trong tp log.  
define service{  
use  
generic-service ; Inherit values from a template  
linksys-srw224p  
host_name  
service_description Port 1 Bandwidth Usage  
check_command  
check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000,50000  
00!10  
}
Trong ví dtrên, tp "/var/lib/mrtg/192.168.1.253_1.log" được khai báo trong  
phn check_local_mrtgtraf chra rng plugin sẽ đọc tp MRTG log khi xlý. Tùy  
chn "AVG" có ý nghĩa là sdng sliu thng kê băng thông trung bình. Tùy chn  
"1000000,2000000" là cnh báo khi ti ngưỡng trong vic tăng tllưu lượng(bng  
byte). Tùy chn "5000000,5000000" là ti hn lưu lượng gi đi (bng byte). Tùy chn  
"10" chra rng plugin trvtrng thái CRITICAL nếu tp MRTG log không được  
cp nht sau 10 minute (thường là được cp nht 5 phút mt ln).  
Lưu li tp, khi động li Nagios.  
4.2. Giám sát máy đầu cui  
4.2.1. Giám sát các tài nguyên trên máy đầu cui  
Trên mi máy tính đầu cui được cài mt Agent. Agent này sthc hin vic  
kim tra trng thái các tài nguyên trên chính máy đó. Nagios giao tiếp vi Agent này  
để thu thp kết qu. NSClient++ là Agent được sdng trên máy được giám sát chy  
hệ điu hành window và NRPE trên máy được giám sát chy hệ điu hành linux.  
Nagios sdng 2 plugin để giao tiếp vi các Agent này là check_nt cho window và  
check_nrpe cho linux. Khnăng giám sát:  
Ti CPU.  
17  
Tình trng sdng ổ đĩa cng.  
Tình trng sdng bnhtrong, và swap.  
Sngười dùng đang logon, stiến trình đang chy và tp log hthng trên  
linux Giám sát tng dch v, tiến trình trên window.  
Chi tiết cách thc cài đặt, cu hình tham kho phn phlc.  
4.2.2. Giám sát các thông san toàn phn cng trên máy đầu cui  
Plugin giám sát các thông san toàn phn cng là check_sensors. Máy được  
giám sát phi cài đặt LM sensors và nhân phi được cp nht module driver phù hp.  
Các thông số được giám sát là:  
Nhit độ CPU.  
Tc độ qut.  
Pin.  
Gihthng.  
Chi tiết cách thc cài đặt, cu hình tham kho phn phlc.  
4.3. Giám sát các dch vmng  
Đối vi các dch vmng như HTTP, POP3, IMAP, FTP, SSH… là các dch vụ  
dùng chung, công khai. Nagiso thường giám sát được trng thái ca các dch vnày  
mà không cn bt cyêu cu truy cp đặc bit nào. Không như các dch vriêng,  
Nagios không thgiám sát được nếu như không có các agent trung gian. Ví dcác  
dch vcó liên quan đến host như là ti CPU, tình trng sdng bnhtrong, ổ đĩa,  
… Vì nhng thông tin này thường không được công khai vi bên ngoài và yêu cu  
quyn truy cp. Khi giám sát các dch vmng, Nagios sgi các plugin được đặt  
ngay trên server Nagios gi mt yêu cu dch vụ đến host cung cp dch v, hoc gi  
mt plugin trên mt host và yêu cu dch vtrên host th2 ri thu thp kết qutrv.  
4.3.1. Giám sát web server  
4.3.1.1. Tng quan  
Nagios sdng plugin check_http trong vic giám sát dch vHTTP trên web  
server. Check_http có thnhn biết được các thông tin sau:  
Thi gian trli ca web server.  
18  
Mã li trvca dch vhttp (403 : không tìm thy tp, 404: li xác  
thc).  
Ni dung chui trvca http có cha chui s cho trước không.  
Mt URL nào đó có còn nm trên web server hay không.  
4.3.2.2. Cu hình giám sát  
Tt ccác dch vụ đều được cung cp bi mt host nào đó. Mi định nghĩa dch  
vgiám sát đều phi khai báo host cung cp. Định nghĩa host cung cp nếu nó chưa  
được định nghĩa (định nghĩa vào mt tp cu hình bt kì được khai báo trong tp cu  
hình chính nagios.cfg). Ví dụ định nghĩa mt host cung cp:  
define host{  
use  
generic-host  
remotehost ; Tên ca host  
Some Remote Host ; Tên khác ca host  
; kế tha giá trmc đnh tmu  
host_name  
alias  
address  
hostgroups  
}
192.168.1.50  
allhosts  
; đa chIP ca host  
; Nhóm ca host  
Định nghĩa mt dch vụ đơn gin cho vic giám sát dch vHTTP trên máy xa  
như sau:  
define service{  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description HTTP  
check_command check_http  
}
Định nghĩa dch vnày sgiám sát dch vHTTP chy trên máy xa. Nó sto  
cnh báo nếu web server không trli sau 10 giây hoc web server trvmã  
li(403,404…)  
Lưu ý:  
Để giám sát mc sâu hơn bn có thxem hướng dn check_http plugin vi  
tham sdòng lnh là --help. Cú pháp --help có tt ccác plugin.  
Dưới đây là mt định nghĩa dch vụ ở mc sâu hơn. Nó skim tra xem  
/download/index.php URI có cha chui "latest-version.tar.gz" hay không. Thông báo  
li nếu không tìm thy, URI không hp l, hay là web server trli sau 5 giây.  
define service{  
19  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description Product Download Link  
check_command check_http!-u /download/index.php -t 5 -s "latest-  
version.tar.gz"  
}
4.3.2. Giám sát proxy server  
Tcách thc phc vca mt web proxy, chúng ta có thsdng plugin  
check_http để thc hin vic truy vn đến proxy yêu cu dch vvà nhn kết qutrả  
v.  
Giám sát hot động bng cách truy vn đến proxy, yêu cu mt địa chURL như  
HTTP OK HTTP/1.0 200 OK -2553 bytes in 0.002 seconds  
Trong đó –I : là tham số địa chca proxy cn kim tra  
-H tên ca host cung cp URL cn ly  
-u URL mun ly  
Định nghĩa lnh:  
define command{  
command_name check_proxy  
}
Định nghĩa host proxy được giám sát  
define service{  
service_description Webproxy  
host_name linux01  
check_command check_proxy!3128  
20  
...  
}
4.3.3. Giám sát file server  
Khi bn cn giám sát FTP server, bn sdng check_ftp plugin. Tp  
commands.cfg có sn định nghĩa lnh sdng plugin này:  
define command{  
command_name check_ftp  
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$  
}
Dưới đây là định nghĩa dch vụ đơn gin cho vic giám sát PTF server txa:  
define service{  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description FTP  
check_command check_ftp  
}
Định nghĩa dch vnày sgiám sát dch vPTP và to ra thông báo nếu server  
không trli sau 10 giây.  
Còn dưới đây là mt định nghĩa dch vụ ở mc sâu hơn. Dch vskim tra FTP  
server chy trên cng 1023 ca host xa. Nó sto ra thông báo nếu server không trả  
li sau 5 giây hoc thông đip server trli không có chui "Pure-FTPd [TLS]".  
define service{  
use  
generic-service  
remotehost  
; Inherit default values from a template  
host_name  
service_description Special FTP  
check_command check_ftp!-p 1023 -t 5 -e "Pure-FTPd [TLS]"  
}
21  
4.3.4. Giám sát mail server  
4.3.4.1. Giám sát dch vsmtp  
check_smtp plugin được sdng để giám sát email server. Tp commands.cfg  
cha định nghĩa lnh sdng check_smtp plugin:  
define command{  
command_name check_smtp  
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$  
}
Dưới đây là định nghĩa dch vụ đơn gin cho vic giám sát SMTP server  
define service{  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description SMTP  
check_command check_smtp  
}
Định nghĩa dch vnày sgiám sát dch vSMTP server và to ra thông báo nếu  
SMTP server không trli sau 10 giây.  
Còn định nghĩa dưới đây skim tra SMTP server và to ra thông báo nếu server  
không trli sau 5 giây và thông đip trvtserver không cha đon  
"mygreatmailserver.com".  
define service{  
use  
generic-service  
; kế tha giá trmc đnh tmu  
host_name remotehost  
service_description SMTP Response Check  
check_command check_smtp!-t 5 -e "mygreatmailserver.com"  
}
4.3.4.2. Giám sát dch vPOP3  
check_pop plugin được sdng để giám sát dch vPOP3 trên mail server . Tp  
commands.cfg cha định nghĩa lnh sdng check_pop plugin:  
define command{  
command_name check_pop  
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$  
}
22  
Dưới đây là định nghĩa dch vụ đơn gin cho vic giám sát dch vPOP3 trên  
host xa:  
define service{  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description POP3  
check_command check_pop  
}
Định nghĩa dch vnày sgiám sát dch vPOP3 và to ra thông báo nếu POP3  
không trli sau 10 giây.  
Còn định nghĩa dưới đây skim tra dch vPOP3 và to ra thông báo nếu server  
không trli sau 5 giây và thông đip trvtserver không cha đon  
"mygreatmailserver.com".  
define service{  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description POP3 Response Check  
check_command check_pop!-t 5 -e "mygreatmailserver.com"  
}
4.3.4.3. Giám sát dch vIMAP  
check_imap plugin được sdng để giám sát dch vIMAP4 trên mail server .  
Tp commands.cfg cha định nghĩa lnh sdng check_imap plugin:  
define command{  
command_name check_imap  
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$  
}
Dưới đây là định nghĩa dch vụ đơn gin cho vic giám sát dch vIMAP4 trên  
host xa:  
define service{  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description IMAP  
check_command check_imap  
}
23  
Định nghĩa dch vnày sgiám sát dch vIMAP4 và to ra thông báo nếu  
IMAP4 không trli sau 10 giây.  
Còn định nghĩa dưới đây skim tra dch vIMAP4 và to ra thông báo nếu  
server không trli sau 5 giây và thông đip trvtserver không cha đon  
"mygreatmailserver.com".  
define service{  
use  
generic-service  
remotehost  
; kế tha giá trmc đnh tmu  
host_name  
service_description IMAP4 Response Check  
check_command check_imap!-t 5 -e "mygreatmailserver.com"  
}
Khi động li Nagios. Chú ý là mi ln bn thêm mt định nghĩa dch vmi  
vào tpc cu hình thì bn phi kim chng li tp đó, và khi động li Nagios. Nếu  
quá trình kim chng có li thì phi cu hình li cho đúng đến khi không còn li thì  
mi khi động li Nagios.  
4.3.5. Giám sát Các dch vkhác  
Ngoài nhng dch vtrên Nagios còn sn có plugin cung cp vic giám sát các  
dch v: SSH, LDAP, DHCP, DNS, database, cng TCP, cng UDP… Phn cài đặt và  
định nghĩa các dch vnày có ththam kho phn phlc.  
4.4. Cnh báo cho người qun trị  
Không phi lúc nào người qun trcũng có thdõi theo và nm bt mi hot  
động ca mng qua giao din ca hthng giám sát. Bi vy bt chthng giám sát  
mng nào cũng cn cung cp chc năng thông báo cho người qun trqua các phương  
tin truyn tin như email, sms, IM… Nagios cung cp mt hthng thông báo linh  
hot và qua nhiu phương tin truyn tin khác nhau. Trong nagios, thông báo sy ra  
khi host/dch vthay đổi ttrng thái này sang trng thái khác. Tuy nhiên không phi  
bt chost/dch vnào cũng có thnhn thông báo. Thông báo trước khi đến được các  
liên lc nó phi qua nhiu blc khác nhau. Khi mt skin sy ra vi mt host/dch  
vnào đó thì trước khi quyết định ra mt thông báo cho người qun tr, Nagios sthc  
hin kim tra:  
-
Cu hình ca Nagios có cho phép gi thông báo hay không.(tùy chn  
enable_notifications)  
-
Host/dch vụ được kim tra có trong thi gian được lp lch ngng hot  
động không (downtime). Nếu host/dch vụ đang trong thi gian downtime thì cách  
24  
hành động kim tra host/dch vụ đó vn được thc thi. Kết quả được lưu li trong  
Nagios còn thông báo thì skhông được gi đi.  
-
Host/dch vụ được kim tra có đang bFlapping không (nếu cu hình bt  
tùy chn phát hin flap). Chi tiết vtình trng Flapping có trong chương 5.  
Tng host/dch vcó thể được cu hình để chthông báo cho người qun  
trmt stình trng nht định.  
-
-
Mi host/dch vcó thể được định nghĩa mt chu kì thi gian cho thông  
báo. Nếu khong thi gian thông báo được to không nm trong gii hn này thì thông  
báo cũng bloi.  
-
Thi gian tln thông báo trước đến thi đim hin ti kim tra đã ln  
hơn khong thi gian được khai báo trong tùy chn <notification_interval> hay chưa.  
Đây là tùy chn cu hình khong thi gian gia hai ln thông báo knhau.  
-
Cui cùng Nagios kim tra cu hình xem nhng người dùng Nagios nào  
được nhn thông báo vtình trng ca host/dch vụ đang được kim tra .  
Chi tiết cu hình gi thông báo có trong phn phlc ca tài liu.  
4.5. Tng hp báo cáo  
Ngoài chc năng giám sát và cnh báo các trng thái hin thi ca các thành  
phn mng Nagios còn có thlp báo cáo vtình trng hot động ca các thành phn  
mng trong mt khong thi gian nht định. Báo cáo có thể được lp vi tng  
host/dch v, tng nhóm hoc toàn bmng vi các blc trng thái(SORT/HARD),  
tình trng(OK, WARNING, CRITICAL, UNKNOWN). Tcác sliu trong báo cáo  
người qun trnm được tình trng hot động ca các thành phn mng trong mt  
khong thi gian nht định, đánh giá được độ ổn định ca các thành phn mng. Vic  
tng hp báo cáo được thc hin khá đơn gin qua giao din web.  
25  

Tải về để xem bản đầy đủ

pdf 74 trang yennguyen 06/06/2025 120
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nghiên cứu triển khai hệ thống giám sát quản trị mạng (Trên nền tảng hệ thống mã nguồn mở Nagios)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_nghien_cuu_trien_khai_he_thong_giam_sat_quan_tri_m.pdf