Trong ví dụ này, filebeat sẽ đọc các thay đổi từ test.log, transform chúng theo rule được quy định tại filebeat.yml, gửi tới logstash. Logstash sẽ transform một lần nữa (nếu có) và gửi chúng tới elasticsearch. Cuối cùng, kibana sẽ đọc data từ elasticsearch và tạo các chart.
Filebeat là yếu tố đầu tiên ta cần quan tâm. Do nó là yếu tố đầu tiên làm việc với log file. Sử dụng các rule transform cần thiết để parse log theo nhu cầu. Trước khi chuyển log sang logstash, nên in chung chúng ra màn hình trước để quan sát các thay đổi.
logging.level:errorfilebeat.inputs:-type:logpaths:-/var/log/logify/test.logscan_frequency:5sprocessors:-dissect:tokenizer:"%{event_time}%{+event_time}%{log_level}%{component}:allowed=%{allowed}\tugi=%{user}@%{realm}(auth:%{auth})\tip=/%{source_ip}\tcmd=%{command}\tsrc=%{source_path}\tdst=%{dst}\tperm=%{owner}:%{group}:%{permission}\tproto=%{proto}\tcallerContext=%{caller_context}"field:"message"target_prefix:"data"trim_values:"all"trim_chars:"\t"ignore_failure:true-drop_fields:fields:["log.flags"]-drop_fields:fields:["message","agent","ecs","input","parse"]# This output for print on console output.console:pretty:true# Comment above and uncomment bellow to output to logstash# output.logstash:# hosts: ["logstash:5044"]
Logstash
Sau khi đã parse log thành công như ý muốn, ta chuyển nó đến logstash để transform một lần nữa (nếu có). Từ logstash, ta không chỉ có thể chuyển data tới elasticsearch mà còn nhiều ứng dụng khác như Kafka...
Tới đây, ta chỉ cần run docker compose up --build để chạy tất cả các container. Khi thành công, các bạn truy cập http://localhost:5601 để vào giao diện kibana và cấu hình các dashboard cần thiết.