Phần 2: Kết hợp JSNAP và Chatbot để tạo ra giá trị

phần 1, quý độc giả đã được người viết giới thiệu về JSNAP, hướng dẫn cách cài đặt cũng như cách thức sử dụng hệ thống này. Tiếp nối phần này, người viết sẽ giới thiệu cách kết hợp JSNAP và Chatbot hỗ trợ người quản trị trong quá trình thực hiện việc bảo trì, bảo dưỡng, thay đổi trạng thái hệ thống.

Để hoạt động vận hành đơn giản và nhẹ nhàng hơn, việc triển khai Chatbot trên hệ thống là vô cùng cần thiết. Telegram là công cụ đơn giản nhất hỗ trợ cho giao tiếp giữa bot và người quản trị. Sơ đồ triển khai Chatbot sẽ như sau:

A.    Các bước triển khai chatbot:
[perfectpullquote align=”full” cite=”” link=”” color=”” class=”” size=”14″]

Bước 1: Tạo Bot mới

Bước 2: Đăng kí Bot Webhook

Bước 3: Thực hiện Webhook

  • Thiết kế bộ não chatbot
  • Kết hợp mô hình
[/perfectpullquote]

Mô tả các bước:

Bước 1: Tạo Bot mới

Theo hướng dẫn của botfather trong telegram sẽ dễ dàng tạo được một Bot mới.

Bước 2: Đăng kí Bot Webhook

Sử dụng webhook để nhận các update từ bot.

Bước 3: Thực hiện Webhook

Sau khi đã đăng kí được các API từ Telegram ra ngoài. Chúng ta sẽ xây dựng bộ não của bot theo sơ đồ khối sau:

Sau khi triển khai hoàn thiện các bước kiểm tra và các baseline cho hệ thống thì đã đến lúc kết hợp với hệ thống cấu hình tự động (AOPT) và chatbot (Telegram) để tạo nên trợ thủ đắc lực cho cán bộ quản trị. Cụ thể sẽ kết hợp AOPT và JSNAP để lấy trạng thái chuẩn nhất của hệ thống (baseline). Sau đó hằng ngày mỗi 6:00 AM công cụ AOPT sẽ tự chạy JSNAP toàn bộ hệ thống và so sánh với baseline. Nếu có thay đổi nào bất thường sẽ thông báo cho admin thông qua chatbot Telegram. Admin sau khi có quyết định sẽ tương tác với chatbot Telegram để yêu cầu AOPT chạy lại JSNAP hoặc tạo ra baseline mới.

B.     Sơ đồ hoạt động

C.     Mô tả các bước hoạt động

Bước 0:

  • Ở lần đầu tiên, dùng tool AOPT để manual tạo baseline snapshot cho thiết bị
    • jsnap –snap baseline -t <ip thiết bị trong group x> -l nocmon -p [email protected] <file config cho thiết bị thuộc group x>

Bước 1:

  • Danh sách thiết bị của FTEL sẽ được chia ra thành nhiều group. Mỗi thiết bị thuộc 1 group. Đối với mỗi group sẽ có 1 file jsnap config tương ứng.
    • Group PE
    • Group BRAS
    • Group CGNAT
    • Group MC
    • Group EX Layer 3
    • Group EX Layer 2
  • Command:
    • time = strftime(“%d-%m-%Y-%Hh%M”)
    • jsnap –snap time -t <ip thiết bị trong group x> -l nocmon -p [email protected] <file config cho thiết bị thuộc group x>

Bước 2: 

  • Command:
    • jsnap –check baseline,time -t <ip thiết bị trong group x>  <file config cho thiết bị thuộc group x>
    • time ở bước này chính là giá trị time đã lấy ở bước 1
    • baseline là snapshot ban đầu của thiết bị, đã lấy ở bước 0

Bước 3,4 & 8:

  • Kết quả trả về ở bước 2 có dạng như bên dưới:
[perfectpullquote align=”full” cite=”” link=”” color=”” class=”” size=”14″ font=”arial”] [[email protected] jsnap]$ jsnap –check DATABC,DATXYZ -t 42.119.255.166 template-upgrade-junos.conf

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

>>>

>> TARGET: 42.119.255.166

>>>

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

—————————————————————————

CHECKING SECTION:check_show_chassis_routing_engine

—————————————————————————

+ TEST PASSED: “Checking the routing-engine status…”

+ TEST PASSED: “Checking the DRAM…”

————————————————————————–

CHECKING SECTION: check_subscribers

—————————————————————————

– TEST FAILED: “Checking if total subscribers has changed”

ERROR: The subscribers has changed from 0 to 0. [/perfectpullquote]

  • Đối với 1 thiết bị:
    • Nếu xuất hiện log ERROR, xuất ra telegram nội dung của log và thiết bị: TARGET: 42.119.255.166. ERROR: The subscribers has has changed from 0 to 0. Một thiết bị có thể có nhiều log ERROR, khi đó cần gom chung các error và gửi vào 1 message duy nhất.
    • Nếu không có log ERROR, bỏ qua.
  • Nếu tất cả thiết bị đều ko có log ERROR. Thông báo: All snapshot on time is OK

Bước 5:

  • Sau khi chạy xong bước 3 & 4 cho tất các thiết bị. Đối với các thiết bị có log báo error, gửi tin nhắn: There are some error at <ip>. Please check! Thông báo này gửi mỗi 30p cho đến khi nhận được phản hồi. Phản hồi từ một số user nhất định theo cú pháp:
    • <ip> r hoặc <ip> recheck à chuyển qua bước 6
    • <ip> ok hoặc <ip> bypass à chuyển qua bước 7

Bước 6:

  • Lấy lại giá trị time mới
  • Chạy lại bước 2 với thiết bị nhận từ phản hồi qua telegram
    • jsnap –check baseline,time -t <ip thiết bị trong group x>  <file config cho thiết bị thuộc group x>

Bước 7:

  • Tạo lại baseline snapshot cho thiết bị được phản hồi qua telegram
    • jsnap –snap baseline -t <ip thiết bị trong group x> -l nocmon -p [email protected] <file config cho thiết bị thuộc group x>
  • Thông báo tạo baseline snapshot cho thiết bị thành công
D.    Kết quả đạt được

Lương Duy Phương – FPT Telecom

Tin liên quan: