Cài đặt và cấu hình Elasticsearch (Elk stack)

Bước 1: import elasticsearch public key GPG bằng command sau:

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

import key elasticsearch

Bước 2: mở file /etc/yum.repos.d/elasticsearch.repo để thêm repo elastic bằng command sau:

vi /etc/yum.repos.d/elasticsearch.repo

và thêm vào file đoạn sau:

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Bước 3: cài đặt elasticsearch bằng command sau:

yum install elasticsearch -y

Bước 4: sửa file cấu hình elasticsearch như sau:

vi /etc/elasticsearch/elasticsearch.yml

Bước 5: Sau khi hoàn thiện chỉnh sửa cấu hình elasticsearch, tiến hành tải lại systemd và start elasticsearch:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

chờ khoảng vài giây để elasticsearch khởi động, dùng lệnh netstat -plntu để kiểm tra xem cổng 9200 đã lên hay chưa

Bước 6: kiểm tra xem elasticsearch đã thực sự chạy hay chưa bằng command:

curl -XGET 'localhost:9200/?pretty'

cài đặt elasticsearch thành công, tiếp theo chúng ta cài đặt logstash

Cài đặt và cấu hình Kibana ( Elk stack )

Bước 1: mở file /etc/yum.repos.d/kibana.repo để thêm repo kibana bằng command sau:

vi /etc/yum.repos.d/kibana.repo

và thêm đoạn sau vào file:

[kibana-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Bước 2: cài đặt kibana bằng command sau:

yum install kibana -y

Bước 3: sau khi cài đặt thành công, mở file config của kibana để thay đổi cấu hình mặc định:

vi /etc/kibana/kibana.yml

sửa cấu hình kibana dựa theo cấu hình elasticsearch mà bạn đã cài đặt trước đó

+ server.port: 5601 mặc định kibana chạy ở cổng này

+ server.host: địa chỉ ip của host

+ elasticsearch.host: địa chỉ chạy của elasticsearch đã cài đặt trước đó

Bước 4: tiến hành chạy kibana qua hai command:

sudo systemctl enable kibana
sudo systemctl start kibana

Kiểm tra cổng 5601 đã lắng nghe hay chưa bằng command netstat -plntu như ở phần trên

truy cập vào địa chỉ đã cấu hình ip_address:5601 để vào giao diện của kibana

phiên bản kibana mình cài là 6.x nên giao diện sẽ trông hơi khác so với bản 7.x, không quá quan trọng lắm. Tiếp theo chúng ta đi cài đặt Logstash

Cài đặt và cấu hình Logstash ( Elk stack )

Bước 1: mở file /etc/yum.repos.d/logstash.repo để thêm repo logstash bằng command sau:

vi /etc/yum.repos.d/logstash.repo

Thêm vào file đoạn sau:

[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Bước 2: tiến hành cài đặt logstash

yum install logstash -y

sau khi cài đặt thành công, tiến hành cấu hình logstash để nhận dữ liệu và đẩy dữ liệu vào elasticsearch

Các file ấu hình của logstash nằm ở thư mục /etc/logstash/conf.d, vậy nên ta sẽ thêm các file cấu hình ở đây

  • tạo một file cấu hình tên 02-beats-input.conf chứa cấu hình đầu vào của các nguồn log đẩy vào (filebeat) có nội dung như sau:
  • tạo một file cấu hình có tên 30-elasticsearch-output.conf, cấu hình này biểu thị elasticsearch lưu trữ dữ liệu mà filebeat đẩy tới logstash, hiểu nôm na là filebeat ship log tới logstash, logstash xử lý dữ liệu rồi đẩy tới elasticsearch lưu trữ, và cái cấu hình này là cấu hình đầu ra của logstash.

file cấu hình đầu ra có nội dung như sau:

phần host: host elasticsearch đang chạy

cấu trúc của 1 pipeline gồm ba phần: input, filter, output. Ở đây chúng ta cần tạo thêm một file cấu hình để filter log (thực ra có thể bỏ qua, thì log sẽ đẩy thẳng đến elasticsearch, nhưng làm như thế sẽ sai bản chất của logstash, nên mình sẽ tạo thêm file cấu hình filter log)

  • tạo một file cấu hình có tên 10-java-filter.conf chứa nội dung sau:

chỗ này nhìn qua thì các bạn sẽ hiểu nôm na thế này, ví dụ ở phía filebeat mình khai báo ứng dụng đẩy log đến logstash có field “app_services” là READNEWS_LOG, thì ở phía logstash sẽ kiểm tra theo field “app_services”, nếu dữ liệu đẩy đến logstash thỏa mãn điều kiện thì áp dụng lọc theo một pattern được khai báo ở đường dẫn /usr/share/logstash/patterns/java

pattern phía trên có dạng như sau, mình sử dụng format TOMCATLOG:

Bước 3: sau khi cài đặt và cấu hình xong thì tiến hành start logstash lên

systemctl daemon-reload
systemctl start logstash
systemctl enable logstash

kiểm tra logstash đã được khởi động lên hay chưa bằng command:

service logstash status

Cài đặt và cấu hình Filebeat

mục tiêu của bước này để cài đặt, và cấu hình để có thể dùng filebeat đẩy các file log tới được logstash, filebeat đóng vai trò như shipper, vận chuyển hàng là các log file tới khách hàng là logstash.

Bước 1: mở file /etc/yum.repos.d/elastic.repo để thêm repo bằng command sau:

vi /etc/yum.repos.d/elastic.repo

Thêm vào file đoạn sau:

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Bước 2: tiến hành cài đặt filebeat

yum install filebeat-6.2.4 -y

Bước 3: cấu hình filebeat, mở file filebeat.yml và thêm nội dung sau:

ở đây mình cấu hình filebeat đọc log từ thư mục /home/readnews/.... và giá trị của fields “app_services” là READNEWS_LOG để mapping với bên logstash.

Note: chỗ đoạn đường dẫn log thì các bạn tự xây dựng, ở đây mình không đề cập.

Bước 3: sau khi cấu hình, tiến hành bật filebeat

systemctl start filebeat
systemctl enable filebeat

kiểm tra xem filebeat đã được bật lên hay chưa

service filebeat status

Vậy là chúng ta đã hoàn thành xong việc cài đặt, cấu hình Elasticsearch-Kibana-Logstash-Filebeat, cùng nhau đi khám phá tí nào :))

trên đây là toàn bộ log mà chúng ta thu thập và phân tích được từ thư mục đã cấu hình ở filebeat, bạn có thể gửi bất kỳ loại log hoặc dữ liệu nào đến Logstash bằng Beasts, nhưng tùy vào nhu cầu và mục đích thì các bạn có thể phân tích cú pháp bằng bộ lọc Logstash để những dữ liệu thu thập được trở nên có ý nghĩa hơn.

Một số bài viết liên quan: