OCS Inventory NG là một hệ thống giám sát dựa trên giao thức HTTP/HTTPS
mà không dựa trên giao thức SNMP như đa số các hệ thống giám sát khác. Các thông
tin được agent trực tiếp gửi qua giao thức HTTP cho nên có thể giám sát được các máy
không trong cùng mạng LAN, mà chỉ cần có kết nối tới OCS Inventory NG Server qua
cổng 80.
76 trang |
Chia sẻ: lylyngoc | Lượt xem: 2612 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn -Triển khai dịch vụ giám sát thiết bị đầu cuối, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng nhập hàng ngày luân phiên cho Comunication Server( mặc
định file /etc/logrotate.d/ocsinventory-NG).
Tạo file cấu hình Apache (ocsinventory.conf). Nếu hệ thống đang sử dụng
thƣ mục cấu hình Apache . file này sẽ đƣợc copy vào thƣ mục này. Nếu
không, quá trình sẽ đƣợc nhắc nhở để thêm nội dung của tập tin này vào
cuối Apache tập tin cấu hình chính.
20
Quá trình cài đặt Comunication Server đã hoàn tất. Quá trình sẽ đƣợc nhắc để
thiết lập giao diện điều khiển chính. Nhập "y" hoặc xác nhận để thiết lập giao diện
điều khiển chính lên, nhập vào "n" để bỏ qua cài đặt giao diện điều khiển
Tiếp theo, thiết lập sẽ kiểm tra các modules cần thiết PERL (Yêu cầu cấu hình.):
XML::Simple phiên bản 2.12 hoặc cao hơn
DBI phiên bản 1.40 hoặc cao hơn
DBD::Mysql phiên bản 2.9004 hoặc cao hơn
Net::IP phiên bản 1.21 hoặc cao hơn
Chú ý: nếu thiếu bất kỳ module nào,cài đặt sẽ hủy bỏ
Nếu mọi thứ đều thỏa mãn yêu cầu, cài đặt sẽ cài đặt giao diện điều khiển chính
vào thƣ mục con: “ocsreports ".
Tạo cấu trúc thƣ mục: /ocsreports
Tạo cấu trúc thƣ mục /download
Copy file vào thƣ mục /ocsreports
Sửa phân quyền file và thƣ mục cho phép Apache daemon có quyền đọc
và viết thƣ mục yêu cầu truy suât write trong các thƣ mục /ocsreports,
/ocsreports/ipd and /download, cf
Cấu hình PERL script ipdiscover-util.pl để truy cập cơ sở dữ liệu và cài
đặt nó.
21
Cuối cùng phải restart dịch vụ của Apache : httpd để cài đặt có hiểu lực.
Cấu hình managerment server:
Mở trên web browers và nhập địa chỉ của máy
để kết nối tới Adminsitrator console.
Nếu cơ sở dữ liệu chƣa đƣợc cài đặt, điều này sẽ bắt đầu quá trình thiết lập OCS
Inventory. Nếu không, có thể chạy lại quá trình cấu hình bằng cách duyệt
(điều này đƣợc sử dụng khi nâng cấp máy chủ
OCS inventory).
$ /etc/init.d/httpd restart
22
Điền vào các thông tin để kết nối với máy chủ cơ sở dữ liệu MySQL với một
ngƣời sử dụng những ngƣời có khả năng tạo ra cơ sở dữ liệu, bảng biểu, các chỉ số, vv
(thƣờng là root):
MySQL user name
MySQL user password
MySQL hostname
Quá trình cài đặt sẽ tạo ra cơ sở dữ liệu “ocsweb” và sẽ thêm vào Mysql user
ngƣời dùng “ocs” với password: “ocs” Đồng thời cũng gán các quyền “Select | Insert |
Update | Delete | Create | Drop | References | Index | Alter | Create temp | Lock” trên
cơ sở dữ liệu "ocsweb". User ocs này có quyền Administrator Server để kết nối tới cơ
sở dữ liệu. Nếu không muốn MySQL sử dụng mặc định ngƣời sử dụng "OCS" với mật
khẩu "OCS"có thể cập nhật trong tập tin "dbconfig.inc.php" các hằng số
"COMPTE_BASE” và "PSWD_BASE". Cập nhật cấu hình máy chủ Comunicaton,
đặc biệt là trong tập tin cấu hình apache để có hiệu lực.
Cuối cùng, có thể điền vào một văn bản mô tả các TAG (các khóa) là một đoạn
văn bản hiển thị lúc khởi động đầu tiên của agent để yêu cầu ngƣời dùng nhập vào giá
trị TAG (Nhóm ngƣời dùng, vùng địa lý của ngƣời dùng…). Đó là một dữ liệu chung
cho phép sắp xếp, phân loại các máy tính mới để tiện cho việc quản lý agent. Nếu
không muốn chức năng này, chỉ cần bỏ trống.
23
Cấu hình Managerment Server giờ đã hoàn thành.
Nhập vào địa chỉ và log in với tài khoản admin,
password: admin
24
Giao diện quản lý
3.5 Cài đặt agent trên client computers
Có 2 phƣơng pháp để giám sát máy ngƣời dùng cuối sử dụng OCS Inventory
Agent:
+ Nếu client computer không kết nối tới Comunication Server, inventory sẽ
lƣu trữ thông tin ở client đó dƣới dạng một file nén XML với phần mở
rộng “.ocs”. Ngƣời dùng có thể gửi file này thông qua Email, USB … tới
ngƣời quản trị. Sau đó có thể nhập file này vào cơ sở dữ liệu thông qua
Administrator Server.
+ Nếu client đang có kết nối HTTP tới Comunication Server, Agent sẽ yêu
cầu Comunication Server và gửi trực tiếp thông tin tới máy chủ.
25
3.5.1 Cài đặt Agent trên máy Windows client
OCS Inventory NG Agent cho windows có thể chạy nhƣ một windows services,
tự động khởi động cùng windows. Tuy nhiên, OCS Inventory NG agent cung cấp một
kiểu chạy độc lập và không nhƣ một windows services. Tức là có thể hoạt động thông
qua log on script, một Active Directory GPO, một scheduled task trong starup của
windows.
Tuy nhiên, việc sử dụng nhƣ một windows services đƣợc khuyến nghị, đặc biệt
trong mục đính triển khai ứng dụng tới client từ server.
Tải về và giải nén file OCSNG_WIN32_AGENT_4.6.01.zip. sẽ thu đƣợc 3 files:
OcsAgentSetup.exe : agent đƣợc cài đặt và chạy nhƣ một windows services.
OCS inventory khuyến nghị sử dụng gói này.
OcsAgent.exe: dùng để cài đặt độc lập trên máy không đƣợc kết nối tới server,
cho phép chạy inventory một cách thủ công với câu lệnh chuyển đổi /LOCAL ( nếu
không muốn sử dụng nhƣ một services).
OcsLogon.exe: gói khởi động của OCS Inventory NG dùng để triển khai ứng
dụng thông qua log on script hay Active Directory GPO trong domain. Nếu Agent
thực sự đƣợc cài đặt, nó sẽ chạy cùng agent. Cách khác, có thể tải về binaries của
agent từ Comunication Server, Setup và chạy nó.
3.5.1.1 Nên chọn phiên bản Windows agent nào ?
Trƣớc tiên, cần giải thích Agent và services hoạt động nhƣ thế nào?
Window Agent hoạt động nhƣ thế nào?
Khi OCS Inventory NG Agent “OCSInventory.exe” chạy, nó sẽ liên hệ với
Comunication Server và yêu cầu việc cần làm. Server trả lời “nothing” ( không phải
thời gian inventory hay deploy package), vì thế agent stop.
Khi agent hoạt động, nó sẽ thu thập thông tin, đóng gói và gửi cho Comunication
Server.
Còn lại, server có thể yêu cầu agent :
Gửi một inventory: Agent thu thập các thuộc tính của computer và gửi
chúng tới server thông qua giao thức HTTP. Server chỉ trả lời nếu lần cuối
26
cùng inventory cũ hơn khi so sánh với trƣờng “FREQUENCY”, đặc biệt
trong ngày
Discover the network: Agent truy suất các thông tin của máy, quét các
mạng con của nó, và gửi các thông tin này tới máy chủ bằng giao thức
HTTP. Server chỉ trả lời khi client này đƣợc chọn lọc chạy IPDISCOVER
Deploy a package: Agent liên lạc với Deployment Server thông qua giao
thức HTTP để lấy thông tin file. Tải từng mảnh gói về từ repository. Ghép
mảnh lại và chạy nó.
Tại mỗi thời điểm inventory hoàn thành, Agent sẽ ghi vào trong file cấu hình
“OCSInventory.dat” vào trong thƣ mục cấu hình của nó, nơi mà nó sẽ đặt tùy chọn cấu
hình tải về từ Comunication Server.
Khi chạy lần đầu tiên, OCS Inventory NG sẽ cảnh báo ngƣời dùng bởi một giá
trị TAG (Nhóm ngƣời dùng, vùng địa lý của ngƣời dùng…). Đó là một dữ liệu chung
cho phép sắp xếp, phân loại các máy tính mới để tiện cho việc quản lý agent. Dòng
thông báo này chính là thông báo đã nhập vào trong khi cấu hình management Server.
Sau đó nó sẽ inventory và gửi tới Comunication Server thông qua giao thức
HTTP.
Windows service hoạt động nhƣ thế nào?
OCS Inventory NG Agent “OCSInventory.exe” sẽ đƣợc gọi và chạy bởi dịch vụ
có tên “OcsService.exe” theo chu kỳ “PROLOG_FREQ”. Nó sẽ đợi thời gian
“TTO_WAIT” để tiếp tục gửi thông tin. Giá trị “TTO_WAIT” là một giá trị ngẫu
nhiên giữa 0 và giá trị “PROLOG_FREQ”. Điều này sẽ làm cho các agent không đồng
thời gửi thông tin tới Comunication Server, giúp làm giảm tắc ngẽn mạng.
Khi dịch vụ chạy, nó sẽ sử dụng câu lệnh để chuyển đổi giá trị đặc biệt
“Miscellaneous” của file “service.ini” nhƣ sau:
27
3.5.1.2 Xác định sử dụng service hay chế độ stand alone agent?
Nếu muốn máy tính đƣợc giám sát mà không có ngƣời dùng
log on vào máy thì nên dùng Service agent.
Nếu sử dụng tính năng deploy package. Nên sử dụng Service
agent, theo cách này, package sẽ đƣợc tải về dƣới dạng ẩn,
ngƣời dùng log on vào vẫn làm việc bình thƣờng.
Nếu không muốn chạy nhƣ một service, không muốn xuất
hiện trong registry thì có thể sử dụng Stand alone. Tuy nhiên,
tính năng deploy package sẽ làm mất thời gian khi log on vào
client.
[OCS_SERVICE]
NoProxy=1
Server=192.168.0.81
Pnum=80
Miscellaneous=/DEBUG /NP /server:192.168.0.81 /pnum:80
PROLOG_FREQ=10
OLD_PROLOG_FREQ=10
TTO_WAIT=1505
28
3.5.1.3 Cài đặt Agent theo cách sử dụng Windows service.
Chạy “OcsAgentSetup.exe” trên client computer và chọn “next”
Xác nhận giấy phép bằng cách lựa chọn “ I Agree”
Nhập vào server Address. Server Port ( cổng HTTP, mặc định là 80), lựa chọn
vào NO IE Proxy nếu máy không sử dụng Proxy.
29
3.5.1.4 Cài Stand alone Agent ( không dùng windows service).
Cách này phù hợp cho việc cài agent tới các máy không kết nối đƣợc tới
Comunication Server. Cài đặt có thể sử dụng với ngƣời dùng thông thƣờng ( không
yêu cầu là administrator).
Chạy file “OcsAgent.exe /local”.
30
3.5.2 Cài đặt agent trên client LINUX
OCS Inventory Agent trên LINUX yêu cầu:
dmidecode phiên bản 2.2 hoặc cao hơn
PERL 5.6 hoặc cao hơn
Perl module XML::Simple phiên bản 2.12 hoặc cao
hơn
Perl module Compress::Zlib phiên bản 1.33 hoặc cao
hơn
Perl module Net::IP phiên bản 1.21 hoặc cao hơn
Perl module LWP::UserAgent phiên bản 5.800 hoặc
cao hơn
Perl module Digest::MD5 phiên bản 2.33 hoặc cao hơn
Perl Module Net::SSLeay phiên bản 1.25 hoặc cao hơn
Make utility
C/C++ compiler like GNU GCC
Để cài các gói này, trên Fedora/CentOS/Redhat có thể sử dụng “yum” để cài:
Trên hệ thống Debian ( Ubuntu) có thể sử dụng “atp-get” để cài đặt:
Hoặc tải các gói về và cài đặt chúng hiện có tại
$ yum install perl-XML-Simple
$ yum install perl-Compress-Zlib
$ yum install perl-Net-IP
$ yum install perl-LWP
$ yum install perl-Digest-MD5
$ yum install perl-Net-SSLeay
$ apt-get install libxml-simple-perl
$ apt-get install libcompress-zlib-perl
$ apt-get install libnet-ip-perl
$ apt-get install libwww-perl
$ apt-get install libdigest-md5-perl
$ apt-get install libnet-ssleay-perl
31
Cài đặt OCS inventory LINUX agent
Tải về gói “OCSNG_LINUX_AGENT_1.01.tar.gz” từ website của OCS
Inventory
Giải nén:
Và phải có quyền root thì mới có thể cài đặt.
Quá trình sẽ hỏi bạn có muốn cấu hình agent hay không. Nhấp “y” hoặc enter.
Có 3 lựa chọn đƣa ra để lƣu cấu hình file:
Nhập vào số 0,1, hoặc 2 để lựa chọn nơi lƣu cấu hình file. Tiếp theo quá trình cài
đặt sẽ tạo thƣ mục theo lựa chọn. Tiếp theo hãy nhập vào địa chỉ của OCS inventory
NG Server , tag,.. tất cả theo mặc định. Sau khi cài thành công sẽ OCS inventory
Agent sẽ thử gửi thông tin cho Comunication Server.
$ tar –xvzf OCSNG_LINUX_AGENT_1.1.2.tar.gz
$ cd OCSNG_LINUX_AGENT_1.1.2
$ perl Makefile.pl
$ make
$ make install
0 -> /etc/ocsinventory
1 -> /usr/local/etc/ocsinventory
2 -> /etc/ocsinventory-agent
32
3.6 Backup và restore cơ sở dữ liệu
3.6.1 Backup cơ sở dữ liệu
Khi cài đặt OCS Inventory NG sẽ sinh ra một công cụ “mysqldump” trong thƣ
mục “/us/bin/mysqldump”. Công cụ này cho phép backup cơ sở dữ liệu “ocsweb” của
hệ thống OCS Inventory NG. Để backup cơ sở dữ liệu này ta có thể sử dụng lệnh :
Câu lệnh này sẽ lƣu trữ nội dung cơ sở dữ liệu “ocsweb” vào trong file
“mysqldump_ocsweb.sql”
3.6.2 Restore cơ sở dữ liệu.
Có thế sử dụng lệnh “mysql” để lấy lại cơ sở dữ liệu “ocsweb” tại một điểm đã
backup.
$ mysqldump --add-drop-table --complete-insert --extended-inser --quote-names
--host=localhost --user=”root” --password=“password off root” ocsweb >
mysqldump_ocsweb.sql
$ Mysql -u root -p ocsweb
$ Source “đƣờng dẫn tới file mysqldump_ocsweb.sql đã lƣu”
$ exit
33
CHƢƠNG 4
CÁC DỊCH VỤ GIÁM SÁT VÀ TRIỂN KHAI ỨNG DỤNG TỪ XA
4.1 Các dịch vụ giám sát
4.1.1 Giám sát máy trạm
Sau khi cài đặt agent trên các máy trạm, nếu đƣợc lựa chọn (/NOW) OCS
Inventory Agent ngay lập tức sẽ lấy và gửi thông tin của máy trạm đó cho
Comunication server, thông tin bao gồm: thông tin về BIOS, bộ nhớ, tốc độ xử lý của
CPU, số core của CPU, các trinh điều khiển, các thiết bị nhập( bàn phím, chuột), màn
hình, card mạng, các cổng, slote, card âm thanh, màn hình, thông tin ổ cứng, và thông
tin các phần mềm đã cài đặt trên máy đó. Tất cả các thông tin này đƣợc gửi tới
Comunication Server thông qua giao thức HTTP. Sau khi gửi thành công, agent sẽ cập
nhật lại các thông tin về “PROLOG_FREQ” (thời gian định kỳ gửi thông tin),
“TTO_WAIT” trong file “service.ini”, đồng thời tải về file “infor” chứa các nhiệm vụ
Comunication Server yêu cầu thực hiện nếu có qua giao thức HTTPS.
4.1.2 Sử dụng tính năng IP Discover phát hiện các thiết bị mạng
Tính năng Ip Discover cho phép OCS Inventory NG phát hiện ra các thiết bị
mạng đƣợc kết nối vào mạng OCS Inventory NG quản lý.
Comunication Server yêu cầu một số trong các máy đang chạy OCS Inventory
NG agent quét các địa chỉ MAC trong mạng con của máy agent mỗi lần chạy. Chúng
sẽ không quét tất cả toàn bộ mạng, chỉ các mạng nội bộ đƣợc định nghĩa bởi cặp
địa chỉ IP/Subnet mask.
4.1.2.1 Giới thiệu
Phần mềm thống kê rất hữu ích cho ngƣời quản trị. Nó cho phép “soi” các máy
tính hoạt động trong hệ thống. Ngày nay, với sử dụng TCP/IP có thể nói rằng việc
giám sát các thiết bị rất dễ dàng đặc biệt với OCS Inventory NG.
34
Nhƣng, với các thiết bị không gửi thông tin về thiết bị đó, vì nhiều lý do nhƣ:
quên, sự không hợp tác của ngƣời sử dụng. Chuyện gì với các thiết bị đang hoạt động
nhƣng không chạy inventory agent ( máy in, switches, routers, WiFi access points…)
hay với các máy tính không cần kết nối tới mạng quản lý
IPDISCOVER trả lời các vấn đề này. Ngay cả khi nó có thể làm việc độc lập thì
kết quả vẫn rất tốt cho cấu trúc OCS. Khi làm việc dựa trên một giao tiếp giữa tất cả
các host của hệ thống thông tin và máy chủ trung tâm, server có thể dễ dàng điều khiển
các client làm một vài các nhiệm vụ nhỏ, nhƣ lấy khóa registry, gửi thông tin kiểm kê
hay nhận các trả lời từ tất cả các thiết bị trên IP segment gửi đi.
4.1.2.2 Cách thức làm việc của IPDISCOVER
+ Cách nhận thông tin
Hệ thống OCS NG dựa trên sự giao tiếp giữa agent đƣợc cài đặt trên các máy
trạm và module Apache trên OCS NG server. Thông tin trao đổi đƣợc nén trong file
XML và cho phép cấu hình các nhiệm vụ agent sẽ làm.
Khi một máy trạm gửi một kết quả kiểm kê, server sẽ cố gắng xác minh nếu nó
cần một vài các máy trạm khác ( số lƣợng có thể thay đổi theo cấu hình) quét các host
khác trong mạng con của nó. Địa chỉ gateway IP đƣợc sử dụng nhƣ một bản đò cho cả
mạng doanh nghiệp.
Nếu cần thiết, máy chủ có thể đánh giá chất lƣợng và cân nhắc có hoạt động tính
năng Ipdiscover hay không trên máy trạm. Trong trƣờng hợp này, máy trạm sẽ gửi tới
hệ thống một thông tin kiểm kê một cách độc lập với cấu hình chung trong trƣờng
“FREQUENCY”.
+ Cơ chế “bầu chọn”
Một khi máy chủ đã xác định rằng có một nhu cầu cho các cổng đƣợc chọn, nó
đánh giá các tiêu chí sau:
OS: Hệ điều hành phải là Windows XP(hoặc mới hơn : Vistar, Win 7)
hoặc Windows 2000 (hoặc mới hơn: 2003,2008 tất cả các phiên bản) hoặc
LINUX.
QUALITY: tham số này có nghĩa là tỷ lệ trung bình kết nối máy chủ đến
máy chủ trong ngày. Nó đƣợc đánh giá động bở Comunication Server chỉ
khi có nhiều hơn số lƣợng đƣợc định nghĩa trong trƣờng “IPDISCOVER”
35
của các host đã đƣợc kiểm kê cho gateway. Nếu máy tính hiện hành gửi
kết quả kiểm kê có chất lƣợng tốt hơn so với một máy tính kích hoạt
IPDISCOVER cho cổng này, máy trạm này sẽ thay thế một trong những
máy trạm khác. Tùy chọn 'IPDISCOVER' phải lớn hơn “0” để kích hoạt
tính năng này!
FIDELITY: Tổng các kết nối của các máy trạm tới server. Trƣờng này có
giá trị phải lớn hơn hoặc bằng 3, cho phép “QUALITY” tính toán từ dữ
liệu đại diện.
NETMASK: sub network mask, Trƣờng này miêu tả giá trị lớn nhất của
lớp B ( bytes thứ 2 đầu tiên tới 255 => 255.255.X.X)
LASTDATE: khi Comunication Server tính toán chất lƣợng, nếu nó tìm ra
một host chƣa từng gửi kết quả kiểm kê từ nhiều ngày đƣợc định nghĩa
bởi tùy chọn “IPDISCOVER_MAX_ALIVE”, nó sẽ thay thế host này bở
một host mới.
+ Agent làm việc nhƣ thế nào?
Khi một agent nhận nhiệm vụ phát hiện các thiết bị mạng trong mạng của nó,
trƣớc tiên nó sẽ xác định các giao diện mạng đƣợc sử dụng. Sau đó nó giải quyết vấn
đề thông qua gói tin trả lời ARP từ tất cả các IP trên mạng của mình( trỳ hoãn giữa 2
host đƣợc định nghĩa trong trƣờng “IPDISCOVER_LATENCY” của cấu hình
IPDiscover trên OCS Server). Tất cả thông tin trả lời của các thiết bị đƣợc nén thành
file XML và gửi về cho server.
+ Sự điều chỉnh trên server
Khi mới cài OCS NG, quá trình cài sẽ hỏi có chạy tính năng IpDiscover hay
không. Nó sẽ yêu cầu lấy tất cả các gateway và bầu chọn máy trạm nào sẽ làm chức
năng IPDiscover. Khi một máy trạm đƣợc bầu nếu nó thực sự đã gửi thông tin kiểm
kê, hệ thống sẽ đặt giá trị “FREQUENCY” bằng 0( luôn tạo ra một thông tin kiểm kê).
Và giá trị này có thể tăng lên, tùy theo cấu trúc hạ tầng của mạng. Có thể phân tích lỗi
tiềm năng của mạng (thông qua trực tiếp lệnh ipdiscover-utils.pl hoặc qua giao diện
quản lý web).
36
4.2 Triển khai các gói phần mềm hoặc thực hiện các câu lệnh trên
các máy trạm.
OCS Inventory NG bao gồm cả tính năng triển khai các gói phần mềm tới client
mà nó giám sát. Từ máy chủ quản lý, có thể tải lên các gói sau đó các client có thể tải
về thông qua giao thức HTTP/HTTPS và cài đặt chúng.
Tính năng này hoạt động nhƣ thế nào?
Một gói đƣợc triển khai sẽ có 4 thành phần:
Độ ƣu tiên.
Một hành động.
Một file ZIP hoặc TAR.GZ bao gồm bao nhiêu tập tin và thƣ
mục (Tùy chọn).
Một lệnh để khởi động(Tùy chọn).
Có 11 cấp độ ƣu tiên, từ mức 0-10. Cấp 0 là ƣu tiên cao nhất và mức 10 là thấp
nhất. Gói có cấp độ ƣu tiên 0 sẽ đƣợc triển khai trƣớc khi gói ƣu tiên 1. Gói có cấp độ
ƣu tiên 1 sẽ đƣợc triển khai trƣớc khi gói có cấp độ ƣu tiên 2 ...
Hành động đƣợc liên kết với tập tin để triển khai và lệnh để khởi động. Đây có
thể là một trong ba lệnh sau:
Hành động Launch: để triển khai một file ZIP hoặc TAR.GZ và khởi
động có hoặc không có tham số, dựa trên tập tin thực thi trong file ZIP
hoặc TAR.GZ. File ZIP hoặc tập tin TAR.GZ, và lệnh liên quan sẽ đƣợc
đƣa vào thƣ mục tạm thời. Hành động này cho phép lấy kết quả của mã
lệnh phát động.
Hành động Excecute: Dùng để triển khai một file ZIP hay TAR.GZ( tùy
chọn), và đẩy xuống cùng hoặc không cùng một file có khả năng thực thi
có hoặc không trong file ZIP hay TAR.GZ. Nếu file có khả năng thực thi
không đặt trong file ZIP hay TAR.GZ, nó phải là một phần của phần mềm
đã đƣợc cài đặt trong client. Điển hình, nó có thể là một câu lệnh chuẩn
của windows nhƣ Windows Installer, RPM, DPKG hay TAR.GZ trên
linux.
37
File ZIP hay TAR.GZ sẽ giải nén vào trong một thƣ mục tạm, kết hợp với
câu lệnh ( tên của file thực thi với đƣờng dẫn hay thông số nếu cần) sẽ
đƣợc khởi động trong một thƣ mục tạm.
Hành động này cho phép lấy kết quả mã lệnh của lệnh đã khở động. Tuy
nhiên, hành động này cho phép chạy một lệnh trên clients. Không cần
triển khai hay bất kỳ file nào. Ví dụ, có thể sử dụng nó để chạy cấu hình
hệ thống cụ thể nào đó nhƣ: thiết lập Proxy, turn on-off firewall, thiết lập
các policy....
Hành động Store: để triển khai một file ZIP hay TAR.GZ hay bất kỳ nội
dung nào lƣu trữ trong một thƣ mục của máy trạm.
Không có câu lệnh nào đƣợc kết hợp với hành động này, chỉ có đƣờng dẫn
cụ thể nơi lƣu trữ xả nén các file.
Có thể thông qua cửa sổ quản trị để triển khai gói. Nó sẽ tự động đƣợc
miêu tả bởi:
Một tham chiếu trong cơ sở dữ liệu, đƣợc sử dụng bởi
Comunication Server để yêu cầu agent tải gói.
Một file chứa thông tin, tên là “infor”. Đó là một file XML
miêu tả gói và hành động agent sẽ thực hiện.
Có hoặc không có các phân mảnh của file. File tải lên ( với 1
file) sẽ đƣợc chia ra thành nhiều phần nhỏ để các agent tải vể
từng phần một, và sau đó có thể dễ dàng ghép lại thành file
ban đầu, và dễ dàng tải lại các mảnh bị tải hỏng. Nếu quá trình
tải bị hỏng, những mảnh hỏng sẽ đƣợc tải tại thời điểm khác
thay vì tải lại tất cả gói. Có thể chỉnh kích thƣớc mảnh tùy
theo băng thông mạng. Nếu muốn chia thành các file có kích
thƣớc lớn ( hơn 8Mb) thì phải chỉnh cấu hình PHP trong file
“php.ini”.
Một khi gói đƣợc xây dựng, phải kích hoạt nó. Phải chỉ ra nơi có vị trí SSL đƣợc
kích hoạt máy chủ web (ví dụ nhƣ triển khai các máy chủ), nơi client có thể tải về tập
tin thông tin và các mảnh files.
Cuối cùng, phải lựa chọn máy sẽ triển khai gói ứng dụng.
38
Hình 4.1: Sơ đồ cấu trúc triển khai gói phần mềm sử dụng OCS Inventory NG
Khi agent gửi thông tin cho Comunication server, Comunication Server sẽ nói
cho agent nếu có một hoặc nhiều gói triển khai tới nó, với các thông tin về mức độ ƣu
tiên của từng gói, nơi mà agent có thể tìm thông tin các file. Agent bắt đầu tải về, khi
hoàn thành, nó chạy hành động gói, và gửi trả về mã kết quả thông tin tình trạng cho
Comunication Server.
Agent sẽ bắt đầu tải về theo một chu kỳ. Một chu kỳ gồm các vòng, đƣợc định
nghĩa bởi cấu hình trong “DOWNLOAD_PERIOD_LENGTH”. Mặc định, giá trị của
một chu kỳ là 10 vòng.
Tại mỗi vòng, nó tính toán "số vòng của gói module ƣu tiên". Nếu nó có bằng 0,
nó tải các mảnh của file. Sau mỗi đoạn, nó sẽ chờ đợi
"DOWNLOAD_FRAG_LATENCY" (cấu hình tùy chọn thiết lập để 10 giây theo mặc
định) trƣớc khi tải về các mảnh tiếp theo.
Khi tất cả các mảnh của gói đƣợc tải về, nó sẽ sử dụng gói câu lệnh và đợi
“DOWNLOAD_CYCLE_LATENCY” ( cấu hình tùy chọn mặc định là 60 giây) trƣớc
khi bắt đầu một vòng mới và gia tăng số thứ tự vòng.
Khi tất cả các vòng của chu kỳ đã hoàn thành, agent sẽ đợi
“DOWNLOAD_PERIOD_LATENCY” ( cấu hình tùy chọn, mặc định là 0 giây).
39
Nếu tất cả các gói đã đƣợc tải về và cài đặt thành công, nó dừng lại. Nếu không,
nó bắt đầu một giai đoạn mới của chu kỳ.
LƯU Ý: Ưu tiên cấp 0 là một mức độ đặc biệt. Tất cả các gói ưu tiên 0 sẽ được
tải về trước khi tất cả các gói ưu tiên cao hơn những gói khác vào đầu của mỗi chu kỳ.
Nếu tải không thành công, agent sẽ thử lại để tải về các gói không phải là ưu tiên 0,
mà không kiểm tra những gói khác. Vì vậy, nó hoàn toàn có thể ngừng triển khai. Sử
dụng level 0 một cách cẩn trọng!
Có thể sử dụng các thiết lập tùy biến sử dụng băng thông mạng. Bằng cách tăng
độ trễ tùy chọn sẽ làm tăng thời gian để tải về các mảnh và giảm tỷ lệ trung bình sử
dụng mạng bằng cách tăng chiều dài tùy chọn thời gian, điều này sẽ trì hoãn những
mảnh tải về bị hỏng, nhƣng cũng có thể bằng cách giảm độ dài thời gian để một giá trị
thấp hơn 10, cũng có thể dừng tải gói với mức ƣu tiên cao hơn giá trị này.
Yêu cầu:
Server triển khai gói lƣu trữ thông tin file phải hỗ trợ SSL, vì quá trình tải thông
tin gói là rất nhạy cảm. Thông tin file chứa đựng những miêu tả gói và các lệnh thực
thi. Vì vậy, nếu một ai đó gửi một gói tin giả mạo, yêu cầu tải về file infor, anh ta có
thể thực thi bất kỳ câu lệnh nào mà anh ta muốn tới các máy trong hệ thống giám sát.
Điều đó giải thích tại sao máy chủ triển khai cần sử dụng SSL để cho phép agent
chứng thực với server và đảm bảo là gói cần triển khai là từ máy chủ triển khai.
Agent phải có một “certificate” để chứng thực với máy chủ triển khai. Chứng chỉ
này phải đƣợc lƣu trữ dƣới tên “cacert.pem” trong thƣ mục cài đặt chứa OCS
Inventory Agent trong Windows, và thƣ mục “/etc/ocsinventory-client” trong agent
Linux.
Dƣới Windows có thể sử dụng gói OCS Inventory NG để tạo một agent installer
bao gồm cả chứng thực, hoặc có thể tạo một logon script theo mẫu sau rồi copy file
chứng thực vào trong thƣ mục của agent( Giả định agent đƣợc cài vào C:\Program
Files\OCS Inventory Agent và file chứng thực đang đƣợc chia sẻ với tên MYSHARE
trên server 192.168.0.81).
@echo
REM Check if CA file exists
if exist “C:\Program Files\OCS Inventory Agent\cacert.pem” goto CA_END
REM CA file does not exists, install it
Copy \\192.168.0.81\MYSHARE\cacert.pem “C:\Program Files\OCS Inventory
Agent\cacert.pem”
:CA_END
40
Nếu có sẵn một hạ tầng khóa công khai (PKI), phải tạo một server chứng thực có
giá trị cho server triển khai và copy file chứng thực vào thƣ mục cài đặt agent client
với tên file “cacert.pem”
Nếu không có một cơ sở hạ tầng khóa công khai, có thể sử dụng một giấy chứng
nhận tự ký cho các máy chủ triển khai, và copy file chứng thực vào thƣ mục cài đặt
agent client với tên “cacert.pem”
4.2.1 Tạo gói
Trƣớc tiên, muốn triển khai một ứng dụng phải tạo ứng dụng thành các gói.
Hình 4.2: Lựa chọn Tạo gói
Các gói này sẽ đƣợc lƣu trữ trong thƣ mục /usr/share/ocsinventory-
NG/download/”timestamp”. Trong đó “timestamp” là giá trị ngẫu nhiên khi tạo gói
sinh ra cho từng gói.
41
Hình 4.3: Cửa sổ tạo các gói.
1. Nhập vào tên của gói.
2. Lựa chọn hệ thống thực thi gói. Có thể lựa chọn giữa Windows và
Linux.
3. Lựa chọn giao thức tải gói. ở đây là HTTP.
4. Lựa chọn thứ tự ƣu tiên của gói. Có thể lựa chọn mức từ 0 tới 10. Gói có
độ giá trị thấp hơn sẽ có độ ƣu tiên cao hơn.
5. Có thể chọn để cảnh báo ngƣời dùng rằng một cái gì đó đƣợc đƣa ra trên
máy tính của mình. Set "warn User" danh sách thả xuống để "YES", điền
vào trong văn bản để hiển thị cho ngƣời dùng, bao lâu để hiển thị các
văn bản trƣớc khi thẩm tra tự động cài đặt gói (đặt 0 để chờ đợi vô thời
hạn) và nếu ngƣời dùng có thể hủy bỏ hoặc trì hoãn triển khai gói tại lần
gửi thông tin tiếp theo.
6. Có thể chỉ định nếu triển khai gói cần có một tƣơng tác ngƣời dùng bằng
cách thiết lập danh sách thả xuống " Installation completion need user
action: " để "YES", ví dụ, nếu thiết lập nhu cầu ngƣời dùng điền vào một
thông tin trên một hộp thoại để chấm dứt.
42
Cuối cùng, chọn hành động trong "Action". Đây là một số mẫu mô tả các
loại gói có thể xây dựng.
4.2.2 Triển khai gói
4.2.2.1 Triển khai gói thông qua lệnh launch:
Gói cần triển khai có thể có một hoặc nhiều file, với ít nhất một file có khả năng
thực thi cho việc triển khai cài đặt gói. Nén các file thành một file Zip với các gói gán
cho Windows agent và file TAR.GZ với các gói gán cho LINUX agent.
Lựa chọn Launch và kích vào nút Browse để lựa chọn các file ZIP hay TAR.GZ
Trong trƣờng “Command” , chỉ điền tên file thực thi không cần có đƣờng dẫn với
các thông số tùy chọn. Câu lệnh này sẽ đƣợc thực hiện khi client tải về gói và ghép lại
trong thƣ mục tạm.
Ví dụ, khi muốn triển khai một phiên bản mới OCS Inventory NG Agent cho
Windows, sử dụng cài đặt ẩn, chỉ định địa chỉ của Comunication Server
my_ocs_com_srv, vô hiệu hóa thiết lập IE proxy, và cho phép ghi lại log của cài đặt,
Vi vậy file ZIP sẽ bao gồm file “OcsAgentSetup.exe” và trƣờng file name chứa:
OcsAgentSetup.exe /S /SERVER:my_ocs_com_srv /NP /DEBUG
Hình 4.4: Tạo gói sử dụng lệnh Launch
Click vào “Send” để tải gói lên tới cửa sổ quản trị.
43
Tiếp theo, phải xác định kích thƣớc của từng mảnh của gói theo đó agent sẽ tải
từng mảnh này về. Điều này cho phép tải lại trong trƣờng hợp một mảnh nào đó tải bị
hỏng, và chỉ những mảnh nào hỏng mới cần tải lại thay vì tải lại hết các mảnh của gói.
Vì thế hãy lựa chọn kích thƣớc của từng phần file tùy theo băng thông mạng.
Cửa sổ quản lý sẽ cho phép chia các gói thành các mảnh và lƣu chúng vào trong
folder tên là timestamp trong thƣ mục download của thƣ mục gốc máy chủ apache.
Đồng thời, quá trình chia gói cũng tạo ra file XML tên là “infor”, file này miêu tả về
gói và các hành động của agent sau khi tải thành công.
Hình 4.5: Phân mảnh gói
4.2.2.2 Triển khai gói thông qua lệnh “Execute”
Gói cần triển khai có thể có một hoặc nhiều file, với ít nhất một file có khả năng
thực thi cho việc triển khai cài đặt gói. Nén các file thành một file Zip với các gói gán
cho Windows agent và file TAR.GZ với các gói gán cho LINUX agent.
Lựa chọn Execute và kích vào nút Browse để lựa chọn các file ZIP hay TAR.GZ
Trong trƣờng “Command”, phải điền đƣờng dẫn tới file thực thi để khởi động với
các thàm số ( không cần đƣờng dẫn đầy đủ). Câu lệnh này sẽ đƣợc thực hiện trên máy
trạm sau khi gói đƣợc tải về thành công. Các biến môi trƣờng trong trƣờng
“Command” có thể nhƣ: %SystemDrive% %SystemRoot%, %windir%,
%ProgramFiles%, %CommonProgramFiles% …
Ví dụ, khi muốn triển khai một phần mềm sử dụng Windows Installer cài đặt ẩn.
Vì thế, file ZIP bao gồm file “software.msi” và trƣờng “Command” là:
msiexec.exe /i software.msi /quiet
44
Hình 4.6: Tạo gói sử dụng lựa chọn Execute
Click “Send” để tải lên gói và tới cửa sổ quản trị.
Tiếp theo, phải xác định kích thƣớc của từng mảnh của gói cho phép agent tải về
từng phần nhỏ. Điều này cho phép agent tải lại nếu phần của gói tải bị lỗi.
Tiếp theo, phải xác định kích thƣớc của từng mảnh của gói theo đó agent sẽ tải
từng mảnh này về. Điều này cho phép tải lại trong trƣờng hợp một mảnh nào đó tải bị
hỏng, và chỉ những mảnh nào hỏng mới cần tải lại thay vì tải lại hết các mảnh của gói.
Vì thế hãy lựa chọn kích thƣớc của từng phần file tùy theo băng thông mạng.
Hình 4.7: Phân mảnh gói khi sử dụng lựa chọn Execute
45
Cửa sổ quản lý sẽ cho phép chia các gói thành các mảnh và lƣu chúng vào trong
folder tên là timestamp trong thƣ mục download của thƣ mục gốc máy chủ apache.
Đồng thời, quá trình chia gói cũng tạo ra file XML tên là infor, file này miêu tả về gói
và các hành động của agent sau khi tải thành công.
4.2.2.3 Sử dụng Execute để thực thi một câu lệnh.
Điều này cho phép thực thi một hay nhiều lệnh tới client.
Gói muốn triển khai chỉ với một câu lệnh.
Lựa chọn Execute và để trƣờng “File” trống.
Trong trƣờng “Command”, chỉ điền tên của lệnh, tùy chọn, và các tham số. Lệnh
này sẽ thực thi khi mà gói đƣợc tải về client.
Ví dụ, khi muốn đặt địa chỉ Proxy của máy windows client thì trƣờng
“Command” ở đây là:
Proxycfg.exe /p 192.168.1.1
Hình 4.8: Sử dụng lựa chọn Execute để thực thi một lệnh tới máy trạm
Hoặc khi muốn xóa một chƣơng trình của máy trạm, có thể sử dụng câu lệnh:
Click “Send” để tải lên gói và tới cửa sổ quản trị.
Cửa sổ quản lý sẽ cho phép chia các gói thành các mảnh và lƣu chúng vào trong
folder tên là timestamp trong thƣ mục download của thƣ mục gốc máy chủ apache.
Wmic product where name=“tên phần mềm” call uninstall /y
46
Đồng thời, quá trình chia gói cũng tạo ra file XML tên là infor, file này miêu tả về gói
và các hành động của agent sau khi tải thành công.
4.2.2.4 Lƣu trữ gói thông qua lệnh “Store”
Gói cần triển khai có thể có một hoặc nhiều file, dùng để lƣu trữ một folder tới
các máy trạm. Nén các file thành một file Zip với các gói gán cho Windows agent và
file TAR.GZ với các gói gán cho LINUX agent.
Lựa chọn “Store” và kích vào nút Browse để lựa chọn các file ZIP hay TAR.GZ
Trong trƣờng “Path” chỉ phải điền đƣờng dẫn nơi mà agent sẽ lƣu trữ file đƣợc
giả nén từ gói sẽ đƣợc tải về.
Ví dụ, chúng ta triển khai và file đƣợc lƣu trữ trong thƣ mục “C:\My Folder”:
Hình 4.9: Tạo gói sử dụng lựa chọn Store
Click “Send” để tải lên gói và tới cửa sổ quản trị.
Phải xác định kích thƣớc của từng mảnh của gói cho phép agent tải về từng phần
nhỏ. Điều này cho phép agent tải lại nếu phần của gói tải bị lỗi.
Tiếp theo, phải xác định kích thƣớc của từng mảnh của gói theo đó agent sẽ tải
từng mảnh này về. Điều này cho phép tải lại trong trƣờng hợp một mảnh nào đó tải bị
hỏng, và chỉ những mảnh nào hỏng mới cần tải lại thay vì tải lại hết các mảnh của gói.
Vì thế hãy lựa chọn kích thƣớc của từng phần file tùy theo băng thông mạng.
47
Cửa sổ quản lý sẽ cho phép chia các gói thành các mảnh và lƣu chúng vào trong
folder tên là timestamp trong thƣ mục download của thƣ mục gốc máy chủ apache.
Đồng thời, quá trình chia gói cũng tạo ra file XML tên là infor, file này miêu tả về gói
và các hành động của agent sau khi tải thành công.
Hình 4.10: Phân mảnh gói khi lựa chọn Store
4.2.3 Kích hoạt gói
Khi gói đƣợc tạo phải chỉ cho agent nơi mà có thể tải về các gói.
Trƣớc tiên, agent sẽ tải về file chứa thông tin gói. Vì các file này rất quan trọng,
vì thế quá trình tải phải sử dụng HTTP thông qua SSL (HTTPS) để đảm bảo agent có
thể chứng thức với máy chủ triển khai. Tiếp theo, các mảnh của gói sẽ đƣợc miêu tả
trong file và sẽ tải về qua giao thức HTTP thông thƣờng.
Hình 4.11: Cửa sổ lựa chọn kích hoạt gói
Lựa chọn menu “Deployment” và lựa chọn “Active”. Sẽ thấy ở đây các gói đã
xây dựng.
48
Có thể click vào dấu thập đỏ để xóa gói đã xây dựng. Điều này đồng nghĩa với
xóa gói từ cơ sở dữ liệu và cũng xóa các thông tin về file và các mảnh của file từ thƣ
mục download. Vì thế, các gói đã xóa sẽ không thể hoạt động, và không còn hiệu lực
tới các máy trạm.
Hình 4.12: Danh sách các gói đã tạo
Click vào “Active” vào gói tƣơng ứng muốn thực thi.
Trong trƣờng “HTTPs url”, nhập URL để tải file thông tin gói.
Trong trƣờng “HTTP url” nhập URL để tải các mảnh của gói
Hình 4.13: Điền địa chỉ cho phép agent tải về các mảnh của gói và file infor.
Kích hoạt gói tới các máy trạm.
Có thể kích hoạt gói tới từng máy trạm. Bằng việc hiện thị các thuộc tính của
máy, lựa chọn “Customization” và thêm vào gói. Tuy nhiên, đây không là cách tốt
nhất cho việc triển khai một gói tới nhiều máy trạm.
Các tốt nhất là lựa chọn tìm kiếm sử dụng chức năng“Search with various
creteria” để tìm các máy muốn triển khai, và kích hoạt gói tới tất cả các máy một lúc.
Ví dụ, khi kích hoạt gói mà chúng ta tạo cho tất cả các máy chạy Windows XP
49
Trƣớc tiên, cần tìm kiếm máy hạy hệ điều hành Windows :
Hình 4.14: Tìm kiếm các máy chạy hệ điều hành Windows
Hình 4.15: Lựa chọn triển khai gói
Click vào Deploy để triển khai tới tất cả các máy vừa tìm kiếm đƣợc.
Hình 4.16: Kích hoạt triển khai
Click vào “Affect” của gói mà muốn lựa chọn triển khai tới các máy trạm.
Các agent client sẽ đƣợc Comunication Server thông báo chúng có gói cần đƣợc
triển khai. Vì thế, trong khi agent không liên lạc với Comunication Server, trên cửa sổ
quản trị sẽ ở trạng thái “WAITING NOTIFICATION”, Chỉ khi agent đã liên lạc với
Comunication server, trạng thái sẽ chuyển sang “NOTIFED”
50
4.2.3 Thống kê triển khai và xác nhận thành công
Các gói có thể đã đƣợc actived và unactived, trạng thái triển khai trong menu
“Activate”
Có thể hiển thị trạng thái triển khai bằng việc lựa chọn “Stats”cho từng gói.
Khi đƣa gói vào triển khai với ít nhất một máy trạm, sẽ có số liệu thống kê đồ
họa hiển thị trạng thái thông báo triển khai.
Hình 4.17: Trạng thái triển khai gói.
Bảng 2 Các trạng thái triển khai
Mã trạng thái Ý nghĩa
WAITING
NOTIFICATION
Server đang đợi máy agent liên lạc để thông báo
có một vài gói cần phải tải về.
NOTIFIED Agent đã đƣợc thông báo có một vài gói cần tải
về. Đang chờ kết quả mã.
SUCCESS [code] Agent đã thành công tải gói và thực hiện câu
lệnh hoặc dữ liệu đã đƣợc giải nén thành công.
Với lệnh “Launch”, trạng thái này có thể đã
hoàn thành thực hiện lệnh trả về mã.
ERR_ALREADY_SETUP Gói triển khai này thực sự đã cài trƣớc đó ở
client.
51
ERR_BAD_ID Agent không thể tải về gói vì không tìm đƣợc
ID của gói trên server triển khai.
ERR_BAD_DIGEST Gói tải về bị hỏng, do đó không thể thực hiện
lệnh.
ERR_UZIP Gói tải về không thể giải nén.
ERR_BUILD Agent không xây dựng lại gói đƣợc.
ERR_EXECUTE Agent không thể thực thi lệnh kêt hợp với gói
đó đƣợc.s
ERR_CLEAN Agent không thể xóa gói đã tải về.
ERR_TIMEOUT Agent không thể tải về trong thời gian
DOWNLOAD_TIMEOUT
ERR_ABORTED Ngƣời dùng đã hủy bỏ lệnh thực thi cùng gói(
Do trong quá tình build gói đã lựa chọn notify
và cho phép ngƣời dùng hủy bỏ cài đặt gói).
ERR_EXECUTE_PACK Lỗi trong quá trình thực thi gói.
+ “Validating Success”: Thống kê các máy tính đã thành công triển khai
gói.
+ “Unaffect not notified” Hủy bỏ triển khai các gói tới các client mà không
có liên lạc tới máy chủ triển khai. Gói sẽ không bị xóa, mà chỉ có các máy
trạm không đƣợc lệnh triển khai gói mới bị hủy bỏ quá trình triển khai.
+ “Validate all”: Xóa các thống kê triển khai, và hủy bỏ các quá trình triển
khai từ những máy chƣa liên lạc với máy chủ. Là sự kết hợp của “Validate
Success” +”Unaffect not notified”.
Chú ý: nên xác minh lại trạng thái triển khai gói để xóa và kết thúc quá trình triển
khai trong cơ sở dữ liệu. Nếu không, dữ liệu sẽ ngày càng tăng lên và làm giảm hoạt
động của hệ thống.
4.2.4 Sử dụng chứng thực SSL trong triển khai gói.
Hệ thống triển khai gói có quá nhiều quyền, vì thế nó yêu cầu SSL truy cập để
xác minh máy chủ trƣớc khi tải về gói. Vì vậy cần có chứng thực SSL để sử dụng với
máy chủ triển khai gói.
Chứng thực đƣợc định nghĩa trong
52
Có thể sử dụng một self-signed –certificate nhanh chóng và dễ dàng, nhƣng bị
hạn chế, hoặc sử dụng một công cụ đáng tin cậy, ví dụ nhƣ một PKI kết hợp với CA.
Apache web server có sẵn thƣ viện OpenSSL , và có thể tạo ra và quản lý giấy
chứng thực.
Sử dụng self-signed-ceritiface.
Chú ý: Phải chú ý tới ngày hết hạn của giấy chứng thực, giấy chứng thực của
máy chủ triển khai phải đƣợc cài đặt trên các agent client. Khi giấy chứng thực hết
hạn, phải tạo và cài lại trên các agent client.
Với OCS Iventory Server chạy trên LINUX:
Thông thƣờng, Apache hoặc gói mod_ssl có một mẫu chứng thực, đặc biệt là
giấy chứng nhận để kiểm tra.
Tuy nhiên, ở đây có một ví dụ một đoạn script để tạo ra một giấy chứng thực và
khóa:
#!/bin/sh
#
# First, generate apache server certificate request
#
# Generate 1024 bits RSA key, store private key in a
# no password protected PEM file server.key, using
# system default openssl configuration file.
#
echo
echo Generating Apache server private key...
echo
openssl genrsa -out server.key 1024
#
# Next, sign the apache server certificate with the apache
# server key
#
# Sign with PEM certificate server.crt, using PEM file
# server.key for server private key, using system default
# openssl configuration file.
#
# The produced certificate will be valid for 1825 days (about 5 years)
#
echo
echo Generating Apache server self signed certificate...
echo
openssl req -outform PEM -new -key server.key -x509 -days 1825 -out server.crt
53
Đoạn script này tạo ra một RSA private key trong file server.key và một giấy xác
thực X.509 tự ký trong file “server.crt”.
Trƣớc tiên, chạy đoạn script này bằng lệnh:
Đoạn script này sẽ tạo ra một khóa riêng, và nhắc nhở về các thông tin:
Country code, usually required: Mã quốc gia (bắt buộc có)
State or province name, usually required : Tên tỉnh, thành (bắt buộc)
City, usually required : Thành phố (bắt buộc)
Organisation or company name, usually required: Tên tổ chức, cơ quan (bắt
buộc).
Organisational Unit name, usually optional: Tên đơn vị tổ chức ( Tùy chọn).
Common name (this is the DNS name or IP address of your server), required
: Tên máy chủ ( DNS name, hoặc địa chỉ IP của máy server) (bắt buộc).
An email address, usually optional: Địa chỉ Email ( tùy chọn).
Hình 4.18 Tạo file chứng thực SSL
Trong ví dụ này, đƣa ra giấy chứng thực tự ký cho server có IP: 192.168.0.81
Tiếp theo cần phải copy giấy chứng thực của server “server.crt” vào thƣ mục cài
đặt của agent client và đổi tên file này thành “cacert.pem” và cập nhật file cấu hình
Apache/mod_ssl để sử dụng các file chứng thực này.
$ sh apache_generate_crt.sh
54
Dƣới CentOS/ Fedora/Redhat LINUX file chứng thực đƣợc lƣu trữ trong thƣ
mục “/etc/httpd/conf/ssl.crt” và file khóa đƣợc lƣu trữ trong “/etc/httpd/conf/ssl.key” –
Nếu chƣa có, có thể tạo và nhớ phân quyền sở hữu cho các thƣ mục này.) .
Hãy nhớ khởi động lại dịch vụ apache để có hiệu lực
55
CHƢƠNG 5
KẾT QUẢ ĐẠT ĐƢỢC SAU KHI NGHIÊN CỨU VÀ TRIỂN KHAI
HỆ THỐNG GIÁM SÁT OCS INVENTORY NG TRÊN HỆ THỐNG
MẠNG TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
5.1 Giới thiệu hệ thống mạng của trƣờng Đại Học Công Nghệ
Trƣờng Đại học Công nghệ hiện có 19 khối/đơn vị bao gồm các phòng ban, các
khoa, các trung tâm, phòng thí nghiệm, phòng thực hành… Tất cả các đơn vị của
trƣờng đều đƣợc trang bị đều đƣợc trang bị các hệ thống máy tính phục vụ công tác
điều hành, quản lý, học tập, giảng dạy và nghiên cứu.
Hình 5.1: Sơ đồ logic
hệ thống mạng trƣờng Đại học Công Nghệ.
56
5.2 Cài đặt và triển khai
Hệ thống OCS Inventory NG đƣợc triển khai và giám sát các dịch vụ bắt đầu từ
ngày 27/04/2010 trên server chạy hệ điều hành CentOS có địa chỉ mạng nội bộ là
192.168.0.81 và địa chỉ truy cập là: . Bƣớc đầu thử
nghiệm, hệ thống giám sát các máy ở Trung tâm máy tính và các máy trong phòng
Multimedia sau đó đƣợc triển khai trên phòng máy 2.
Hình 5.2: Sơ đồ hệ thống mạng triển khai OCS Inventory NG
5.3 Kết quả giám sát
5.3.1 Giám sát các máy trạm
Tổng số máy giám sát là 42 máy trong đó có 8 máy ở trung tâm máy tính (6 máy
chạy hệ điều hành Windows XP, 1 máy chạy Hệ điều hành Ubuntu và 1 máy chạy hệ
điều hành CentOS) và 34 máy ở phòng máy thực hành số 2 chạy hệ điều hành
Windows XP:
57
Hình 5.3 Các máy ở phòng Thực hành số 2
Hình 5.4: Thông tin giám sát các máy trạm.
Hệ thống có thể giám sát đƣợc hầu hết các bộ phận và các ứng dụng cài đặt trên
máy trạm. Sau đây là một số hình ảnh chi tiết về máy “class02-2” tại phòng máy thực
hành số 2:
58
Hình 5.5 Thông tin chung về máy CLASS02-02
Hình 5.6 Thông tin về các phần mềm cài đặt trên máy CLASS02-02
59
Hình 5.7 Thông tin về BIOS
Hình 5.8 Thông tin về CPU
Hình 5.9 Thông tin về RAM
Hình 5.10 Thông tin về các thiết bị nhập
Hình 5.11 Thông tin về ổ cứng
Hình 5.12 Các trình điểu khiển thiết bị
60
Hình 5.13 Thông tin về card mạng
Hình 5.14 Thông tin về màn hình
Hình 5.15 Thông tin về trạng thái quản lý.
Ở đây có thể thêm các gói để triển khai cho riêng máy này. Ngoài ra còn hiển thị
các gói đã triển khai và tình trạng triển khai.
Hình 5.16: Các thông tin về Âm thanh, card màn hình và các cổng cắm
61
5.3.2 Giám sát các thiết bị mạng
Các máy in:
Hình 5.17 Thông tin các máy in
Access Point và một số thiết bị khác:
Hình 5.18 Một số thông tin về Access Point phát hiện đƣợc tại Trung Tâm Máy
Tính.
62
CHƢƠNG 6.
NHẬN XÉT, ĐÁNH GIÁ VỀ HỆ THỐNG OCS INVENTORY NG
6.1 Ƣu điểm
6.1.1 Khả năng mở rộng
OCS Inventory NG là một hệ thống giám sát các thiết bị đầu cuối mạnh mẽ, là hệ
thống mã nguồn mở và miễn phí. Ngƣời quản trị có thể dễ dàng viết thêm các module
( các file php) để giám sát tùy theo nhu cầu của mình.
Ví dụ: có thể tạo một module có chức năng : cảnh báo không gian đĩa trống nếu
dung lƣợng đĩa trống còn dƣới 5% bằng cách tạo ra 2 file “ocsdiff_conf.php” và
“diskreport.php”có nội dung nhƣ sau. Để sử dụng, copy 2 file này vào thƣ mục
“/usr/share/ocsinventory-reports/ocsreports/”
File “ocsdiff_conf.php”:
<?php
# ocsdiff configuration file
#
# Database host
$dbhost = "localhost";
$dbname = "ocsweb";
$dbuser = "ocs";
$dbpass = "ocs";
$adminemail = "s06020114@vnu.edu.vn";
$diskthreshold = 5; #Gioi han canh bao
#cảnh báo sẽ gửi cho các Email sau:
$domains = array(
0 => array(
'name' => „a‟,
'email' => a@vnu.edu.vn,b@vnu.edu.vn"),
1 => array(
'name' => „c‟,
'email' => "c@vnu.edu.vn "),
2 => array(
'name' => „d‟,
'email' => "d@vnu.edu.vn "));
$diskdomains = array(
0 => array(
'name' => „a‟,
63
'email' => a@vnu.edu.vn ,b@vnu.edu.vn "),
1 => array(
'name' => „c‟,
'email' => "c@vnu.edu.vn "),
2 => array(
'name' => „d‟,
'email' => "d@vnu.edu.vn "));
?>
File “diskreport.php”
<?php
# Chuong trinh nay dua ra canh bao khong gian dia trong cho nguoi quan tri
#Lay thong tin file cau hinh
require_once("ocsdiff_conf.php");
# Khởi tạo các tiêu đề để các email sẽ đƣợc đọc nhƣ file Excel đính kèm
$today = date("Y-m-d G:i:s");
$headers = "From: s06020114@vnu.edu.vn\r\n";
$headers .= "Reply-To: s06020114@vnu.edu.vn \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Content-type: application/vnd.ms-excel\r\n";
$headers .= "Content-disposition: attachment; filename=$today.csv\r\n";
# Connect to database
$link = mysql_connect("$dbhost", "$dbuser", "$dbpass")
or die("Could not connect : " . mysql_error());
mysql_select_db("$dbname") or die("Could not select database");
# Tạo vòng lặp thông qua định nghĩa miền đĩa và chuẩn bị cho báo cáo
for($i = 0; $i < sizeof($diskdomains); $i++) {
$entry = $diskdomains[$i];
$name = $entry['name'];
$email = $entry['email'];
$subject = "Daily Disk Utilization Report for domain $name";
$msg = "Computer Name,Drive Letter,Type,Filesystem,Total,Free,Free %\n";
#Giờ đã có tên miền và liên lạc, tiếp theo lấy danh sách hiện tại các deviceIDs từ
miền này
$query = "select id, name, userid from hardware where workgroup='$name' and
osname like '%server%'";
$deviceresults = mysql_query($query) or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_array($deviceresults, MYSQL_ASSOC)) {
$deviceid = $line['id'];
$computername = rtrim($line['name']);
# Disk checking section
$query = "select letter, type, filesystem, total, free
from drives
where hardware_id='$deviceid' and
type = 'Hard Drive'";
$diskresults = mysql_query($query) or die("Query failed : " .
mysql_error());
64
# All information is now collected, now generate output
while ($diskline = mysql_fetch_array($diskresults, MYSQL_ASSOC)) {
$driveletter = $diskline['letter'];
$drivetype = $diskline['type'];
$drivefs = $diskline['filesystem'];
$drivetotal = $diskline['total'];
$drivefree = $diskline['free'];
$freeperc = (($drivefree/$drivetotal) * 100);
if ($freeperc < $diskthreshold) {
$msg .=
"$computername,$driveletter,$drivetype,$drivefs,$drivetotal,$drivefree,$freeperc\n";
}
} # end of disk loop
} # end of devices in a domain loop
# send out the email for this domain
if ($msg == "") $msg = "No disk space issues found\n";
mail("$email", $subject, $msg, $headers);
} # end of domain loop
# Almost done, just need to free up result memory
mysql_free_result($deviceresults);
mysql_free_result($diskresults);
?>
6.1.2 Khả năng giám sát
OCS Inventory NG là một hệ thống giám sát dựa trên giao thức HTTP/HTTPS
mà không dựa trên giao thức SNMP nhƣ đa số các hệ thống giám sát khác. Các thông
tin đƣợc agent trực tiếp gửi qua giao thức HTTP cho nên có thể giám sát đƣợc các máy
không trong cùng mạng LAN, mà chỉ cần có kết nối tới OCS Inventory NG Server qua
cổng 80.
OCS Inventory NG là hệ thống giám sát các máy trạm ( các thông tin phần mềm,
các thiết bị phần cứng) rất mạnh.
Thích hợp cho rất nhiều hệ điều hành (Windows, LINUX, MacOS, AIX,...) và
các agent cũng hỗ trợ rất đa dạng(Windows, LINUX, MacOS..).
6.2 Nhƣợc điểm
6.2.1 Khả năng giám sát:
OCS Inventory NG rất mạnh trong giám sát các máy trạm nhƣng lại kém hiệu
quả trong giám sát các thiết bị mạng, do phải phụ thuộc vào chính các máy trạm đó (
65
tính năng IPDiscover hoạt động trên các máy trạm, các máy này sử dụng ARP truy vấn
lấy thông tin các thiết bị).
Tính năng còn nhiều hạn chế: giám sát thiết bị mobile, cảnh báo tới ngƣời quản trị,
tự động nén thông tin thành file XML hay CVS gửi cho ngƣời quản trị…, nên tích hợp
tính năng SNMP để giám sát các thiết bị mạng kết nối trực tiếp tới máy chủ.
Về tính năng giám sát phần mềm, chƣa lấy thông tin về serialnumber, productID
để tiện cho việc quản lý bản quyền phần mềm.
Cần có lƣu trữ theo ngày, tháng ( history) cho phép xem thông tin giám sát ở
ngày, tháng trƣớc để tiện cho việc quản lý.
6.2.2 Độ an toàn
Hệ thống OCS Inventory NG có nhiều lỗi tiềm ẩn có thể bị tin tặc sử dụng để tấn
công.
Theo nhƣ thống kê của Secunia ( ) và CNET
( từ phiên bản trƣớc OCS Inventory NG chứa các hiểm họa tấn
công về SQL Injection:
- Trong file “download.php” ở phiên bản 1.x: giá trị đầu vào khi nhập “n”,
“o” hay “v” không đƣợc kiểm tra khi truy vấn vào SQL. Điều này có thể
đƣợc khai thác để thao tác truy vấn SQL bằng cách tiêm mã độc đoán
SQL.
- Trong file “group_show.php” ở phiên bản 1.x: giá trị đầu vào “systemid”
cũng không đƣợc kiểm tra khi truy vấn vào cơ sở dữ liệu. Điều này có thể
bị khai thác để thao tác truy vấn SQL bằng cách nhập các đoạn mã độc
SQL.
- Trong giao diện đăng nhập của phiên bản 1.x: Các giao diện của ứng dụng
web trả về thông báo lỗi khác nhau tuỳ thuộc vào việc một cố gắng đăng
nhập không thành công đƣợc thực hiện với một tên ngƣời dùng hợp lệ
hoặc không hợp lệ. Điều này có thể đƣợc khai thác để có khả năng xác
định tên ngƣời dùng hợp lệ qua nhiều cố gắng đăng nhập.
- Ở phiên bản mới nhất 1.3.x, trong file “header.php” giá trị nhập vào trong
trƣờng “login” không hề đƣợc kiểm tra khi truy vấn vào cơ sở dữ liệu.
Điều này có thể bị tin tặc nhập vào các đoạn mã SQL độc hại
66
Giải pháp: chỉnh sửa đoạn code trong file “header.php” đảm
bảo giá trị “login” đƣợc kiểm tra trƣớc khi cho truy vấn vào cơ
sở dữ liệu.
6.2.3 Giao diện sử dụng
Giao diện rối, một số các biểu tƣợng và miêu tả không chính xác. Ví dụ: biểu
tƣợng “security” nhƣng ý nghĩa thực sự lại không phải là “an toàn” hay “bảo mật” mà
tính năng lại là lấy thông tin mạng, truy vấn ( “IP Query”)… Biểu tƣợng agent có ý
nghĩa rất giống với “thiết lập”.
Tuy nhiên, nhìn chung OCS Inventory là một hệ thống giám sát thiết bị đầu cuối
rất mạnh mẽ và tiện ích cho ngƣời quản trị. Có thể kết hợp với các phần mềm mã
nguồn mở khác nhƣ: Nagios, Cati thì hệ thống giám sát thiết bị đầu cuối của mạng sẽ
hoàn hảo hơn.
67
Tài liệu tham khảo:
[1] OCS Inventory NG team
OCS-Inventory-NG-Installation-and-Administration-Guide-19.pdf
[2]
[3]
[4]
[5]
[6] Essential SNMP, By Douglas Mauro, Kevin Schmidt
Publisher :O'Reilly; Pub Date : July 2001; ISBN : 0-596-00020-0;
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-TRIỂN KHAI DỊCH VỤ GIÁM SÁT THIẾT BỊ ĐẦU CUỐI.pdf