Mô hình cấu hình thử nghiệm giải pháp ELK cho dịch vụ BVCare

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp tự động phát hiện sự cố hệ thống dựa trên công nghệ ELK (elasticsearch, logstash và kibana) (Trang 54 - 55)

Mô hình thử nghiệm đối với hệ thống BVCare trong hình 3.2 bao gồm 3 luồng dữ liệu: (I) : Luồng trích xuất, tích hợp, giám sát, cảnh báo lỗi dữ liệu log trên máy chủ Apache Http.

(II) : Luồng trích xuất, tích hợp, giám sát, cảnh báo lỗi dữ liệu log trên các máy chủ ứng dụng.

(III) : Luồng trích xuất, tích hợp, giám sát, cảnh báo lỗi dữ liệu log trên các máy chủ cơ sở dữ liệu.

Dữ liệu log được Logstash trích xuất và tổng hợp theo công nghệ ETL, dữ liệu từ Logstash được đưa vào 2 đầu ra là ElasticSearch để đánh chỉ mục và Email Server để gửi email cảnh báo tự động nếu lỗi được phát hiện trong dữ liệu log. Sau đó dữ liệu

sau khi được đánh chỉ mục trong ElasticSearch được sử dụng bởi Kibana để người dùng, các nhà phân tích dữ liệu xây dựng các biểu đồ, trừu tượng hóa dữ liệu để phân tích chúng.

Với mỗi thành phần trong hệ thống (Http, ứng dụng, cơ sở dữ liệu) sẽ có dữ liệu log với các cấu trúc khác nhau, tuy nhiên để cấu hình Logstash trích xuất và tích hợp dữ liệu log vào ElasticSearch và gửi email cảnh báo tự động khi phát hiện mã lỗi ta phải thực hiện cấu hình cho 3 thành phần: Input, Filter và Output tương ứng với 3 tiến trình trong công nghệ ETL là Extract, Transform và Load. Chúng tôi xây dựng sơ đồ khối chung để xử l cho nhiều loại dữ liệu log như sau:

Kiểm tra có dữ liệu thay đổi hay không?

Đọc tệp dữ liệu lưu ký

Không thay đổi Có thay đổi

File input Plugin:

input { file { path => "/u01/app/oracle/diag/ rdbms/bvcaredb/bvcaredb1/trace/ alert_ bvcaredb1.log" } }

Lọc, chuẩn hóa dữ liệu lưu ký

(1)

Đưa dữ liệu vào ElasticSearch đánh chỉ mục

Kiểm tra mã lỗi

Gửi email cảnh báo

Có mã lỗi

Không có lỗi

Filter Plugin:

filter {

# Kết hợp nhiều dòng lưu ký của cùng 1 mốc thời gian thành 1 sự kiện multiline {

pattern => "%{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{YEAR}" negate => true

what => "previous" }

…….

ElasticSearch output Plugin:

# đưa dữ liệu vào đánh chỉ mục trong ElasticSearch elasticsearch { hosts => ["elk:9200"] index => "oracle-%{+YYYY.MM.dd}" } …….

Email output Plugin:

if "ORA-" in [message] { email { port => 587 address => "smtp.gmail.com" username => "linh****@gmail.com" password => "*****" authentication => "plain" use_tls => true from => " linh****@gmail.com" subject => "Cảnh Báo: Có lỗi được tìm thấy trong dữ liệu lưu ký cơ sở dữ liệu hệ thống BVCare" to => "tranvan.linh@baoviet.com.vn" via => "smtp" body => "%{message}" debug => true }

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp tự động phát hiện sự cố hệ thống dựa trên công nghệ ELK (elasticsearch, logstash và kibana) (Trang 54 - 55)