Cách cài đặt Elastic Stack trên Ubuntu 20.04 LTS

theanh

Administrator
Nhân viên
Elastic Stack (trước đây là ELK Stack) là một nhóm phần mềm nguồn mở do Elastic phát triển để thu thập dữ liệu từ nhiều nguồn khác nhau. Nó cho phép bạn thu thập, lưu trữ, xử lý, phân tích và trực quan hóa dữ liệu từ nhiều nguồn khác nhau ở bất kỳ định dạng nào trên nền tảng Elastic Stack trung tâm.

Elastic Stack bao gồm một số gói phần mềm: "Elasticsearch" để lưu trữ dữ liệu của bạn, "Kibana" là bảng điều khiển để truy cập và trực quan hóa dữ liệu của bạn, đường ống thu thập dữ liệu động "Logstash" với các plugin có thể mở rộng để xử lý bất kỳ dữ liệu nào và "Beats" là nền tảng vận chuyển dữ liệu nhẹ gửi dữ liệu từ các máy biên.

Elastic Stack có thể được triển khai trên Promises trên máy chủ của bạn hoặc bạn có thể mua SaaS (Phần mềm dưới dạng dịch vụ) chính thức của Elastic Cloud.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Elastic Stack trên máy chủ Ubuntu 20.04. Chúng tôi sẽ cài đặt Elasticsearch và Kibana trên cùng một máy chủ, sau đó cài đặt và cấu hình "Filebeat" trên máy chủ còn lại để gửi nhật ký trực tiếp đến máy chủ Elasticsearch.

Yêu cầu​

Đối với hướng dẫn này, chúng tôi sẽ sử dụng hai máy chủ chạy Ubuntu 20.04. Phần mềm Elastic Stack sẽ được cài đặt trên máy chủ có RAM 4 GB và chúng tôi sẽ sử dụng một máy chủ khác có RAM 1 GB làm máy khách cho Filebeat.

Chúng ta sẽ làm gì?
  • Thêm kho lưu trữ Elastic Stack
  • Cài đặt và định cấu hình Elasticsearch
  • Cài đặt và định cấu hình Kibana
  • Thiết lập Nginx làm Proxy ngược cho Kibana
  • Cài đặt và định cấu hình Filebeat
  • Thiết lập vai trò mới cho người dùng Kibana
  • Tạo mẫu chỉ mục mới Filebeat

Bước 1 - Thêm kho lưu trữ Elastic Stack​

Đầu tiên, chúng tôi sẽ thêm khóa GPG và kho lưu trữ của phần mềm Elastic stack vào cả hai máy chủ Ubuntu.

Trước khi thực hiện bất kỳ bước nào khác, hãy cài đặt 'apt-transport-https' để bảo mật cài đặt phần mềm của bạn thông qua kết nối bảo mật HTTPS.
Mã:
sudo apt install apt-transport-https
Tiếp theo, thêm khóa GPG và kho lưu trữ của ngăn xếp Elastic bằng cách sử dụng lệnh sau lệnh.
Mã:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Bây giờ hãy cập nhật tất cả các kho lưu trữ có sẵn trên hệ thống Ubuntu.
Mã:
sudo apt update
Và bạn đã sẵn sàng cài đặt tất cả các phần mềm Elastic trên cả hai máy chủ.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E

Bước 2 - Cài đặt và cấu hình Elasticsearch​

Trong bước này, chúng ta sẽ cài đặt và cấu hình Elasticsearch trên máy chủ một nút 'ELK20' với địa chỉ IP nội bộ '172.16.0.3'.

Trước khi cài đặt Elasticsearch, hãy chỉnh sửa tệp '/etc/hosts' bằng vim biên tập viên.
Mã:
vim /etc/hosts
Bây giờ hãy nhập tên máy chủ của bạn với địa chỉ IP nội bộ như bên dưới.
Mã:
172.16.0.3 ELK20
Lưu và đóng.

Tiếp theo, cài đặt gói Elasticsearch bằng lệnh apt bên dưới.
Mã:
sudo apt install elasticsearch
Sau khi hoàn tất cài đặt, hãy vào thư mục '/etc/elasticsearch' và chỉnh sửa tệp cấu hình 'elasticsearch.yml'.
Mã:
cd /etc/elasticsearch/
vim elasticsearch.yml
Bỏ chú thích 'node.name' và nhập máy chủ của bạn hostname.
Mã:
node.name: ELK20
Trên dòng 'network.host', nhập địa chỉ IP máy chủ mà dịch vụ elasticsearch sẽ chạy và khuyến nghị chỉ sử dụng địa chỉ IP nội bộ duy nhất.
Mã:
network.host: 172.16.0.3
Bỏ chú thích dòng 'http.port' và giữ nguyên mặc định, dịch vụ elasticsearch sẽ chạy trên cổng mặc định '9200'.
Mã:
http.port: 9200
Bỏ chú thích dòng 'cluster.initial_master_nodes' và nhập tên máy chủ của bạn.
Mã:
cluster.initial_master_nodes: ["ELK20"]
Và cuối cùng, hãy bật bảo mật Elasticsearch bằng cách thêm cấu hình sau vào cuối dòng.
Mã:
xpack.security.enabled: true
Lưu và đóng.

Tiếp theo, tải lại trình quản lý dịch vụ systemd, sau đó khởi động dịch vụ elasticsearch và thêm vào hệ thống khởi động.
Mã:
systemctl daemon-reload

systemctl start elasticsearch
systemctl enable elasticsearch
Dịch vụ Elasticsearch đang hoạt động trên Ubuntu 20.04 Server.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22188%22%3E%3C/svg%3E


Tiếp theo, chúng ta sẽ tạo mật khẩu cho người dùng tích hợp trên Elasticsearch.

Vào thư mục '/usr/share/elasticsearch' và chạy lệnh tiện ích elasticsearch 'elasticsearch-setup-passwords' như bên dưới.
Mã:
cd /usr/share/elasticsearch/
bin/elasticsearch-setup-passwords auto -u "http://172.16.0.3:9200"
Nhập 'y' để xác nhận và tạo mật khẩu.
Mã:
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N] y
Dưới đây là kết quả bạn sẽ lấy.
Mã:
Changed password for user apm_system
PASSWORD apm_system = DP5RpFfbCyL6UpIFO8Q3

Changed password for user kibana_system
PASSWORD kibana_system = U6gDLoJCqqChqcbD1IYV

Changed password for user kibana
PASSWORD kibana = U6gDLoJCqqChqcbD1IYV

Changed password for user logstash_system
PASSWORD logstash_system = KrHaGvHGfkAz12dcSeWo

Changed password for user beats_system
PASSWORD beats_system = VnUUOtShQoFAGEZ62G7m

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = xgaLXw6jp3Ses6CZ2hEB

Changed password for user elastic
PASSWORD elastic = elu2ZlMm4mOkM7fgCeUM
Như có thể thấy, mật khẩu cho một số người dùng tích hợp trên elasticsearch đã được tạo.

Hình ảnh

Để kiểm tra cài đặt Elasticsearch của chúng tôi, hãy chạy lệnh curl với người dùng mặc định 'elastic' như bên dưới.
Mã:
curl -X GET -u elastic "http://172.16.0.3:9200/?pretty"
Nhập mật khẩu cho Người dùng 'elastic' và bên dưới là kết quả bạn sẽ nhận được.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22427%22%3E%3C/svg%3E


Kết quả là máy chủ Elasticsearch đã hoạt động và xác thực được bật.

Bước 3 - Cài đặt và cấu hình Kibana​

Trong bước này, chúng ta sẽ cài đặt và cấu hình Kibana trên cùng một máy chủ với Elasticsearch. Chúng tôi sẽ kết nối Kibana với máy chủ Elasticsearch với người dùng mặc định 'kibana_system' và mật khẩu được tạo ở trên cùng.

Cài đặt Kibana bằng lệnh apt bên dưới.
Mã:
sudo apt install kibana
Sau khi hoàn tất cài đặt, hãy vào thư mục '/etc/kibana' và chỉnh sửa cấu hình 'kibana.yml' bằng vim biên tập viên.
Mã:
cd /etc/kibana/
vim kibana.yml
Bỏ chú thích các dòng sau và thay đổi giá trị theo ý bạn. Nên chạy Kibana trên mạng cục bộ vì chúng ta sẽ sử dụng Nginx làm proxy ngược cho Kibana.
Mã:
server.port: 5601
server.host: "172.16.0.3"
server.name: "ELK20"
Sau đó, thay đổi 'elasticsearch.url' bằng địa chỉ IP elasticsearch của bạn.
Mã:
elasticsearch.url: "http://172.16.0.3:9200"
Bỏ chú thích cho "elasticsearch.username" sau và dòng 'elasticsearch.password' và thay đổi thông tin chi tiết với người dùng và mật khẩu bằng thông tin của riêng bạn.
Mã:
elasticsearch.username: "kibana_system"
elasticsearch.password: "N88VBkkelfSV3mBfO6Vh"
Lưu và đóng.

Tiếp theo, tải lại trình quản lý systemd bằng lệnh sau.
Mã:
systemctl daemon-reload
Sau đó, khởi động dịch vụ Kibana và thêm dịch vụ này vào hệ thống khởi động.
Mã:
systemctl start kibana
systemctl enable kibana
Và dịch vụ Kibana đã hoạt động trên hệ thống Ubuntu 20.04.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22216%22%3E%3C/svg%3E


Tiếp theo, chúng ta sẽ tạo một người dùng mới sẽ được sử dụng để đăng nhập vào bảng điều khiển Kibana.

Tạo một người dùng mới có tên 'hakase' và mật khẩu 'hakasepasskibana' với vai trò 'kibana_admin' như bên dưới.
Mã:
curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'
{
 "password" : "hakasepasskibana",
 "roles" : [ "kibana_admin" ]
}
'
Nhập mật khẩu cho người dùng 'elastic' và bạn sẽ nhận được kết quả như bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22175%22%3E%3C/svg%3E


Kết quả là, người dùng mới 'hakase' đã được tạo và sẽ có thể đăng nhập vào bảng điều khiển Kibana.

Bước 4 - Thiết lập Nginx làm Proxy ngược cho Kibana​

Trong bước này, chúng ta sẽ cài đặt và cấu hình Nginx làm proxy ngược cho Kibana.

Cài đặt các gói Nginx bằng lệnh apt bên dưới.
Mã:
sudo apt install nginx -y
Sau khi hoàn tất quá trình cài đặt, hãy vào thư mục '/etc/nginx/sites-available/' và tạo một tệp máy chủ ảo mới 'kibana' bằng trình soạn thảo vim.
Mã:
cd /etc/nginx/sites-available/
vim kibana
Thay đổi tên miền và địa chỉ IP 'proxy_pass' bằng tên miền của riêng bạn, sau đó dán vào đó.
Mã:
server {
 listen 80;

 server_name elk.hakase-labs.io;

 location / {
 proxy_pass http://172.16.0.3:5601;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection 'upgrade';
 proxy_set_header Host $host;
 proxy_cache_bypass $http_upgrade;
 }
}
Lưu và đóng.

Tiếp theo, kích hoạt máy chủ ảo Nginx cho Kibana và xác minh cấu hình Nginx.
Mã:
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t
Đảm bảo không có lỗi, sau đó khởi động lại dịch vụ Nginx.
Mã:
systemctl restart nginx
Kết quả là quá trình cài đặt và cấu hình Nginx làm Proxy ngược cho Kibana đã hoàn tất. Và bảng điều khiển Kibana hiện có thể truy cập thông qua tên miền 'elk.hakase-labs.io'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22217%22%3E%3C/svg%3E


Mở trình duyệt web của bạn và nhập tên miền cài đặt Kibana của bạn vào thanh địa chỉ.

http://elk.hakase-labs.io/

Và bạn sẽ nhận được trang đăng nhập Kibana như bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22274%22%3E%3C/svg%3E


Nhập tên người dùng 'hakase' với mật khẩu 'hakasepass' và nhấp vào nút 'Đăng nhập'.

Sau khi đăng nhập, bạn sẽ được yêu cầu nhập dữ liệu mẫu hoặc khám phá dữ liệu của mình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22336%22%3E%3C/svg%3E


Nhấp vào nút 'Khám phá dữ liệu của riêng tôi'.

Bây giờ bạn sẽ nhận được Bảng điều khiển Kibana như bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22386%22%3E%3C/svg%3E


Kết quả là, Cài đặt Kibana và Nginx đã hoàn tất.

Bước 4 - Cài đặt và cấu hình Filebeat​

Trong bước này, chúng ta sẽ cài đặt "Filebeat" trên máy khách với tên máy chủ "client01" và địa chỉ IP "xxx.xxx.xxx.xxx". Filebeat sẽ gửi nhật ký trực tiếp đến máy chủ Elasticsearch.

Trước khi cài đặt "Filebeat", hãy đảm bảo rằng kho lưu trữ Elastic Stack đã được thêm vào hệ thống của bạn.

Bây giờ hãy cài đặt gói filebeat bằng lệnh apt bên dưới.
Mã:
sudo apt install filebeat
Sau khi hoàn tất quá trình cài đặt, hãy vào thư mục '/etc/filebeat' và chỉnh sửa cấu hình 'filebeat.yml' bằng vim biên tập viên.
Mã:
cd /etc/filebeat/
vim filebeat.yml
Trên đầu cấu hình 'filebeat.inputs', hãy thay đổi 'enabled: false' thành 'enabled: true' như bên dưới.
Mã:
filebeat.inputs:
- type: log
 enabled: true
 paths:
 - /var/log/*.log
Tiếp theo, chuyển đến cấu hình Kibana và thay đổi máy chủ bằng địa chỉ IP và cổng Kibana, thay đổi tên người dùng bằng người dùng mặc định 'kibana' và mật khẩu được tạo trên top.
Mã:
setup.kibana:
 host: "172.16.0.3:5601"
 username: "kibana" 
 password: "U6gDLoJCqqChqcbD1IYV"
Sau đó, di chuyển đến cấu hình 'output.elasticsearch' và thay đổi chi tiết theo ý bạn.
Mã:
output.elasticsearch:
 hosts: ["172.16.0.3:9200"]
 username: "elastic"
 password: "elu2ZlMm4mOkM7fgCeUM"
Lưu và đóng.

Bây giờ hãy tải lại trình quản lý systemd, khởi động dịch vụ filebeat và thêm nó vào hệ thống khởi động.
Mã:
systemctl daemon-reload

systemctl start filebeat
systemctl enable filebeat
Dịch vụ filebeat đang hoạt động trên máy "client01".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22207%22%3E%3C/svg%3E


Tiếp theo, chúng ta cần tải mẫu chỉ mục filebeat lên máy chủ Elasticsearch bằng cách sử dụng lệnh sau lệnh.
Mã:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["http://172.16.0.3:9200"]'
Dưới đây là kết quả bạn sẽ nhận được.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22105%22%3E%3C/svg%3E


Kết quả là, mẫu chỉ mục filebeat được tải lên máy chủ Elasticsearch và sẽ có sẵn trên Bảng điều khiển Kibana dưới dạng mẫu chỉ mục 'filebeat-*'.

Bước 5 - Thiết lập vai trò mới cho người dùng Kibana​

Trong bước này, chúng ta sẽ tạo một vai trò elasticsearch mới cho phép người dùng 'hakase' của chúng ta truy cập và quản lý tất cả các chỉ mục trên máy chủ Elasticsearch thông qua API Elasticsearch.

Tạo một vai trò mới có tên 'events_index' cho phép người dùng chỉ quản lý các chỉ mục trên máy chủ Elasticsearch bằng lệnh sau.
Mã:
curl -XPOST -u elastic 'http://172.16.0.3:9200/_security/role/events_index' -H "Content-Type: application/json" -d '{
 "indices" : [
 {
 "names" : [ "*" ],
 "privileges" : [ "all" ]
 }
 ]
}'

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22190%22%3E%3C/svg%3E


Sau đó, hãy kiểm tra vai trò 'events_index' bằng lệnh bên dưới.
Mã:
curl -X GET -u elastic "http://172.16.0.3:9200/_security/role/events_index?pretty"
Dưới đây là kết quả bạn sẽ nhận được.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22446%22%3E%3C/svg%3E


Như có thể thấy, vai trò 'events_index' sẽ chỉ có quyền quản lý các chỉ mục.

Tiếp theo, thêm vai trò 'events_index' vào người dùng 'hakase' của chúng ta bằng lệnh bên dưới.
Mã:
curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'
{
 "password" : "hakasepasskibana",
 "roles" : [ "kibana_admin", "events_index" ]
}
'
Nhập mật khẩu cho Người dùng 'elastic' và vai trò 'events_index' đã được chỉ định cho người dùng 'hakase'.

Kiểm tra tất cả các vai trò có sẵn của người dùng 'hakase' bằng lệnh sau.
Mã:
curl -X GET -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty"
Dưới đây là kết quả bạn sẽ nhận được.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22360%22%3E%3C/svg%3E


Kết quả là chúng tôi đã tạo một vai trò mới trong việc quản lý các chỉ mục trên máy chủ Elasticsearch.

Bước 6 - Tạo mẫu chỉ mục mới Filebeat​

Sau khi tạo một vai trò mới có tên là 'events_index', chúng tôi sẽ tạo một mẫu chỉ mục mới cho Filebeat thông qua người dùng 'hakase'.

- Tạo mẫu chỉ mục​

Trên Bảng điều khiển Kibana, hãy nhấp vào tùy chọn menu bên trái, di chuyển đến phần "Quản lý" và nhấp vào "Quản lý ngăn xếp".

Trên phần "Kibana", nhấp vào "Mẫu chỉ mục".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22272%22%3E%3C/svg%3E


Nhấp vào nút "Tạo mẫu chỉ mục" để tạo mẫu chỉ mục mới.

Trên trường "mẫu chỉ mục", nhập "filebeat-*" và nhấp vào nút "Bước tiếp theo".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E


Trên "Tên trường bộ lọc thời gian", chọn "@timestamp" và nhấp vào nút "Tạo mẫu chỉ mục".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22276%22%3E%3C/svg%3E


Và Mẫu chỉ mục "filebeat-*" đã được tạo và được chọn làm mẫu chỉ mục mặc định (nếu bạn chưa có mẫu chỉ mục nào trước đó).


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22347%22%3E%3C/svg%3E

- Hiển thị dữ liệu trên Kibana​

Để hiển thị dữ liệu được filebeat thu thập, hãy nhấp vào menu tùy chọn ở trên cùng bên trái, sau đó nhấp vào "Khám phá".

Và bạn sẽ nhận được tất cả dữ liệu được filebeat thu thập từ máy "client01".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22387%22%3E%3C/svg%3E


Để hiển thị dữ liệu dựa trên bộ lọc của bạn, bạn có thể sử dụng "KQL" hoặc Ngôn ngữ truy vấn Kibana.

Nhập truy vấn sau vào trường "KQL".
Mã:
host.name : client01 and log.file.path: "/var/log/auth.log"
Và bạn sẽ nhận được tất cả thông tin về xác thực SSH trên Máy "client01".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22388%22%3E%3C/svg%3E


Kết quả là quá trình cài đặt Elastic Stack với tính năng bảo mật được bật trên Ubuntu 20.04 đã hoàn tất thành công.
 
Back
Bên trên