Giám sát Logstash

Tổng quan

Việc theo dõi trạng thái của cụm Logstash là cần thiết để kịp thời phát hiện sự cố. Khi Logstash ngừng hoạt động đột ngột, hệ thống ELK sẽ không nhận được dữ liệu, gây khó khăn trong việc kiểm tra log.

Logstash từ phiên bản 5.x trở lên hỗ trợ API giám sát thông qua cổng mạng. Bằng cách cấu hình từng instance với địa chỉ IP và cổng cụ thể, có thể xây dựng hệ thống cảnh báo tự động qua email hoặc các kênh thông báo khác.

Dưới đây là hướng dẫn chi tiết về cách cấu hình cụm Logstash để giám sát hiệu quả.

  1. Mở cổng trên tường lửa

Mặc định Logstash sử dụng cổng 9600-9700. Với nhiều instance chạy trên cùng một máy, cần mở nhiều cổng:

sudo iptables -A INPUT -ptcp --dport 9600 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9601 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9602 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9603 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9604 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9605 -j ACCEPT
sudo iptables -A INPUT -ptcp --dport 9606 -j ACCEPT

Lưu cấu hình tường lửa

sudo service iptables save

Khởi động lại tường lửa

sudo service iptables restart

Kiểm tra cấu hình

sudo more /etc/sysconfig/iptables
  1. Cấu hình địa chỉ IP trong logstash.yml

Mặc định Logstash sử dụng 127.0.0.1, cần thay đổi thành IP vật lý để cho phép truy cập từ xa:

vim config/logstash.yml

# Cấu hình địa chỉ kết nối REST API
#
# http.host: "127.0.0.1"
http.host: "192.168.1.100"
  1. Kiểm tra trạng thái cổng hiện tại

Trước khi cấu hình mới, nên kiểm tra các cổng đang được sử dụng:

# Liệt kê tiến trình Logstash
ps -ef | grep logstash

# Xác định cổng được gán
sudo netstat -nap | grep 12345

# Hoặc dùng lệnh lsof
lsof -i:9600

# Dừng tiến trình nếu cần
kill -9 12345
  1. Khởi động Logstash với cổng tùy chỉnh

nohup bin/logstash -f pipeline.conf --http.port 9601  & > /dev/null &

Trong trường hợp cấu hình host không hiệu lực, sử dụng tham số khởi động:

nohup bin/logstash -f pipeline.conf --http.host 192.168.1.100 --http.port 9601  & > /dev/null &
  1. Kiểm tra kết nối

Kiểm tra qua HTTP:

# Lệnh curl
curl -XGET '192.168.1.100:9601/_node/stats?pretty=true'

# Trình duyệt web
http://192.168.1.100:9601/_node/pipeline?pretty=true

Tham khảo tài liệu chính thức của Elastic để biết thêm API.

Kiểm tra TCP:

C:\Users\admin>Test-NetConnection 192.168.1.100 -Port 9601

Thiết lập cron job để giám sát định kỳ và gửi cảnh báo khi cần.

Thẻ: Logstash ELK monitoring firewall API

Đăng vào ngày 21 tháng 7 lúc 00:55