Elastic Stack là sự kết hợp của bốn thành phần chính Elasticsearch, Logstash, Kibana và Beats. Filebeat là một trong những thành viên nổi tiếng nhất của họ này, thu thập, chuyển tiếp và tập trung dữ liệu nhật ký sự kiện vào Elasticsearch hoặc Logstash để lập chỉ mục. Filebeat có nhiều mô-đun, bao gồm Apache, Nginx, System, MySQL, auditd và nhiều mô-đun khác, giúp đơn giản hóa việc trực quan hóa các định dạng nhật ký phổ biến thành một lệnh duy nhất.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Filebeat để chuyển tiếp nhật ký sự kiện, sự kiện xác thực SSH tới Logstash trên Ubuntu 18.04.
Sau khi hệ thống của bạn được cập nhật, hãy khởi động lại để áp dụng các thay đổi.
Đầu tiên, cài đặt gói cần thiết bằng lệnh sau:
Tiếp theo, tải xuống và thêm khóa Elastic Stack bằng lệnh sau:
Tiếp theo, thêm kho lưu trữ Elastic Stack 7 Apt bằng lệnh sau:
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt Filebeat bằng lệnh sau:
Sau khi quá trình cài đặt hoàn tất, bạn có thể tiến hành bước tiếp theo.
Ghi chú đầu ra elasticsearch và bỏ ghi chú đầu ra Logstash như hiển thị bên dưới:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Bạn sẽ thấy đầu ra sau:
Theo mặc định, tất cả các mô-đun đều bị vô hiệu hóa. Vì vậy, bạn sẽ cần bật mô-đun hệ thống để thu thập và phân tích các bản ghi được tạo bởi dịch vụ ghi nhật ký hệ thống. Bạn có thể bật mô-đun hệ thống bằng lệnh sau:
Tiếp theo, bạn có thể xác minh mô-đun hệ thống bằng lệnh sau:
Bạn sẽ thấy mô-đun hệ thống hiện đã được bật:
Tiếp theo, bạn sẽ cần định cấu hình mô-đun hệ thống để chỉ đọc nhật ký xác thực. Bạn có thể thực hiện bằng cách chỉnh sửa tệp /etc/filebeat/modules.d/system.yml:
Thay đổi các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Bạn sẽ thấy đầu ra sau:
Tiếp theo, tạo mẫu chỉ mục và cài đặt mẫu trên máy chủ Elastic Stack bằng lệnh sau:
Cuối cùng, hãy khởi động dịch vụ Filebeat và cho phép nó khởi động sau khi khởi động lại hệ thống bằng lệnh sau:
Bạn có thể kiểm tra trạng thái của Filebeat bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bạn sẽ thấy đầu ra sau:
Bạn cũng có thể xác minh chỉ mục ssh_auth-2019.05 bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bây giờ, hãy nhấp vào Tạo mẫu chỉ mục. Bạn sẽ thấy trang sau:
Thêm ssh_auth-* index và nhấp vào nút Next bước. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn @timestamp và nhấp vào nút Create index pattern. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào tab Discover ở ngăn bên trái. Bạn sẽ có thể thấy dữ liệu của mình trong màn hình sau:
Xin chúc mừng! Bạn đã cài đặt và cấu hình thành công Filebeat để gửi dữ liệu sự kiện đến Logstash. Bây giờ bạn có thể tiến hành tạo bảng điều khiển Kibana sau khi nhận được tất cả dữ liệu.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Filebeat để chuyển tiếp nhật ký sự kiện, sự kiện xác thực SSH tới Logstash trên Ubuntu 18.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 18.04 với Elasticsearch, Kibana và Logstash được cài đặt và cấu hình.
- Một mật khẩu gốc được cấu hình trên máy chủ của bạn.
Bắt đầu
Trước khi bắt đầu, hãy cập nhật hệ thống của bạn lên phiên bản mới nhất. Bạn có thể thực hiện bằng cách chạy lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Cài đặt Filebeat
Theo mặc định, Filebeat không có sẵn trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ Elastic Stack 7 APT vào hệ thống của mình.Đầu tiên, cài đặt gói cần thiết bằng lệnh sau:
Mã:
apt-get install apt-transport-https -y
Mã:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Mã:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list
Mã:
apt-get update -y
apt-get install filebeat -y
Cấu hình Filebeat
Theo mặc định, Filebeat được cấu hình để gửi dữ liệu sự kiện đến Elasticsearc. Ở đây, chúng ta sẽ cấu hình Filebeat để gửi dữ liệu sự kiện đến Logstash. Bạn có thể thực hiện bằng cách chỉnh sửa tệp /etc/filebeat/filebeat.yml:
Mã:
nano /etc/filebeat/filebeat.yml
Mã:
#-------------------------- Đầu ra Elasticsearch ---------------------------# output.elasticsearch: # Mảng máy chủ để kết nối. # hosts: ["localhost:9200"]#----------------------------- Đầu ra Logstash --------------------------------output.logstash: # Máy chủ Logstash hosts: ["localhost:5044"]
Bật Mô-đun Hệ thống Filebeat
Theo mặc định, Filebeat đi kèm với rất nhiều mô-đun. Bạn có thể liệt kê tất cả các mô-đun bằng lệnh sau:
Mã:
filebeat modules list
Mã:
Enabled:Disabled:apacheauditdawscefciscocorednselasticsearchenvoyproxygooglecloudhaproxyibmmqicingaiisiptableskafkakibanalogstashmongodbmssqlmysqlnatsnetflownginxosquerypanwpostgresqlrabbitmqredissantasuricatasystemtraefikzeek
Mã:
filebeat modules enable system
Mã:
filebeat modules list
Mã:
Enabled:system
Mã:
nano /etc/filebeat/modules.d/system.yml
Mã:
- module: system # Syslog syslog: enabled: false... # Authorization logs auth: enabled: true # Đặt đường dẫn tùy chỉnh cho các tệp nhật ký. Nếu để trống, # Filebeat sẽ chọn đường dẫn tùy thuộc vào hệ điều hành của bạn. var.paths: ["/var/log/auth.log"]
Tải mẫu chỉ mục trong Elasticsearch
Tiếp theo, bạn sẽ cần tải mẫu vào Elasticsearch theo cách thủ công. Bạn có thể thực hiện bằng lệnh sau:
Mã:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Mã:
Thiết lập chỉ mục đã hoàn tất.
Mã:
filebeat export template > filebeat.template.json
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.0.1 [emailprotected]
Mã:
systemctl start filebeat
systemctl enable filebeat
Mã:
systemctl status filebeat
Mã:
? filebeat.service - Filebeat gửi tệp nhật ký đến Logstash hoặc trực tiếp đến Elasticsearch. Đã tải: đã tải (/lib/systemd/system/filebeat.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ ba 2019-11-26 06:45:18 UTC; 14 giây trước Tài liệu: https://www.elastic.co/products/beats/filebeat PID chính: 13059 (filebeat) Nhiệm vụ: 28 (giới hạn: 463975) CGroup: /system.slice/filebeat.service ??13059 /usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml -path.home /usr/share/filebeat -path.config /etc/filebeat26 tháng 11 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z INFO log/harvester.go:251 Harvester đã bắt đầu cho tệp: /va26 tháng 11 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z INFO log/harvester.go:251 Harvester đã bắt đầu cho tệp: /va26-11 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z INFO log/harvester.go:251 Harvester đã bắt đầu cho tệp: /va26-11 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z INFO log/harvester.go:251 Harvester đã bắt đầu cho tệp: /va26-11 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z INFO log/harvester.go:251 Harvester đã bắt đầu cho tệp: /va26 tháng 11 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z THÔNG TIN log/harvester.go:251 Harvester đã bắt đầu cho tệp: /va26 tháng 11 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.485Z THÔNG TIN add_cloud_metadata/add_cloud_metadata.go:87 add_clou26 tháng 11 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.486Z THÔNG TIN log/harvester.go:251 Harvester đã bắt đầu cho tệp: /vaTháng 11 26 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.485Z INFO pipeline/output.go:95 Đang kết nối tới backoff(async(tc26 tháng 11 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.487Z INFO pipeline/output.go:105 Đang kết nối tới backoff(async(t
Kiểm tra việc tiếp nhận dữ liệu của Elasticsearch
Bây giờ, hãy xác minh xem Elasticsearch có đang nhận dữ liệu hay không bằng lệnh sau:
Mã:
curl -X GET localhost:9200/_cat/indices?v
Mã:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.sizegreen mở .kibana_task_manager_1 fpHT_GhXT3i_w_0Ob1bmrA 1 0 2 0 46,1kb 46,1kbyellow mở ssh_auth-2019.11 mtyIxhUFTp65WqVoriFvGA 1 1 15154 0 5,7mb 5,7mbyellow mở filebeat-7.4.2-2019.11.26-000001 MXSpQH4MSZywzA5cEMk0ww 1 1 0 0 283b 283bgreen mở .apm-agent-configuration Ft_kn1XXR16twRhcZE4xdQ 1 0 0 0 283b 283bgreen mở .kibana_1 79FslznfTw6LfTLc60vAqA 1 0 8 0 31.9kb 31.9kb
Mã:
curl -X GET localhost:9200/ssh_auth-*/_search?pretty
Mã:
{ "took" : 1, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 10000, "relation" : "gte" }, "max_score" : 1.0, "hits" : [ { "_index" : "ssh_auth-2019.11", "_type" : "_doc", "_id" : "g7OXpm4Bi50dVWRYAyK4", "_score" : 1.0, "_source" : { "log" : { "offset" : 479086, "file" : { "path" : "/var/log/elasticsearch/gc.log" } }, "event" : { "timezone" : "+00:00", "dataset" : "elasticsearch.server", "module" : "elasticsearch" },
Thêm chỉ mục vào Kibana
Bây giờ, hãy đăng nhập vào bảng điều khiển Kibana của bạn và nhấp vào Chỉ mục Mẫu. Bạn sẽ thấy trang sau:Bây giờ, hãy nhấp vào Tạo mẫu chỉ mục. Bạn sẽ thấy trang sau:
Thêm ssh_auth-* index và nhấp vào nút Next bước. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn @timestamp và nhấp vào nút Create index pattern. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào tab Discover ở ngăn bên trái. Bạn sẽ có thể thấy dữ liệu của mình trong màn hình sau:
Xin chúc mừng! Bạn đã cài đặt và cấu hình thành công Filebeat để gửi dữ liệu sự kiện đến Logstash. Bây giờ bạn có thể tiến hành tạo bảng điều khiển Kibana sau khi nhận được tất cả dữ liệu.