Logstash - Bảo mật và Giám sát
Trong chương này, chúng ta sẽ thảo luận về các khía cạnh bảo mật và giám sát của Logstash.
Giám sát
Logstash là một công cụ rất tốt để giám sát các máy chủ và dịch vụ trong môi trường sản xuất. Các ứng dụng trong môi trường sản xuất tạo ra các loại dữ liệu nhật ký khác nhau như Nhật ký truy cập, Nhật ký lỗi, v.v. Logstash có thể đếm hoặc phân tích số lỗi, truy cập hoặc các sự kiện khác bằng cách sử dụng plugin bộ lọc. Phân tích và đếm này có thể được sử dụng để giám sát các máy chủ khác nhau và các dịch vụ của chúng.
Logstash cung cấp các plugin như HTTP Pollerđể theo dõi giám sát trạng thái trang web. Ở đây, chúng tôi đang theo dõi một trang web có tênmysite được lưu trữ trên Máy chủ Apache Tomcat cục bộ.
logstash.conf
Trong tệp cấu hình này, plugin http_poller được sử dụng để truy cập trang web được chỉ định trong plugin sau một khoảng thời gian được chỉ định trong cài đặt khoảng thời gian. Cuối cùng, nó ghi trạng thái của trang web vào đầu ra tiêu chuẩn.
input {
http_poller {
urls => {
site => "http://localhost:8080/mysite"
}
request_timeout => 20
interval => 30
metadata_target => "http_poller_metadata"
}
}
output {
if [http_poller_metadata][code] == 200 {
stdout {
codec => line{format => "%{http_poller_metadata[response_message]}"}
}
}
if [http_poller_metadata][code] != 200 {
stdout {
codec => line{format => "down"}
}
}
}
Chạy logstash
Chúng ta có thể chạy Logstash bằng lệnh sau.
>logstash –f logstash.conf
stdout
Nếu trang web được thiết lập, thì đầu ra sẽ là:
Ok
Nếu chúng tôi dừng trang web bằng cách sử dụng Manager App của Tomcat, đầu ra sẽ thay đổi thành -
down
Bảo vệ
Logstash cung cấp nhiều tính năng để giao tiếp an toàn với các hệ thống bên ngoài và hỗ trợ cơ chế xác thực. Tất cả các plugin Logstash đều hỗ trợ xác thực và mã hóa qua các kết nối HTTP.
Bảo mật với giao thức HTTP
Có các cài đặt như người dùng và mật khẩu cho mục đích xác thực trong các plugin khác nhau do Logstash cung cấp như trong plugin Elasticsearch.
elasticsearch {
user => <username>
password => <password>
}
Xác thực khác là PKI (public key infrastructure)cho Elasticsearch. Nhà phát triển cần xác định hai cài đặt trong plugin đầu ra Elasticsearch để kích hoạt xác thực PKI.
elasticsearch {
keystore => <string_value>
keystore_password => <password>
}
Trong giao thức HTTPS, nhà phát triển có thể sử dụng chứng chỉ của cơ quan cho SSL / TLS.
elasticsearch {
ssl => true
cacert => <path to .pem file>
}
Bảo mật với Giao thức vận tải
Để sử dụng giao thức truyền tải với Elasticsearch, người dùng cần thiết lập cài đặt giao thức để truyền tải. Điều này giúp tránh việc hủy sắp xếp các đối tượng JSON và dẫn đến hiệu quả hơn.
Xác thực cơ bản giống như được thực hiện trong giao thức http trong giao thức đầu ra Elasticsearch.
elasticsearch {
protocol => “transport”
user => <username>
password => <password>
}
Xác thực PKI cũng cần bộ SSL đúng với các cài đặt khác trong giao thức đầu ra Elasticsearch -
elasticsearch {
protocol => “transport”
ssl => true
keystore => <string_value>
keystore_password => <password>
}
Cuối cùng, bảo mật SSL yêu cầu một chút với nhiều cài đặt hơn các phương pháp bảo mật khác trong giao tiếp.
elasticsearch {
ssl => true
ssl => true
keystore => <string_value>
keystore_password => <password>
truststore =>
truststore_password => <password> }
Các lợi ích bảo mật khác từ Logstash
Logstash có thể giúp nhập các nguồn hệ thống để ngăn chặn các cuộc tấn công như tấn công từ chối dịch vụ. Việc theo dõi nhật ký và phân tích các sự kiện khác nhau trong các nhật ký đó có thể giúp quản trị viên hệ thống kiểm tra sự thay đổi trong các kết nối và lỗi đến. Những phân tích này có thể giúp xem liệu cuộc tấn công đang xảy ra hoặc sẽ xảy ra trên các máy chủ.
Các sản phẩm khác của Công ty Elasticsearch như x-pack và filebeat cung cấp một số chức năng để giao tiếp an toàn với Logstash.