Cấu hình Logstash tự động reload lại cấu hình – Cuongquach.com | Có một vấn đề khá là khó chịu khi bạn quản trị và sử dụng dịch vụ Logstash để xử lý các log event trước khi gửi về các store service như Elasticsearch đầu cuối. Vấn đề đó là nếu bạn thường xuyên thay đổi các rule filter, input, output,… khi đang trong thời gian thiết kế các bộ rule xử lý log event thì bạn phải khởi động lại dịch vụ Logstash mới áp cấu hình rule mới. Thật bất tiện vô cùng khi mà Logstash khởi động lại dịch vụ khá là mất thời gian nếu bộ rule của bạn khá nhiều.
Có thể bạn quan tâm chủ đề khác
– Hướng dẫn cài đặt Logstash trên CentOS 7
– Tìm hiểu về Elasticsearch Cluster
– Kiểm tra cấu hình khuôn mẫu Logstash Grok bằng công cụ online
– Tìm hiểu dịch vụ Logstash trong ELK Stack Logging
Cấu hình Logstash tự động reload lại cấu hình
Từ phiên bản 2.3 Logstash đã hỗ trợ option giúp Logstash tự động nhận diện sự thay đổi trong file cấu hình dịch vụ Logstash và reload lại cấu hình Logstash bao gồm cấu hình global hoặc cấu hình các bộ rule filter/input/output đang được khai báo.
Để bật tính năng này vô cùng đơn giản. Nếu dịch vụ Logstash của bạn chạy command line để khởi động thì thêm option sau :
- –config.reload.automatic : kích hoạt tính năng tự nhận diện sự thay đổi ở các file cấu hình và reload.
- –config.reload.interval <interval> : khoảng thời gian giữa các lần Logstash nhận diện sự đổi và reload cấu hình. Mặc định là 3 giây.
Cú pháp
bin/logstash –f apache.config --config.reload.automatic --config.reload.interval 3
Nếu bạn cài đặt Logstash qua Repository thì có thể thay đổi ở file cấu hình Logstash
# vi /etc/logstash/logstash.yml config.reload.automatic: true config.reload.interval: 3s # systemctl restart logstash
Logstash khi tự động reload cấu hình sẽ như thế nào ?
Khi Logstash phát hiện thay đổi trong file cấu hình, nó sẽ dừng pipeline hiện tại bằng cách dừng tất cả các input và nó cố gắng tạo một pipeline mới sử dụng cấu hình được cập nhật. Sau khi xác thực cú pháp của cấu hình mới, Logstash sẽ xác minh rằng tất cả các intput và output có thể được khởi tạo. Nếu kiểm tra thành công, Logstash hoán đổi pipeline hiện có với pipeline mới. Nếu kiểm tra thất bại, pipeline cũ tiếp tục hoạt động và các lỗi được truyền đến log file hoặc terminal.
Trong quá trình tải lại cấu hình tự động, JVM không được khởi động lại. Việc tạo và hoán đổi các đường ống đều diễn ra trong cùng một quy trình.
Nguồn: https://cuongquach.com/