Saturday, September 28, 2024

Giám sát VMware ESXi với ELK Stack

-

1. Tổng quan.

Hãy tưởng tượng một tình huống mà một máy chủ ESXi đột ngột gặp sự cố, gây ảnh hưởng đến hoạt động của nhiều máy ảo quan trọng. Việc phát hiện và khắc phục sự cố chậm trễ có thể dẫn đến tổn thất lớn về dữ liệu và doanh thu. Để ngăn chặn những tình huống như vậy, chúng ta cần một giải pháp giám sát hiệu quả. Bài viết này sẽ giới thiệu cách sử dụng ELK Stack để xây dựng một hệ thống cảnh báo sớm, giúp bạn chủ động ngăn chặn các sự cố trước khi chúng gây ra hậu quả nghiêm trọng.

2. Mục tiêu.

Sử dụng ELK Stack (Elasticsearch, Logstash, Kibana) để giám sát và phân tích log hệ thống của VMware ESXi.

3. Quy trình cấu hình.

3.1. Trên ESXI.

Kích hoạt SSH

Mở SSH trên máy ESXi để có thể kết nối và thực hiện các lệnh từ xa.

ssh root@<IP_ESXi>

Kiểm tra cấu hình syslog.

Xác định xem đã có cấu hình forward syslog đến một máy chủ khác chưa.

shell> esxcli system syslog config get
   Local Log Output: /vmfs/volumes/524f647f-31ac7e75-b467-08606ed69d08/systemlogs
   Local Logging Default Rotation Size: 1024
   Local Logging Default Rotations: 8
   Log To Unique Subdirectory: false
   Remote Host: 

Kích hoạt chuyển tiếp syslog.

Cấu hình ESXi để gửi log syslog đến máy chủ Logstash.

shell> esxcli system syslog config set --loghost='tcp://192.168.1.37:3514'

Kiểm tra lại cấu hình syslog.

Xác nhận rằng cấu hình đã được áp dụng thành công.

shell> esxcli system syslog config get
   Local Log Output: /vmfs/volumes/524f647f-31ac7e75-b467-08606ed69d08/systemlogs
   Local Logging Default Rotation Size: 1024
   Local Logging Default Rotations: 8
   Log To Unique Subdirectory: false
   Remote Host: tcp://192.168.1.37:3514

Khởi động lại syslog.

Đảm bảo các thay đổi có hiệu lực.

esxcli system syslog reload

Kiểm tra tường lửa.

shell> esxcli network firewall get
   Default Action: DROP
   Enabled: true
   Loaded: true

Do đang là môi trường LAB, để cho nhanh thì mình tắt tường lửa trên ESXi để cho connect đến máy chủ ELK.

esxcli network firewall set -e=false

Reload Firewall.

esxcli network firewall refresh

Check lại trạng thái Firewall.

shell> esxcli network firewall get
   Default Action: DROP
   Enabled: false
   Loaded: true

3.2. Cấu hình Logstash.

Thêm một input vào cấu hình Logstash để nhận log từ ESXi.

  tcp {
    port => 3514
  }

Phần filter tham khảo (có thể khác với từng phiên bản ESXI).

filter {
    # Các filter để xử lý và phân tích dữ liệu, ví dụ:
    grok {
        match => ["message", "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{LOGLEVEL:syslog_level}:   
 %{GREEDYDATA:syslog_message}"]
    }
    date {
        match => ["syslog_timestamp", "MMM  d HH:mm:ss YYYY"]
    }
}

Và phần output.

output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "esxi-%{+YYYY.MM.dd}"
    }
}

Khởi động lại Logstash.

Đảm bảo các thay đổi có hiệu lực.

sudo service logstash restart

3.3. Trong Kibana.

  • Tạo index pattern: Chọn index esxi-*.
  • Tạo mapping: Tùy chỉnh mapping để phù hợp với cấu trúc dữ liệu của log ESXi.
  • Tạo dashboard: Thiết kế các biểu đồ, bảng để trực quan hóa dữ liệu, ví dụ:
    • Số lượng event theo mức độ nghiêm trọng.
    • Thời gian hoạt động của các máy ảo.
    • Sử dụng tài nguyên của các máy chủ.

Lưu ý:

  • Bảo mật: Khi cấu hình SSH và tường lửa, hãy đảm bảo rằng chỉ những người có quyền hạn mới có thể truy cập vào máy chủ ESXi.
  • Hiệu suất: Nếu có nhiều máy chủ ESXi, hãy cân nhắc sử dụng một máy chủ Logstash mạnh hơn và cấu hình nhiều luồng để xử lý lượng dữ liệu lớn.
  • Phân tích: Sử dụng các tính năng của Elasticsearch để phân tích dữ liệu, tìm kiếm các pattern và tạo các cảnh báo.

Các lệnh bổ sung phục vụ cho việc debug.

  • Kiểm tra kết nối SSH: ssh -vvv root@<IP_ESXi>
  • Kiểm tra dịch vụ Logstash: sudo service logstash status
  • Tìm kiếm dữ liệu trong Elasticsearch: curl -XGET 'localhost:9200/esxi-*/_search?q=*error*'

Kết quả.

Sau khi hoàn thành các bước trên, bạn sẽ có thể xem và phân tích các logs hệ thống của ESXi trong Kibana. Điều này giúp bạn theo dõi hiệu suất, phát hiện sự cố và tối ưu hóa môi trường ESXi.

4. Kết luận.

Qua bài viết này, chúng ta đã cùng nhau khám phá cách tận dụng sức mạnh của ELK Stack để giám sát môi trường VMware ESXi. Bằng cách thu thập và phân tích log hệ thống, chúng ta có thể dễ dàng phát hiện các vấn đề tiềm ẩn, theo dõi hiệu suất của các máy ảo và máy chủ, đồng thời tạo ra các báo cáo trực quan để hỗ trợ quá trình ra quyết định. Việc đầu tư vào một hệ thống giám sát hiệu quả là một bước đi quan trọng để đảm bảo sự ổn định và phát triển của hệ thống ảo hóa.

Nguồn tham khảo: https://mtalavera.wordpress.com/2015/05/18/monitoring-vmware-esxi-with-the-elk-stack/.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories