Luận văn -Triển khai dịch vụ giám sát thiết bị đầu cuối

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.

pdf76 trang | Chia sẻ: lylyngoc | Lượt xem: 2612 | Lượt tải: 2download
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:

  • pdfLUẬN VĂN-TRIỂN KHAI DỊCH VỤ GIÁM SÁT THIẾT BỊ ĐẦU CUỐI.pdf