Về cấu trúc, các chức năng cần có của hệ thống, có tính chất tương tự như
Bing Liu đã đề cập trong khai phá dữ liệu web [16], cơ chế thực hiện thu thập thông
tin từ các phần tử mạng tương tự như cơ chế khai thác web được đề cập, với việc xây dựng các thư viện giao thức để tương tác với các website, lấy ra thông tin thô,
14
xử lý thành thông tin cần thiết, chuẩn hoá và đưa ra hành vi khách hàng và có các giải pháp khai thác hợp lý, theo Hình 2.2.
Bắt đầu
Khởi tạo tiền xử lý
Sắp xếp các URL
Lấy thông tin trang web
Tách URL thêm vào mô đun tiền xử lý
Lưu trang
End Tìm các URL
Mơ đun tiền xử lý
Web
Báo cáo
OK ?
Hình 2.2. Mơ hình khai phá dữ liệu Web
Ánh xạ từ các mô đun của khai phá dữ liệu web [16, 311], các chức năng thu thập thông tin web tương ứng các bộ xử lý giao thức vào thiết bị, việc tách dữ liệu
15
web tương ứng với biểu thức chính quy, tiến trình lưu trữ khai thác dữ liệu khách hàng tương ứng việc tính năng điều khiển. Trên cơ sở các nghiên cứu trên, mơ hình đề xuất để giải quyết bài tốn thu thập và điều khiển thơng minh như Hình 2.3.
Protocol MML vào node mạng Định nghĩa kiểu dữ liệu File cấu hình, đường dẫn Tiến trình xử lý MML, log DB Tiến trình xử lý File
Các tiêu chuẩn quy hoạch thiết kế nhập vào Các nguồn dữ liệu từ phần mềm khác CSDL của hệ thống thơng minh
lưu trữ thơng tin cấu hình node mạng, các bất thường từ node
mạng
Đưa ra các rule liên kết các bất thường
của hệ thống
Tổng hợp các báo cáo tuỳ chỉnh trên DB, giảm thời gian
tổng hợp lặp lại
Đưa ra các thông tin trigger các hệ thống tác động vào
node mạng, để điều khiển các tiến
trình thay đổi thơng tin node mạng, nhằm đạt được chất lượng
dịch vụ tốt Khai thác báo cáo
trực tiếp, giảm thời gian tổng hợp lặp lại
Hình 2.3. Mơ hình phần mềm thu thập điều khiển
Thiết kế CSDL tập trung cũng là nền móng cho việc phát triển của các kĩ sư dữ liệu, khi chỉ cần một người có thể thao tác trên dữ liệu của nhiều thiết bị mà không cần phải hiểu biết nhiều về cách thức hoạt động của chúng. Đồng thời việc vận hành thiết bị cũng an toàn hơn do hạn chế người dùng vào thiết bị khi không cần thiết.
Từ mơ hình trên và các u cầu thực tế, có thể hình dung các mơ đun cần có để người dùng tương tác, sắp xếp theo Hình 2.4, các chức năng ở góc bên trái, các chức năng thành phần được trình bày ở màn hình chính giữa.
Mô đun quản lý: Giao diện định nghĩa kiểu dữ liệu, quản lý danh mục phần tử mạng, các dạng biểu thức chính quy.
Mơ đun giao diện: Giao diện tương tác với các nguồn dữ liệu ngồi như các nguồn API, các dữ liệu chuẩn hố, quy hoạch.
Mô đun báo cáo: Hiển thị các dữ liệu cho người dùng, tất cả các báo cáo cơng việc sẽ được trình bày tập trung và chuẩn hóa.
Mơ đun cấu hình: Giao diện cho phép người dùng định nghĩa, các cấu hình phân tích dữ liệu, lập lịch định kì phân tích dữ liệu, cấu hình regex lấy dữ liệu.
16
Mô đun giao tiếp: Kết nối phần mềm trigger cảnh báo rà soát, kết nối phần mềm tác động vào thiết bị.
Thiết kế thử nghiệm theo giao diện chuẩn hố Ericsson, theo Hình 2.4:
Hình 2.4. Hướng phát triển vận hành khai thác thông minh của Ericsson
Ngồi các mơ đun cho hoạt động thu thập thông tin, hệ thống cũng các chức năng khác như đảm bảo an ninh an toàn qua phân quyền hệ thống, quản lý các tương tác, giao thức, danh mục, cấu trúc biểu thức chính quy. Đồng thời, ngồi việc thiết kế theo chiều sâu với các mô đun riêng, cần đảm bảo các tính năng theo chiều rộng, do việc chia nhỏ các công việc luôn kéo theo các yêu cầu về cập nhật, chỉnh sửa trên nhiều đối tượng, ví dụ cập nhật cấu hình vào nhiều tác vụ.
2.2. TỰ ĐỘNG HỐ VIỆC THU THẬP THƠNG TIN 2.2.1. Giải pháp đăng nhập phần tử mạng tự động 2.2.1. Giải pháp đăng nhập phần tử mạng tự động
Hiện tại, các thiết bị viễn thông do một số nhà cung cấp sản xuất, qua các tài liệu từ nhà cung cấp [8,9] và thực tế trên mạng lưới, việc đăng nhập vào phần tử mạng để thu thập thông tin qua tương tác lệnh tập trung phần lớn (hơn 80%) ở các giao thức telnet/ssh, ftp/sftp và một phần nhỏ ở giao thức đồ hoạ (GUI), ở đây chúng ta tập trung vào các giao thức telnet/ssh, ftp/sftp; cịn các thơng tin thu được từ phần tử mạng qua các giao thức này là dạng thông tin hiển thị (log) và dạng file. Việc giải quyết vấn đề tự động hóa cho các giao thức này là đảm bảo vấn đề đăng nhập và thu thập thông tin của hệ thống thông minh.
17
Đặc điểm của hai giao thức này khi đăng nhập vào phần tử mạng là để tương tác lệnh, sau khi đã đăng nhập hệ thống phần mềm có thể gửi các lệnh lấy thơng tin (như thao tác của kĩ sư) để phần tử mạng trả về log mong muốn, Hình 2.5 mơ tả về giao thức ssh khi người dùng thao tác khi làm việc với thiết bị.
user@localmachine:~$ ssh root@192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. ECDSA key fingerprint is ed:d2:9d:e6:60:42:16:80:c0:fd:64:e6:a5:f6:c3:cf. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.1' (ECDSA) to the list of known hosts. root@192.168.1.1's password:
BusyBox v1.19.4 (2013-12-06 11:42:37 CET) built-in shell (ash) Enter 'help' for a list of built-in commands.
_______ _ _ _____ _____ _____ _____ |__ __|| | | || __ \ | __ \ |_ _| / ____| | | | | | || |__) || |__) | | | | (___ | | | | | || _ / | _ / | | \___ \ | | | |__| || | \ \ | | \ \ _| |_ ____) | |_| \____/ |_| \_\|_| \_\|_____||_____/
BARRIER BREAKER (Bleeding Edge, r38891) root@turris:~#
Hình 2.5. Mẫu log ssh
Đối với mẫu tương tác ở trên, khi chuyển đổi sang phần mềm sẽ qua một thư viện, khi phần mềm cần vào hệ điều hành nào sẽ gọi thư viện (Hình 2.6) tương ứng, qua đó tự động hóa phương thức đăng nhập. Việc thiết kế các thư viện cũng cần linh hoạt, do giao thức ssh có thể phát triển tùy biến từ hệ điều hành linux, tùy theo nhà sản xuất, do đó tính linh hoạt trong thiết kế giúp cho việc đáp ứng các thay đổi của hệ thống thông minh tốt hơn, nhanh hơn.
Dựa trên việc tổng hợp các mẫu telnet/ssh trên mạng lưới, từ đó tìm được các lib tương ứng để bổ sung vào nền tảng hệ thống, đảm bảo cho việc đăng nhập cho tất cả phần tử mạng và việc gửi lệnh lấy log hoàn toàn tự động.
18
SSHClient ssh = new SSHClient(); //ssh.useCompression(); ssh.loadKnownHosts(); ssh.connect("localhost"); try { ssh.authPublickey(System.getProperty("user.name")); new SCPDownloadClient(ssh).copy("ten", "/tmp"); } finally { ssh.disconnect(); } Hình 2.6. Thư viện ssh 2.2.3. Giao thức ftp/sftp
Đặc điểm của hai giao thức này khi đăng nhập vào phần tử mạng là để tương tác file, sau khi đã đăng nhập hệ thống phần mềm có thể đọc các file cấu hình của phần tử mạng để lấy ra các thơng tin cần thiết, theo Hình 2.7.
sftp user@IP_Address
user@IP_Address' password: Connected to IP_Address.
Hình 2.7. Mẫu log sftp
Cũng như giao thức telnet/ssh, việc đăng nhập ftp/sftp bằng phần mềm cũng được đóng gói bằng các thư viện tương ứng, theo Hình 2.8.
19
private SSHClient setupSshj() throws IOException {
SSHClient client = new SSHClient();
client.addHostKeyVerifier(new PromiscuousVerifier());
client.connect(remoteHost);
client.authPassword(username, password); return client;
}
Hình 2.8. Thư viện sftp
Tương tự phần tương tác lệnh, phần ftp/sftp cũng dựa trên tổng hợp các lib của thiết bị để bổ sung vào nền tảng đảm bảo việc thu thập thông tin tự động.
2.2.4. Quản lý phần tử mạng đăng nhập tự động
Khi đã tích hợp đầy đủ các thư viện đăng nhập, việc quản lý, mở rộng phần tử mạng tích hợp vào hệ thống thông minh chỉ cần chỉ do IP/port/user/pass/giao thức/lệnh cần gửi vào phần tử mạng là phần mềm có thể nhận diện và thực thi các thao tác nghiệp vụ giống như công việc kĩ sư đã làm, cụ thể các trường thông tin qua Bảng 2.1 và Bảng 2.2.
Bảng 2.1. Bảng thông tin phần tử mạng telnet/ssh
STT Thông tin Ví dụ
1 Tên phần tử mạng SGSN
2 IP 1.1.1.1
3 Port 23
4 Giao thức Telnet
5 Lệnh gửi lấy thông tin IAG
Bảng 2.2. Các thơng tin của tiến trình tự động lấy file
STT Thơng tin Ví dụ
20
2 IP 1.1.1.1
3 Port 22
4 Giao thức sftp
5 File cần lấy IAG.xml
6 Đường dần file /a/b
Sau khi đăng nhập và gửi lệnh vào phần tử mạng, cần xử lý các đoạn dữ liệu trả về để lấy thông tin cần thiết. Nếu q trình lấy thơng tin thiết bị cố định trong lập trình của hệ thống phần mềm, thì khi cần mở rộng sẽ tốn nhiều nỗ lực, khiến cho hệ thống kém linh hoạt.
Do đặc tính log từ thiết bị là có cấu trúc nên để giải quyết vấn đề này, ứng dụng công nghệ lấy thơng tin theo biểu thức chính quy (Regex Expresssion).
2.2.5. Cấu trúc thông tin hiển thị của thiết bị
Việc phân tích các mẫu thơng tin hiển thị (log) của các nhà cung cấp cho ta biết cấu trúc log của thiết bị và đưa ra phương án xử lý trên phần mềm để trích xuất được thơng tin cần thiết.
Các thông tin này cũng được tạo ra qua quá trình lập trình của nhà cung cấp nên nó có cấu trúc ở dạng hàng cột nhất định, do đó sẽ xây dựng được giải pháp chung cho việc phân tích tự động ở dạng nền tảng mở cho người dùng cấu hình.
Nhà cung cấp Nokia, khi gửi lệnh “ZWAE:1A;” sẽ có kết quả như hình 2.9 [8], với cấu trúc kiểu hàng cột ở lớp nhãn (phía trên dấu -, và nội dung hiển thị (dưới dấu -), một số ký tự đặc biệt dạng khoảng trắng, từ đó thấy được nếu áp dụng biểu thức chính quy dạng chuyển đổi một cột thành nhiều cột sẽ xử lý được loại dữ liệu này.
Các Hình 2.10 và 2.12 mơ tả dạng log theo kiểu dịng thơng tin, với kiến trúc này có thể dùng mẫu regex theo dịng để tách ra các thơng tin cần thiết, hạn chế của việc xử lý theo dòng so với theo cột là ở ký tự khoảng trắng và các cụm ký tự.
21
ZWAE:1A;
LOADING PROGRAM VERSION 5.7-0 BSC3i KARHU 2006-11-14 08:43:24 CONNECTION PLUG-IN UNIT: HWAT MASTER UNIT: OMU 1A002-06
ALARM CARTRIDGE CARTRIDGE INPUTS OF ALARM GROUP INFO GROUP TYPE COORDINATES 0 1 2 3
----------------------------------------------------------------------------- 1 PSAD & PSFP 1A 2759 - 2758 - 2 CC4C_A 1A002-00 2757 2755 - - 3 CC4C_A 1A002-03 2757 2755 - - 4 NOT CONFIG - - - - 5 CC3C_A 1A003-00 2757 2755 - - 6 CC3C_A 1A003-04 2757 2755 - - 7 CC3C_A 1A003-08 2757 2755 - - 8 CC3C_A 1A004-00 2757 2755 - - 15 NOT CONFIG - - - - Hình 2.9. Dạng log Nokia
Hiển thị của nhà cung cấp Ericsson theo mẫu Hình 2.10
Hình 2.10. Lấy thơng tin Ericsson
22
Hình 2.11. Mẫu log Huawei 1
Hình 2.12. Mẫu log Huawei 2
Như vậy, tất cả các loại log đều có cấu trúc nhất định như: Hàng – cột, biểu thức (A=B), dạng liệt kê thuộc tính (A:A1, B:B1, C:C, .v.v). Việc sử dụng cơng nghệ biểu thức chính quy sẽ giúp lấy thông tin tự động từ các loại log này.
2.2.6. Cấu trúc file thông tin
Với file thơng tin cũng thuộc loại có cấu trúc, chỉ khác về dạng lưu trữ và cũng có thể được xử lý bằng biểu thức chính quy. Dạng lưu trữ phổ biến trên các thiết bị hiện là zip, xml, xml.gz,txt,csv. Đối với dạng file lưu trữ, kiểu cấu trúc phổ biến là kiểu theo dịng, đặc tính của dữ liệu file thường chứa nhiều đối tượng hơn so với kiểu lệnh.
23 <?xml version="1.0" encoding="UTF-8"?> - <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading>
<body>Don't forget me this weekend!</body> </note>
Hình 2.13. Mẫu thơng tin trong file cấu hình
2.2.7. Biểu thức chính quy
Cơng nghệ biểu thức chính quy (Regular Expression - Regex) là sử dụng các mẫu (pattern) thay vì các chuỗi cụ thể được sử dụng tìm/thay thế (find/replace). Là một cơng cụ cực mạnh cho xử lí chuỗi trong PHP, javascript… Việc tích hợp cơng nghệ này vào hệ thống thơng minh sẽ là giải pháp cho việc thu thập thông tin tự động dựa trên việc log/file có cấu trúc từ phần tử mạng đã được thu thập tự động, các cú pháp cơ bản của biểu thức chính quy theo Bảng 2.3.
Bảng 2.3. Các cú pháp cơ bản của biểu thức chính quy
STT Ký
hiệu Ý nghĩa Ví dụ Mơ tả
1 ^ Bắt đầu của chuỗi ^B Lấy kí tự B đầu tiên trong chuỗi
2 $ Kết thúc của chuỗi X$ chỉ nếu kí tự cuối cùng trong chuỗi là X
3 . Bất kì kí tự nào trừ kí tự xuống
24
4 * Kí tự trước có thể lặp lại 0 hoặc
nhiểu lần ra*t rt,rat,raat,raaat
5 + Kí tự trước có thể lặp lại 1 hoặc
nhiểu lần ra+t
rat,raat,raaat (khơng có rt)
6 ? Kí tự trước có thể lặp lại 0 hoặc 1
lần ra?t rt và rat only
7 \s Bất kì kí tự khoảng trắng \sa [space]a, \ta, \na 8 \S Bất kì kí tự nào khơng phải là
khoảng trắng \SF
aF, rF, cF, (khơng có \tf)
9 \b Đánh dấu chuỗi ranh giới của từ
cần lấy Ion\b
Tất cả từ kết thúc bởi Ion
10 \B Lược bỏ ranh giới của từ cần lấy \BX\B Bất kì kí tự X ở giữa của 1 từ
Việc sử dụng regex lấy một thơng tin được mơ tả trong Hình 2.14 và Hình 2.15.
Hình 2.14. Sử dụng regex lấy dữ liệu
Dùng chuỗi Max Output Power(0.1dBm) = \s\S+, biểu thức này sẽ cho ta giá trị = 460 là giá trị mong muốn lấy ra.
25
Kiểm tra lại trên trang regex 101.com để xác nhận kết quả.
Hình 2.15. Kiểm tra trên trang regex
2.2.8. Giải pháp lưu trữ thơng tin
Hệ quả của q trình đăng nhập lấy log và lấy thông tin sẽ tạo ra các dữ liệu phải lưu trữ, do đó hệ thống thơng minh cũng cần được tổ chức lưu trữ một cách hợp lý để phục vụ cho các yêu cầu cao hơn, bao gồm các lưu trữ sau:
2.2.9. Lưu trữ log thơ
Log thơ sinh ra khi tiến trình đăng nhập gửi lệnh vào phần tử mạng và phần tử mạng trả về thơng tin, việc lưu trữ log thơ có ý nghĩa quan trọng trong việc rà soát lại kết quả của thơng tin thu thập có đầy đủ hay khơng, hay có thể phục vụ các kiểm tra trực tiếp trên log thô, việc lưu trữ này cũng yêu cầu một server ngồi và việc kiểm sốt các session đẩy lên server. Hình 2.16 mơ tả các bước tự động thu thập và lưu trữ file log. Đối với loại dữ liệu file cấu hình sẽ lưu lại file.
Giải pháp đăng nhập tự động thiết bị Gửi lệnh vào node mạng để lấy log thô
Gửi log thô lên server
FTP
26
2.2.10. Lưu trữ thông tin trên cơ sở dữ liệu
Kết quả của biểu thức chính quy sẽ được đẩy vào lưu trữ trong cơ sở dữ liệu (database), việc lấy thông tin từ các phần tử tương ứng qua các biểu thức regex và lưu trữ trên database theo Hình 2.17 và Bảng 2.4, việc tổ chức lưu trữ cũng trên cơ sở cùng một cấu trúc để thuận tiện cho việc khai thác.
Regex1 Regex2 Regexn Cơ sở dữ liệu Thiết bị 1 Thiết bị 2 Thiết bị n