Cài đặt ELK 6.x logs stack để đẩy log

1
207

Môi trường thực hiện:

+ Centos 7 on GCE

+ 1 Core 4GB RAM

+ ELK 6.4.2 (vì mới có cờ rách X-pack bản này :D)

+ Cài đặt tất cả trên 1 server, không có cluster, không sử dụng Broker nào như Redis hay Kafka

Download:

+ Kibana: https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.rpm

+ Elasticsearch: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm

+ Logstash: https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.deb

  1. Cài đặt

Bước 1: cài đặt Java jdk-8u181-linux-x64.rpm (search google download về)

Bước 2: Cài đặt các gói rpm của E – L – K

Bước 3: Start các dịch vụ elasticsearch, logstash, kibana lên

Bước 4: Cài đặt Nginx để làm proxy cho Kibana:

Tạo vhost cho nginx:

Start nginx và truy cập vào IP/domain của server

2. Cấu hình bảo mật và X-pack

Mặc định trong phiên bản Elasticsearch 6 đã có sẵn X-pack không cần cài thêm như các bản trước. Tuy nhiên nó bị tắt đi, để bật thì sửa file

Thêm dòng

Restart elasticsearch

Đổi mật khẩu cho các user mặc định (Build-in users):

Sửa config Kibana để bật Secure và thêm đường dẫn Elasticsearch:

Thêm các dòng sau:

Restart Kibana

Bây giờ đăng nhập vào Kibana cần phải có user/pass. Hãy sử dụng user elastic là superuser với pass bạn đã đặt ở bước trên.

3. Đẩy thử log lên ELK

Bước 1: dưới client

Ở đây mình đẩy log của Laravel lên cho dev có thể check mà không cần đòi vào server nữa

Đẩy log theo từng domain, mỗi domain là 1 Index Pattern cho dễ theo dõi và phân quyền view cho dev

Ở server log cần cài đặt Filebeat để đẩy log lên:

Download: https://www.elastic.co/downloads/beats/filebeat

Sửa file /etc/filebeat/filebeat.yml

Với 35.229.132.206:5055 là IP và port logstash của server ELK

Tạo file cho domain cần đẩy log (chia mỗi domain một file cấu hình riêng cho dễ quản lý) trong /etc/filebeat/conf.d/domain1.yml

Restart filebeat

Bước 2: trên server ELK

Tạo 1 file config cho logstash trong /etc/logstash/conf.d/php-framework.conf

Lưu ý: php-framwork là name mình đặt cho loại log Laravel, ở dưới filebeat phải trùng với trên server để nó filter được đúng

Port 5055: trùng với port đã cấu hình ở filebeat

Đây là grok để filter log, cụ thể ở đây mình chỉ filter ra time, ENV, severity của log

Restart logstash

Bước 3: Add Index trên Kibana để view log:

Đăng nhập vào Kibana > Management > Index Patterns

Gõ domain của log vào ô trên, nếu báo Success thì ngon luôn

Ở step kế tiếp chọn @timestamp để list theo time và Create index pattern

Mục Discovery sẽ xem được log
Có thể sử dụng mục Management > Security với User, Roles để tạo user, phân quyền cho từng user nào được xem index domain nào…

1 COMMENT

LEAVE A REPLY

Please enter your comment!
Please enter your name here