Slide 1

Slide 1 text

ELASTIC STACK IN OPERATION By Thanh Nguyen

Slide 2

Slide 2 text

Nội dung 1. Tìm hiểu về elastic stack 2. Một số đầu việc cụ thể 3. Best practice trong vận hành

Slide 3

Slide 3 text

1. Tìm hiểu về elastic stack - Beats: dùng để lấy dữ liệu file log hoặc metrics, sau đó đẩy về logstash hoặc elasticsearch ● Filebeat: lấy dữ liệu từ file log ● Metricbeat: lấy dữ liệu cpu, memory, filesystem trên máy host

Slide 4

Slide 4 text

1. Tìm hiểu về elastic stack - Logstash: xử lý dữ liệu và định nghĩa index data lên elasticsearch ● input module: định nghĩa dữ liệu đầu vào ● filter: lọc data, cũng như transform data ● output: đẩy data đến một repository khác, thông thường là elasticsearch

Slide 5

Slide 5 text

1. Tìm hiểu về elastic stack - Elasticsearch: lưu trữ dữ liệu, index data ● Nơi lấy dữ liệu, đáp ứng nhu cầu của những ứng dụng khác ● Hỗ trợ kibana visualize data

Slide 6

Slide 6 text

1. Tìm hiểu elastic stack - Kibana: khám phá, visualize, tạo dashboard đối với dữ liệu ● Index data, transform data hỗ trợ cho những chức năng liên quan như visualize, tìm insight ● Hỗ trợ cấu hình elasticsearch ● Elastalert plugin cho cảnh báo

Slide 7

Slide 7 text

2. Một số đầu việc cụ thể 1. Cấu hình filebeat và metricbeat 2. Cấu hình logstash 3. Một số thứ cần làm trong kibana 4. Tạo cảnh báo trên kibana 5. Ảo hóa với vmware ESXi

Slide 8

Slide 8 text

2. 1.1Cấu hình metricbeat B1: download file metricbeat B2: cài đặt trên hệ thống B3: cấu hình ● Dùng metricbeat modules để biết số module nào đã enable và disable ● Dùng lệnh: [metricbeat test config] hoặc [metricbeat test output]

Slide 9

Slide 9 text

2.1.1 Cấu hình metricbeat - Cấu hình file ở /etc/metricbeat/metricbeat.yaml Output.logstash: hosts: ["localhost:5044"] hoặc Output.elasticsearch: hosts:["localhost:9200"]

Slide 10

Slide 10 text

2. 2.2Cấu hình filebeat B1: download file fiebeat B2: cài đặt trên hệ thống B3: cấu hình ● Xác định file logs ● Dùng lệnh: [filebeat test config] hoặc [filebeat test output] ● $ filebeat -c /etc/filebeat/filebeat.yml -e

Slide 11

Slide 11 text

2.1.2 Cấu hình filebeat - Cấu hình file ở /etc/filebeat/filebeat.yml

Slide 12

Slide 12 text

2.1.2 Cấu hình filebeat - Cấu hình file ở /etc/filebeat/filebeat.yaml Output.logstash: hosts: ["localhost:5044"] hoặc Output.elasticsearch: hosts:["localhost:9200"]

Slide 13

Slide 13 text

2. 2 Cấu hình logstash B1: download file logstash B2: cài đặt trên hệ thống B3: cấu hình gồm 3 phần trong thư mục /etc/logstash/conf.d/ ● Input module ● Filter module ● Output module

Slide 14

Slide 14 text

2. 2 Cấu hình logstash 1. Input module - Thường thì metricbeat hoặc filebeat bắn vào logstash qua cổng 5044

Slide 15

Slide 15 text

2. 2 Cấu hình logstash 2. Filter module

Slide 16

Slide 16 text

2. 2 Cấu hình logstash 2. Filter module: chú ý cần thử mỗi một mutate cho mỗi vai trò

Slide 17

Slide 17 text

2. 2 Cấu hình logstash 2. Filter module

Slide 18

Slide 18 text

Continuous if [source] =~ /all.log/ { split { field => "[data]"} split {field => "[data][Event]" } split { field => "[checkEvent][_source][Event]"} }

Slide 19

Slide 19 text

Continuous mutate { Add_field => { “new_field” => 1 } } Mutate { Convert => { “new_field” => “integer” } }

Slide 20

Slide 20 text

2. 2Cấu hình logstash 3. Output module

Slide 21

Slide 21 text

Một số command trong logstash $ logstash -f logstash.conf --config.reload.automatic --config.reload.interval 3

Slide 22

Slide 22 text

Một số chú ý - Từ version 6 trở về trước: + [source] - Từ version 7 trở đi: + [_source]

Slide 23

Slide 23 text

Một số chú ý - Gọi trường bên trong json object source hoặc _source { ... _source { "position": "/var/log/demo/stations.log" } ... } logstash: => if [position] == "/var/log/demo/stations.log" { ... }

Slide 24

Slide 24 text

3. Một số thứ cần làm trong kibana - Tạo index data cho dữ liệu: - Transform data - Thêm một field - Explore data để tìm insight data, bước chuẩn bị cho visualize data - Visualize data dựa trên các đặc tính data để trực quan hóa những gì ta cần biết với dữ liệu - Tạo dashboard đẹp với cấu trúc layout hợp lý, nhằm giúp cho người xem dễ hiểu - Note: mỗi khi bắn logs từ nguồn mới cần refresh index trước search

Slide 25

Slide 25 text

input script { "script"; { "lang": "painless", "source": "_value*16.2" } }

Slide 26

Slide 26 text

4. Tạo cảnh báo với elastalert B1: cài kibana-plugin elastalert-kibana-plugin B2: cài đặt server elastalert B3: cấu hình cảnh báo

Slide 27

Slide 27 text

Continuous Cấu hình elasticsearch (tập khảo sát)

Slide 28

Slide 28 text

Continuous Khai báo những thuộc tính thông dụng trong elastalert như: kiểu event, tần số xuất hiện, thời gian, index nào khả dụng

Slide 29

Slide 29 text

Continuous Một số thuộc tính lọc, cũng như detect event, khoảng thời gian alert lại

Slide 30

Slide 30 text

Continuous Cấu hình alert sẽ đến đâu (ở đây là telegram) với thông điệp gì

Slide 31

Slide 31 text

Continuous

Slide 32

Slide 32 text

Continuous Các thuộc tính search, filter tương tự như elasticsearch nhưng cách khai báo theo chuẩn yaml

Slide 33

Slide 33 text

Continuous

Slide 34

Slide 34 text

5. Ảo hóa với vmware ESXi https://masteringvmware.com/how-to-install-esxi-6-7-step-by-step/

Slide 35

Slide 35 text

6. Một số lệnh thông dụng thường dùng trong linux $ ping 8.8.8.8 $ netstat -lnp | grep 9200 $ netstat -antup $ curl -v --noproxy “*” http://192.168.10.5:9200