Logstash - Thu thập nhật ký
Nhật ký từ các máy chủ hoặc nguồn dữ liệu khác nhau được thu thập bằng cách sử dụng người gửi hàng. Người gửi hàng là một ví dụ của Logstash được cài đặt trong máy chủ, nó truy cập vào nhật ký máy chủ và gửi đến vị trí đầu ra cụ thể.
Nó chủ yếu gửi đầu ra đến Elasticsearch để lưu trữ. Logstash lấy đầu vào từ các nguồn sau:
- STDIN
- Syslog
- Files
- TCP/UDP
- Microsoft windows Eventlog
- Websocket
- Zeromq
- Tiện ích mở rộng tùy chỉnh
Thu thập nhật ký bằng Apache Tomcat 7 Server
Trong ví dụ này, chúng tôi đang thu thập nhật ký của Máy chủ Apache Tomcat 7 được cài đặt trong cửa sổ bằng cách sử dụng plugin nhập tệp và gửi chúng đến nhật ký khác.
logstash.conf
Tại đây, Logstash được cấu hình để truy cập nhật ký truy cập của Apache Tomcat 7 được cài đặt cục bộ. Mẫu regex được sử dụng trong cài đặt đường dẫn của plugin tệp để lấy dữ liệu từ tệp nhật ký. Điều này có chứa "quyền truy cập" trong tên của nó và nó thêm một loại apache, giúp phân biệt các sự kiện apache với các sự kiện khác trong một nguồn đích tập trung. Cuối cùng, các sự kiện đầu ra sẽ được hiển thị trong output.log.
input {
file {
path => "C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/*access*"
type => "apache"
}
}
output {
file {
path => "C:/tpwork/logstash/bin/log/output.log"
}
}
Chạy Logstash
Chúng ta có thể chạy Logstash bằng cách sử dụng lệnh sau.
C:\logstash\bin> logstash –f Logstash.conf
Apache Tomcat Log
Truy cập Máy chủ Apache Tomcat và các ứng dụng web của nó (http://localhost:8080) để tạo nhật ký. Dữ liệu cập nhật trong nhật ký được Logstash đọc trong thời gian thực và được lưu trữ trong output.log như được chỉ định trong tệp cấu hình.
Apache Tomcat tạo một tệp nhật ký truy cập mới theo ngày tháng và ghi lại các sự kiện truy cập tại đó. Trong trường hợp của chúng tôi, đó là localhost_access_log.2016-12-24.txt tronglogs thư mục của Apache Tomcat.
0:0:0:0:0:0:0:1 - - [
25/Dec/2016:18:37:00 +0800] "GET / HTTP/1.1" 200 11418
0:0:0:0:0:0:0:1 - munish [
25/Dec/2016:18:37:02 +0800] "GET /manager/html HTTP/1.1" 200 17472
0:0:0:0:0:0:0:1 - - [
25/Dec/2016:18:37:08 +0800] "GET /docs/ HTTP/1.1" 200 19373
0:0:0:0:0:0:0:1 - - [
25/Dec/2016:18:37:10 +0800] "GET /docs/introduction.html HTTP/1.1" 200 15399
output.log
Bạn có thể thấy trong các sự kiện đầu ra, một trường loại được thêm vào và sự kiện hiện diện trong trường thông báo.
{
"path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
localhost_access_log.2016-12-25.txt",
"@timestamp":"2016-12-25T10:37:00.363Z","@version":"1","host":"Dell-PC",
"message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:00 +0800] \"GET /
HTTP/1.1\" 200 11418\r","type":"apache","tags":[]
}
{
"path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
"@version":"1","host":"Dell-PC",
"message":"0:0:0:0:0:0:0:1 - munish [25/Dec/2016:18:37:02 +0800] \"GET /
manager/html HTTP/1.1\" 200 17472\r","type":"apache","tags":[]
}
{
"path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
"@version":"1","host":"Dell-PC",
"message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:08 +0800] \"GET /docs/
HTTP/1.1\" 200 19373\r","type":"apache","tags":[]
}
{
"path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:20.436Z",
"@version":"1","host":"Dell-PC",
"message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:10 +0800] \"GET /docs/
introduction.html HTTP/1.1\" 200 15399\r","type":"apache","tags":[]
}
Thu thập nhật ký bằng Plugin STDIN
Trong phần này, chúng ta sẽ thảo luận về một ví dụ khác về việc thu thập nhật ký bằng cách sử dụng STDIN Plugin.
logstash.conf
Đây là một ví dụ rất đơn giản, trong đó Logstash đang đọc các sự kiện do người dùng nhập vào trong một đầu vào chuẩn. Trong trường hợp của chúng tôi, đó là dấu nhắc lệnh, lưu trữ các sự kiện trong tệp output.log.
input {
stdin{}
}
output {
file {
path => "C:/tpwork/logstash/bin/log/output.log"
}
}
Chạy Logstash
Chúng ta có thể chạy Logstash bằng cách sử dụng lệnh sau.
C:\logstash\bin> logstash –f Logstash.conf
Viết văn bản sau trong dấu nhắc lệnh -
Người dùng nhập hai dòng sau. Logstash phân tách các sự kiện bằng cài đặt dấu phân cách và giá trị của nó theo mặc định là '\ n'. Người dùng có thể thay đổi bằng cách thay đổi giá trị của dấu phân cách trong plugin tệp.
Tutorialspoint.com welcomes you
Simply easy learning
output.log
Khối mã sau đây hiển thị dữ liệu nhật ký đầu ra.
{
"@timestamp":"2016-12-25T11:41:16.518Z","@version":"1","host":"Dell-PC",
"message":"tutrialspoint.com welcomes you\r","tags":[]
}
{
"@timestamp":"2016-12-25T11:41:53.396Z","@version":"1","host":"Dell-PC",
"message":"simply easy learning\r","tags":[]
}