Logstash là một công cụ mã nguồn mở miễn phí và là nền tảng phân tích nhật ký phổ biến nhất thế giới để thu thập, phân tích và lưu trữ nhật ký để sử dụng trong tương lai. Logstash đi kèm với một bộ plugin phong phú và một ngôn ngữ mẫu rất biểu cảm giúp dễ dàng chuyển đổi luồng dữ liệu. Logstash là một phần của ngăn xếp ELK, nhưng bạn cũng có thể sử dụng nó một cách độc lập. Logstash có khả năng kéo từ bất kỳ nguồn dữ liệu nào bằng cách sử dụng các plugin đầu vào, áp dụng nhiều loại chuyển đổi dữ liệu khác nhau và chuyển dữ liệu đến nhiều đích bằng cách sử dụng các plugin đầu ra.
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 Logstash trên máy chủ 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.
Sau khi cài đặt Java, hãy kiểm tra phiên bản Java bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Đầu tiên, hãy cài đặt gói cần thiết bằng lệnh sau:
Tiếp theo, hãy tải xuống và thêm khóa GPG của Elasticsearch bằng lệnh sau:
Tiếp theo, hãy thêm kho lưu trữ bằng lệnh sau:
Tiếp theo, cài đặt Elasticsearch và Logstash bằng lệnh sau:
Sau khi cả hai gói được cài đặt, hãy khởi động Logstash và Elasticsearch và cho phép chúng khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Bạn cũng có thể kiểm tra trạng thái của Logstash bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Theo mặc định, Elasticsearch lắng nghe trên cổng 9200. Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ thấy kết quả đầu ra sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Tại đây, chúng ta sẽ tạo một tệp cấu hình đầu ra Logstash để gửi dữ liệu đến Elasticsearch đang chạy trên máy chủ cục bộ.
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Logstash để áp dụng các thay đổi:
Bạn có thể xác minh cấu hình Logstash bằng lệnh sau:
Nếu mọi thứ đều ổn, bạn sẽ thấy kết quả sau:
Xin chúc mừng! Bạn đã cài đặt và cấu hình Logstash thành công trên máy chủ Ubuntu 18.04.
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 Logstash trên máy chủ Ubuntu 18.04.
Điều kiện tiên quyết
- Máy chủ chạy Ubuntu 18.04.
- 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 Java
Trước khi cài đặt Java, hãy đảm bảo rằng bạn đã cài đặt Java 8 hoặc Java 11. Bạn có thể cài đặt Java 8 bằng lệnh sau:
Mã:
apt-get install openjdk-8-jdk -y
Mã:
java -version
Mã:
openjdk version "1.8.0_162"Môi trường chạy thời gian OpenJDK (bản dựng 1.8.0_162-8u162-b12-1-b12)Máy ảo máy chủ OpenJDK 64-Bit (bản dựng 25.162-b12, chế độ hỗn hợp)
Cài đặt Logstash
Trước khi cài đặt Logstash, bạn sẽ cần cài đặt Elasticsearch trên máy chủ của mình. Theo mặc định, Elasticsearch không khả dụng trong máy chủ Ubuntu 18.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ cho Elasticsearch.Đầu tiên, hãy 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://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Mã:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
Mã:
apt-get install elasticsearch logstash -y
Mã:
systemctl start logstash
systemctl enable logstash
systemctl start elasticsearch
systemctl enable elasticsearch
Mã:
systemctl status logstash
Mã:
? logstash.service - logstash Đã tải: đã tải (/etc/systemd/system/logstash.service; vô hiệu hóa; 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ứ 4, 2019-11-20 10:13:22 UTC; 5 giây trước PID chính: 3790 (java) Nhiệm vụ: 13 (giới hạn: 1110) CGroup: /system.slice/logstash.service ??3790 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly20 tháng 11 10:13:22 ubuntu systemd[1]: Đã khởi động logstash.
Mã:
netstat -ant | grep 9200
Mã:
tcp6 0 0 127.0.0.1:9200 :::* LISTENtcp6 0 0 ::1:9200 :::* LISTEN
Cấu hình Logstash
Cấu hình Logstash là một trong những phần khó khăn nhất của bất kỳ quản trị viên hệ thống nào. Cấu hình Logstash bao gồm ba phần cấu hình chính, Logstash Inputs, Logstash Filters và Logstash Outputs. Mỗi phần chịu trách nhiệm cho các chức năng khác nhau và sử dụng các plugin Logstash khác nhau.Cấu hình Logstash Input
Trước tiên, bạn sẽ cần tạo tệp cấu hình đầu vào beats-input.conf để nhận dữ liệu từ Beats trên cổng TCP 5044:
Mã:
nano /etc/logstash/conf.d/beats-input.conf
Mã:
input { beats { port => 5044 }}
Cấu hình Bộ lọc Logstash
Tiếp theo, bạn sẽ cần cấu hình một plugin bộ lọc để xử lý các sự kiện nhận được từ các nhịp. Tại đây, chúng ta sẽ cấu hình các nhịp để thu thập các sự kiện xác thực SSH từ các hệ thống Ubuntu. Để thực hiện việc này, hãy tạo một tệp cấu hình bộ lọc mới ssh-auth-filter.conf:
Mã:
nano /etc/logstash/conf.d/ssh-auth-filter.conf
Mã:
filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}\s+%{IPORHOST:dst_host}\s+%{WORD:syslog_program}\[\d+\]:\s+(?\w+\s+password)\s+for\s+%{USER:auth_user}\s+from\s+%{SYSLOGHOST:src_host}.*" } add_field => { "activity" => "SSH Logins" } add_tag => "linux_auth" }}
Cấu hình đầu ra Logstash
Tiếp theo, bạn sẽ cần cấu hình các plugin đầu ra để cho phép Logstash gửi dữ liệu sự kiện đến các đích cụ thể.Tại đây, chúng ta sẽ tạo một tệp cấu hình đầu ra Logstash để gửi dữ liệu đến Elasticsearch đang chạy trên máy chủ cục bộ.
Mã:
nano /etc/logstash/conf.d/elasticsearch-output.conf
Mã:
output { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "ssh_auth-%{+YYYY.MM}" } stdout { codec => rubydebug }}
Mã:
systemctl restart logstash
Kiểm tra Logstash
Logstash hiện đã được cài đặt và cấu hình. Đã đến lúc kiểm tra xem nó có hoạt động hay không.Bạn có thể xác minh cấu hình Logstash bằng lệnh sau:
Mã:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Mã:
Gửi nhật ký Logstash đến /var/log/logstash hiện được cấu hình qua log4j2.properties[2019-11-26T06:27:48,104][INFO ][logstash.setting.writabledirectory] Đang tạo thư mục {:setting=>"path.queue", :path=>"/var/lib/logstash/queue"}[2019-11-26T06:27:48,119][INFO ][logstash.setting.writabledirectory] Đang tạo thư mục {:setting=>"path.dead_letter_queue", :path=>"/var/lib/logstash/dead_letter_queue"}[2019-11-26T06:27:50,331][INFO ][org.reflections.Reflections] Reflections mất 47 ms để quét 1 url, tạo ra 20 khóa và 40 giá trịCấu hình OK[2019-11-26T06:27:51,899][INFO ][logstash.runner ] Đang sử dụng chế độ config.test_and_exit. Kết quả xác thực cấu hình: OK. Đang thoát Logstash