Giao thức telnet/ssh

Một phần của tài liệu Nghiên cứu xây dựng hệ thống phân tích, điều khiển thông minh cho nghiệp vụ vận hành thiết bị di động (Trang 30)

2.2. TỰ ĐỘNG HOÁ VIỆC THU THẬP THÔNG TIN

2.2.2. Giao thức telnet/ssh

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 q 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

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 quá 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

Hình 2.17. Trích xuất dữ liệu lưu vào cơ sở dữ liệu

Tất cả các kết quả xử lý của biểu thức chính quy sẽ đều bao gồm hai thơng tin là tên đối tượng cần lấy thơng tin và giá trị của nó.

Bảng 2.4. Các thơng tin cơ bản lưu trữ trên cơ sở dữ liệu

STT Trường thông tin lưu trữ

1 Thông tin phần tử mạng 2 Regex

3 Tên đối tượng cần lấy thông tin 4 Giá trị tương ứng

Với phạm vi và dữ liệu lớn sinh ra từ các phần tử mạng qua các nghiệp vụ hàng ngày, ta sử dụng mơ hình lưu trữ với nhiều nguồn, để tối ưu về tốc độ và phạm vi truy vấn cũng như việc tách các luồng xử lý khi thu thập dữ liệu đầu vào, với các nguồn dữ liệu nhiều đối tượng ưu tiên lưu trữ trên dữ liệu lớn, còn các nguồn nhỏ hơn có thể lưu trữ trên cơ sở dữ liệu oracle để truy vấn tốt hơn, các chức năng mơ hình dữ liệu chi tiết theo Hình 2.18.

27

Dữ liệu Thông tin Tri thức

Dữ liệu lịch sử Dữ liệu vận hành Dữ liệu bên ngoài Kho dữ liệu doanh nghiệp Dữ liệu 1 Dữ liệu 2 Dữ liệu n

Hình 2.18. Mơ hình thu thập thơng tin

 Dữ liệu lịch sử, là các bản dữ liệu trước thời điểm hiện tại, được thu thập lại để đánh giá hoạt động của hệ thống theo thời gian, khai thác cho các mục đích tối ưu, tự động hoá.

 Dữ liệu vận hành, là các dữ liệu thiết bị được cập nhật mới nhất cho các nghiệp vụ vận hành đã khảo sát ở Chương 1.

 Dữ liệu bên ngoài, các nguồn dữ liệu ngồi hệ thống tự động hố, có thể trong cùng hoặc bên ngồi doanh nghiệp, chứa nhiều thơng tin có giá trị có thể sử dụng, được kết nối đến cơ sở dữ liệu chung để khai thác. Hoặc có thể là các dữ liệu theo quy hoạch do người dùng nhập vào.

 Dữ liệu lớn, là kho dữ liệu doanh nghiệp, ở đây là kho dữ liệu của hệ thống thơng minh, có thể chia thành nhiều loại cơ sở dữ liệu để tối ưu về truy vấn và quản lý và luồng xử lý.

 Các dữ liệu từ 1 đến n, là các luồng dữ liệu theo chức năng được khai thác cho các nghiệp vụ vận hành do người dùng sử dụng hoặc cho các tiến trình tự động khác.

Với mục tiêu điều khiển thông minh, về lược đồ quan hệ cơ sở dữ liệu ngoài quản lý việc thu thập tổ chức dữ liệu, cần bảng chứa thơng tin kích hoạt (trigger) các luồng điều khiển tự động thay cho hành động của người dùng, như Hình 2.19.

28 Nodename NodeID IP Port Protocol Type Vender TaskID Node RegexID Regexname RegexContent TaskID Regex TaskID Taskname TaskMML Tasktype TaskVender Task TaskID RegexID Infoname InfoValue NodeID Result InfoID Infoname TaskID FixValue Info Nodename NodeID Type Vendor Status Content Trigger Hình 2.19. Lược đồ CSDL quan hệ

 Bảng Task: Định nghĩa 1 tiến trình tự động vào phần tử mạng lấy các thơng tin, trong đó TaskMML là cấu trúc lệnh cần đẩy vào để lấy thông tin.

 Bảng Regex: Định nghĩa biểu thức chính quy lấy thông tin, tổ chức regex sẽ theo cách như hành vi của người dùng, trong log thơng tin cần lấy gì sẽ đánh dấu ký tự đặc biệt vào, ví dụ {}, với phương thức này sẽ là cơng cụ mở để cho người dùng tuỳ chỉnh cấu hình.

 Bảng Node: Danh mục phần tử mạng, đi kèm với Protocol là các giao thức telnet/ssh ftp/sftp đã khảo sát và các thuộc tính khác đảm bảo tiến trình phần mềm có thể tự động truy vấn vào phần tử mạng.

 Bảng Info: Bảng tham số chuẩn hoá làm tiêu chuẩn kiểm tra, việc so sánh kiểm tra sẽ thực hiện qua các hàm toán học, kết quả so sánh sẽ kích hoạt điều khiển nếu có phát hiện bất thường.

 Bảng Result: Bảng kết quả của biểu thức chính quy.

 Bảng Trigger: Định nghĩa form thơng tin điều khiển q trình tác động khơi phục dữ liệu bất thường.

2.2.11. Giải pháp tổng hợp báo cáo

Khi đã có dữ liệu phần tử mạng trên CSDL, việc tạo ra các báo cáo trở lên linh hoạt do không phụ thuộc vào phần tử mạng nữa, có thể tuỳ ý tổng hợp dữ liệu

29

của một hay nhiều phần tử mạng, một hay nhiều lớp mạng lại và cho tự động hố hồn tồn để nhưng lần sau hay các nhân sự khác cần thơng tin có thể sử dụng ln mà không cần liên hệ lại kĩ sư thiết bị, giải quyết được khối lượng lớn thời gian vào thiết bị, bằng cách nhúng ngôn ngữ truy vấn SQL như Hình 2.20.

Tiếp nhận Tổng hợp báo cáo và đánh giá Dữ liệu từng loại

thiết bị

 Tiếp nhận yêu cầu báo cáo  Xử lý thành công? Dữ liệu lịch sử Tổng hợp dữ liệu bằng truy vấn SQL Có Khơng  Hồn thành Các nguồn dữ liệu ngồi

Hình 2.20. Khai thác dữ liệu từ cơ sở dữ liệu

Việc sử dụng ngôn ngữ truy vấn cấu trúc trên cơ sở dữ liệu giúp việc tạo các báo cáo linh hoạt, không bị giới hạn do loại thông tin khác nhau do thiết bị như các

Một phần của tài liệu Nghiên cứu xây dựng hệ thống phân tích, điều khiển thông minh cho nghiệp vụ vận hành thiết bị di động (Trang 30)

Tải bản đầy đủ (PDF)

(70 trang)