Hướng dẫn hoàn chỉnh về ELK Stack (P2) - Cài đặt ELK

Loạt bài viết trong hướng dẫn hoàn chỉnh về ELK Stack:

ELK Stack có thể được cài đặt bằng nhiều phương pháp khác nhau và trên nhiều hệ điều hành và môi trường khác nhau. ELK có thể được cài đặt cục bộ, trên đám mây, sử dụng Docker và các hệ thống quản lý cấu hình như Ansible, Puppet và Chef. ELK Stack có thể được cài đặt bằng cách sử dụng gói tarball hoặc .zip hoặc từ các kho lưu trữ.

Nhiều bước cài đặt tương tự nhau giữa các môi trường và vì chúng tôi không thể bao gồm tất cả các trường hợp khác nhau, chúng tôi sẽ cung cấp một ví dụ để cài đặt tất cả các thành phần của ngăn xếp - Elasticsearch, Logstash, Kibana và Beats - trên Linux. Các liên kết đến các hướng dẫn cài đặt khác có thể được tìm thấy bên dưới.

Môi trường cài đặt ELK

Để thực hiện các bước bên dưới, chúng tôi thiết lập một máy AWS Ubuntu 18.04 duy nhất trên phiên bản m4.large bằng cách sử dụng bộ nhớ cục bộ của nó. Chúng tôi bắt đầu một phiên bản EC2 trong mạng con công cộng của VPC, sau đó chúng tôi thiết lập nhóm bảo mật (tường lửa) để cho phép truy cập từ mọi nơi bằng SSH và TCP 5601 (Kibana). Cuối cùng, chúng tôi đã thêm một địa chỉ IP đàn hồi mới và liên kết nó với phiên bản đang chạy của chúng tôi để kết nối với internet.

Xin lưu ý rằng phiên bản chúng tôi cài đặt ở đây là 6.2. Các thay đổi đã được thực hiện trong các phiên bản gần đây hơn đối với mô hình cấp phép, bao gồm việc đưa các tính năng X-Pack cơ bản vào gói cài đặt mặc định.

Cài đặt Elasticsearch

Trước tiên, bạn cần thêm signing key của Elastic để có thể xác minh gói đã tải xuống (bỏ qua bước này nếu bạn đã cài đặt các gói từ Elastic):

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Đối với Debian, sau đó chúng ta cần cài đặt gói apt-transport-https:

sudo apt-get update sudo apt-get install apt-transport-https

Bước tiếp theo là thêm kho lưu trữ vào hệ thống của bạn:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Để cài đặt phiên bản Elasticsearch chỉ chứa các tính năng được cấp phép theo Apache 2.0 (hay còn gọi là OSS Elasticsearch):

echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Tất cả những gì còn lại cần làm là cập nhật kho lưu trữ của bạn và cài đặt Elasticsearch:

sudo apt-get update
sudo apt-get install elasticsearch

Các cấu hình Elasticsearch được thực hiện bằng cách sử dụng tệp cấu hình cho phép bạn định cấu hình cài đặt chung (ví dụ: tên nút), cũng như cài đặt mạng (ví dụ: máy chủ và cổng), nơi dữ liệu được lưu trữ, bộ nhớ, tệp nhật ký, v.v.

Ví dụ của chúng tôi, vì chúng tôi đang cài đặt Elasticsearch trên AWS, nên cách tốt nhất là liên kết Elasticsearch với IP riêng hoặc localhost:

sudo vim /etc/elasticsearch/elasticsearch.yml

Rồi chúng tôi chỉnh các dòng sau:

network.host: "localhost"
http.port:9200
cluster.initial_master_nodes: ["<PrivateIP"]

Để khởi động Elasticsearch, hãy sử dụng lệnh sau:

sudo service elasticsearch start

Để xác nhận rằng mọi thứ đang hoạt động như mong đợi, hãy trỏ curl hoặc trình duyệt của bạn đến địa chỉ http://localhost:9200/ và bạn sẽ thấy một thứ giống như kết quả sau:

{
  "name": "ip-172-31-10-207",
  "cluster_name": "elasticsearch",
  "cluster_uuid": "bzFHfhcoTAKCH-Niq6_GEA",
  "version": {
    "number": "7.1.1",
    "build_flavor": "default",
    "build_type": "deb",
    "build_hash": "7a013de",
    "build_date": "2019-05-23T14:04:00.380842Z",
    "build_snapshot": false,
    "lucene_version": "8.0.0",
    "minimum_wire_compatibility_version": "6.8.0",
    "minimum_index_compatibility_version": "6.0.0-beta1"
  },
  "tagline": "You Know, for Search"
}

Việc cài đặt cụm Elasticsearch yêu cầu một kiểu thiết lập khác. Đọc hướng dẫn cụm Elasticsearch của chúng tôi để biết thêm thông tin về điều đó.

Cài đặt Logstash

Logstash yêu cầu Java 8 hoặc Java 11 để chạy, vì vậy chúng tôi sẽ bắt đầu quá trình thiết lập Logstash với lệnh:

sudo apt-get install default-jre

Xác minh java đã được cài đặt:

java -version
# openjdk version "1.8.0_191"
# OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12) 
# OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Vì chúng tôi đã chỉ định kho lưu trữ trong hệ thống, tất cả những gì chúng tôi phải làm để cài đặt Logstash là chạy lệnh:

sudo apt-get install logstash

Trước khi khởi động Logstash, bạn sẽ cần phải cấu hình đường dẫn dữ liệu. Chúng tôi sẽ quay lại điều đó khi chúng tôi đã cài đặt và khởi động Kibana.

Cài đặt Kibana

Tương tự như cài đặt Logstash, chúng ta sẽ sử dụng một lệnh apt đơn giản để cài đặt Kibana như sau:

sudo apt-get install kibana

Mở tệp cấu hình Kibana tại: /etc/kibana/kibana.yml và đảm bảo rằng bạn đã chỉ định các cấu hình sau:

server.port: 5601
elasticsearch.url: "http://localhost:9200"

Các cấu hình cụ thể này cho Kibana biết Elasticsearch cần kết nối và port nào để sử dụng Kibana.

Bây giờ, hãy khởi động Kibana với lệnh sau:

sudo service kibana start

Mở Kibana trong trình duyệt của bạn bằng cách truy cập http://localhost:5601/. Bạn sẽ thấy trang chủ của Kibana như hình dưới đây.

Giao diện của Kibana

Cài đặt Beats

Các thành viên khác nhau thuộc gia đình Beats có thể được cài đặt theo cách giống hệt như cách chúng tôi cài đặt các thành phần khác.

Ví dụ, cài đặt Metricbeat sử dụng lệnh sau:

sudo apt-get install metricbeat

Để khởi động Metricbeat, hãy sử dụng lệnh sau:

sudo service metricbeat start

Metricbeat sẽ bắt đầu giám sát máy chủ của bạn và tạo chỉ mục Elasticsearch mà bạn có thể xác định trong Kibana. Tuy nhiên, trong bước tiếp theo, chúng tôi sẽ mô tả cách thiết lập đường dẫn dữ liệu bằng Logstash.

Vận chuyển một số dữ liệu

Với mục đích của hướng dẫn này, chúng tôi đã chuẩn bị một số dữ liệu mẫu chứa nhật ký truy cập Apache được làm mới hàng ngày. Bạn có thể tải xuống dữ liệu tại đây: sample-data

Tiếp theo, tạo tệp cấu hình Logstash mới tại: /etc/logstash/conf.d/apache-01.conf:

sudo vim /etc/logstash/conf.d/apache-01.conf

Nhập cấu hình Logstash sau (thay đổi đường dẫn đến tệp bạn đã tải xuống cho phù hợp):

input { 
    file { 
        path => "/home/ubuntu/apache-daily-access.log"
        start_position => "beginning"
        sincedb_path => "/dev/null" 
    } 
} 
filter { 
    grok { 
        match => { "message" => "%{COMBINEDAPACHELOG}" } 
    } 
    date { 
        match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] 
    } 
    geoip { 
        source => "clientip" 
    }
} 
output { 
    elasticsearch { 
        hosts => ["localhost:9200"] 
    }
}

Khởi động Logstash với lệnh sau:

sudo service logstash start

Nếu mọi việc suôn sẻ, một chỉ mục Logstash mới sẽ được tạo trong Elasticsearch, mẫu của chỉ mục này hiện có thể được xác định trong Kibana.

Trong Kibana, đi tới Management → Kibana Index Patterns. Kibana sẽ hiển thị chỉ mục Logstash và cùng với chỉ mục Metricbeat nếu bạn đã làm theo các bước cài đặt và chạy Metricbeat).

Cấu hình Kibana

Nhập logstash-* làm mẫu chỉ mục và trong bước tiếp theo, chọn @timestamp làm trường Bộ lọc thời gian của bạn.

Cấu hình Kibana

Nhấn Create index pattern và bạn đã sẵn sàng phân tích dữ liệu. Chuyển đến tab Discover trong Kibana để xem dữ liệu (xem dữ liệu của ngày hôm nay thay vì 15 phút trước mặc định).

Xem log trên Kibana

Xin chúc mừng! Bạn đã thiết lập đường dẫn dữ liệu ELK đầu tiên của mình bằng Elasticsearch, Logstash và Kibana.

Ở bài viết tiếp theo, bạn sẽ tìm hiểu Elasticsearch là gì, các khái niệm Elasticsearch cơ bản, truy vấn Elasticsearch, Elasticsearch REST API và các plugin Elasticsearch.

Hướng dẫn hoàn chỉnh về ELK Stack (P3) - Elasticsearch
Bạn sẽ tìm hiểu Elasticsearch là gì, các khái niệm Elasticsearch cơ bản, truy vấn Elasticsearch, Elasticsearch REST API và các plugin Elasticsearch.
ELK StackElasticsearchLogstashKibanaBeatsDevOps
Bài Viết Liên Quan:
Khắc phục sự cố 5 lỗi ELK thường gặp
Trung Nguyen 10/07/2021
Khắc phục sự cố 5 lỗi ELK thường gặp

Trong bài viết này chúng tôi đã tổng hợp 5 lỗi ELK phổ biến nhất và hướng dẫn bạn cách khắc phục chúng một cách nhanh chóng.

5 sai lầm hàng đầu với Elasticsearch và cách tránh
Trung Nguyen 09/07/2021
5 sai lầm hàng đầu với Elasticsearch và cách tránh

Trong hướng dẫn này, chúng ta hãy xem xét kỹ hơn 5 trong số những sai lầm phổ biến và cách bạn có thể tránh mắc phải chúng.

10 khái niệm Elasticsearch bạn cần biết
Trung Nguyen 04/07/2021
10 khái niệm Elasticsearch bạn cần biết

Bài viết này cung cấp cho bạn 10 khái niệm quan trọng nhất trong Elasticsearch. Nắm được những khái niệm này giúp bạn bớt vất vả hơn khi học Elasticsearch.

Truy vấn Elasticsearch - Hướng dẫn chi tiết
Trung Nguyen 04/07/2021
Truy vấn Elasticsearch - Hướng dẫn chi tiết

Trong hướng dẫn này, chúng tôi sẽ giúp bạn các cách viết truy vấn Elasticsearch đầy đủ, chi tiết nhất. Giúp bạn tự tin khi làm việc với Elasticsearch.