Cách cài đặt Elastic Stack (Elasticsearch, Logstash và Kibana) trên CentOS 8

theanh

Administrator
Nhân viên
Elasticsearch là một công cụ tìm kiếm nguồn mở dựa trên Lucene, được phát triển bằng Java. Nó cung cấp một công cụ tìm kiếm toàn văn phân tán và đa thuê bao với giao diện web Bảng điều khiển HTTP (Kibana). Dữ liệu được truy vấn, truy xuất và lưu trữ bằng một lược đồ tài liệu JSON. Elasticsearch là một công cụ tìm kiếm có khả năng mở rộng có thể được sử dụng để tìm kiếm mọi loại tài liệu văn bản, bao gồm cả tệp nhật ký. Elasticsearch là trái tim của 'Elastic Stack' hoặc ELK Stack.

Logstash là một công cụ nguồn mở để quản lý các sự kiện và nhật ký. Nó cung cấp đường ống thời gian thực để thu thập dữ liệu. Logstash sẽ thu thập dữ liệu nhật ký của bạn, chuyển đổi dữ liệu thành tài liệu JSON và lưu trữ chúng trong Elasticsearch.

Kibana là một công cụ trực quan hóa dữ liệu nguồn mở cho Elasticsearch. Kibana cung cấp một giao diện web bảng điều khiển đẹp mắt. Nó cho phép bạn quản lý và trực quan hóa dữ liệu từ Elasticsearch. Nó không chỉ đẹp mà còn mạnh mẽ.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn từng bước cài đặt và cấu hình 'Elastic Stack' trên máy chủ CentOS 8. Chúng tôi sẽ cài đặt và thiết lập Elasticsearch, Logstash và Kibana. Sau đó thiết lập 'filebeat' Beats trên hệ thống Ubuntu và CentOS của máy khách.

Điều kiện tiên quyết
  • CentOS 8 64 bit với 4GB RAM - elk-master
  • CentOS 8 64 bit với 1 GB RAM - client01
  • Ubuntu 18.04 64 bit với 1GB RAM - client02
Những gì chúng ta sẽ làm:
  • Thêm Elastic Repository vào CentOS 8 Server
  • Cài đặt và cấu hình Elasticsearch
  • Cài đặt và cấu hình Kibana Dashboard
  • Thiết lập Nginx làm Proxy ngược cho Kibana
  • Cài đặt và cấu hình Logstash
  • Cài đặt và cấu hình Filebeat
  • Kiểm tra

Bước 1 - Thêm Elastic Repository​

Đầu tiên, chúng ta sẽ thêm khóa Elasticsearc và kho lưu trữ vào máy chủ CentOS 8. Với kho lưu trữ elasticsearch do elastic.co cung cấp, chúng ta có thể cài đặt các sản phẩm elastic bao gồm Elasticsearch, Logstash, Kibana và Beats.

Thêm khóa elastic vào hệ thống bằng lệnh sau.
Mã:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Sau đó, hãy đến thư mục '/etc/yum.repos.d' và tạo tệp kho lưu trữ mới 'elasticsearch.repo'.
Mã:
cd /etc/yum.repos.d/
vim elasticsearch.repo
Dán kho lưu trữ elasticsearch bên dưới.
Mã:
[elasticsearch-7.x]
name=Kho lưu trữ Elasticsearch cho 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Lưu và đóng.

Bây giờ hãy kiểm tra tất cả kho lưu trữ có sẵn trên hệ thống bằng lệnh dnf bên dưới.
Mã:
dnf repolist
Và bạn sẽ nhận được kho lưu trữ elasticsearch đã được thêm vào máy chủ CentOS 8.



Kết quả là, bạn có thể cài đặt các sản phẩm Elastic như Elasticsearch, Logstash và Kibana, v.v.

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.

Cài đặt gói Elasticsearch bằng lệnh dnf bên dưới.
Mã:
sudo dnf install elasticsearch -y
Sau khi cài đặt hoàn tất, hãy đến thư mục '/etc/elasticsearch' và chỉnh sửa tệp cấu hình 'elasticsearch.yml' bằng trình soạn thảo vim.
Mã:
cd /etc/elasticsearch/
vim elasticsearch.yml
Bỏ chú thích các dòng sau và thay đổi giá trị cho từng dòng như bên dưới.
Mã:
network.host: 127.0.0.1
http.port: 9200
Lưu và đóng.

Tùy chọn:

Bạn có thể điều chỉnh elasticsearch bằng cách chỉnh sửa tệp cấu hình JVM 'jvm.options' và thiết lập kích thước heap dựa trên dung lượng bộ nhớ bạn có.

Chỉnh sửa cấu hình JVM 'jvm.options' bằng vim editor.
Mã:
vim jvm.options
Thay đổi kích thước heap min/max thông qua cấu hình Xms và Xmx như bên dưới.
Mã:
-Xms512m
-Xmx512m
Lưu và đóng.

Tiếp theo, tải lại cấu hình trình quản lý systemd và thêm dịch vụ elasticsearch vào thời gian khởi động.
Mã:
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
Sau đó, khởi động dịch vụ elasticsearch.
Mã:
sudo systemctl start elasticsearch


Kết quả là, elasticsearch đã hoạt động và chạy sau địa chỉ IP cục bộ '127.0.0.1' với cổng mặc định '9200' trên máy chủ CentOS 8.

Bạn có thể kiểm tra elasticsearch bằng lệnh curl bên dưới.
Mã:
curl -XGET 'http://127.0.0.1:9200/?pretty'
Và dưới đây là kết quả bạn sẽ nhận được.


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

Sau khi cài đặt elasticsearch, chúng ta sẽ cài đặt và cấu hình Kibana Dashboard trên máy chủ CentOS 8.

Cài đặt Kibana dashboard bằng lệnh dnf bên dưới.
Mã:
sudo dnf install kibana
Sau khi cài đặt hoàn tất, hãy vào thư mục '/etc/kibana' và chỉnh sửa tệp cấu hình 'kibana.yml'.
Mã:
cd /etc/kibana/
vim kibana.yml
Bỏ chú thích và thay đổi một số dòng cấu hình như bên dưới.
Mã:
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
Lưu và đóng.

Tiếp theo, thêm dịch vụ kibana vào hệ thống khởi động và khởi động dịch vụ kibana.
Mã:
sudo systemctl enable kibana
sudo systemctl start kibana


Dịch vụ Kibana đang hoạt động trên máy chủ CentOS 8, hãy kiểm tra bằng các lệnh sau.
Mã:
systemctl status kibana
netstat -plntu
Và bạn sẽ nhận được kết quả như bên dưới.



Kết quả là, dịch vụ Kibana đang hoạt động trên cổng TCP mặc định '5601'.

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 máy chủ web Nginx và thiết lập nó làm proxy ngược cho Bảng điều khiển Kibana.

Cài đặt Nginx và httpd-tools sử dụng lệnh dnf bên dưới.
Mã:
sudo dnf install nginx httpd-tools
Sau khi cài đặt hoàn tất, hãy vào thư mục '/etc/nginx/conf.d' và tạo tệp cấu hình mới 'kibana.conf'.
Mã:
cd /etc/nginx/conf.d/
vim kibana.conf
Dán cấu hình sau.
Mã:
server {
 listen 80;

 server_name elk.hakase-labs.io;

 auth_basic "Restricted Access";
 auth_basic_user_file /etc/nginx/.kibana-user;

 location / {
 proxy_pass http://127.0.0.1:5601;
 proxy_http_version 1.1;
 proxy_set_header Nâng cấp $http_upgrade;
 proxy_set_header Kết nối 'nâng cấp';
 proxy_set_header Máy chủ $host;
 proxy_cache_bypass $http_upgrade;
 }
}
Lưu và đóng.

Tiếp theo, chúng ta cần tạo xác thực cơ bản để bảo mật quyền truy cập Kibana. Thay đổi người dùng 'hakase' bằng người dùng của riêng bạn và chạy lệnh htpasspwd như bên dưới.
Mã:
sudo htpasswd -c /etc/nginx/.kibana-user hakase
NHẬP MẬT KHẨU CỦA BẠN
Nhập mật khẩu của bạn và kiểm tra cấu hình nginx.
Mã:
nginx -t
Đảm bảo không có lỗi.

Bây giờ hãy thêm dịch vụ nginx vào hệ thống khởi động và khởi động dịch vụ nginx.
Mã:
systemctl enable nginx
systemctl start nginx


Kết quả là quá trình cài đặt và cấu hình Nginx như một proxy ngược cho Kibana Dashboard đã hoàn tất.

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

Trong bước này, chúng ta sẽ cài đặt và cấu hình logstash log shipper. Chúng tôi sẽ cài đặt logstash, thiết lập các nhịp đầu vào, thiết lập bộ lọc syslog bằng plugin logstash có tên là 'grok', sau đó thiết lập đầu ra cho elasticsearch.

Cài đặt logstash bằng lệnh dnf bên dưới.
Mã:
sudo dnf install logstash
Sau khi cài đặt hoàn tất, hãy vào thư mục '/etc/logstash' và chỉnh sửa tệp cấu hình JVM 'jvm.options' bằng trình soạn thảo vim.
Mã:
cd /etc/logstash/
vim jvm.options
Thay đổi kích thước heap min/max thông qua cấu hình Xms và Xmx như bên dưới.
Mã:
-Xms512m
-Xmx512m
Lưu và đóng.

Tiếp theo, hãy vào thư mục '/etc/logstash/conf.d' và tạo tệp cấu hình cho đầu vào nhịp có tên là 'input-beat.conf'.
Mã:
cd /etc/logstash/conf.d/
vim input-beat.conf
Dán cấu hình sau.
Mã:
input {
 beats {
 port => 5044
 }
}
Lưu và đóng.

Bây giờ hãy tạo tệp cấu hình 'syslog-filter.conf'.
Mã:
vim syslog-filter.conf
Dán cấu hình sau.
Mã:
filter {
 if [type] == "syslog" {
 grok {
 match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
 add_field => [ "received_at", "%{@timestamp}" ]
 add_field => [ "received_from", "%{host}" ]
 }
 ngày {
 khớp => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
 }
 }
}
Lưu và đóng.

Sau đó tạo cấu hình đầu ra cho elasticsearch 'output-elasticsearch.conf'.
Mã:
vim output-elasticsearch.conf
Dán cấu hình sau.
Mã:
đầu ra {
 elasticsearch {hosts => ["127.0.0.1:9200"]
hosts => "127.0.0.1:9200"
quản lý mẫu => sai
chỉ mục => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
kiểu_tài_liệu => "%{[@metadata][type]}"
 }
}
Lưu và đóng.

Tiếp theo, thêm dịch vụ logstash vào hệ thống khởi động và khởi động dịch vụ logstash.
Mã:
systemctl enable logstash
systemctl start logstash


Dịch vụ logstash đã hoạt động, hãy kiểm tra bằng các lệnh sau.
Mã:
systemctl status logstash
netstat -plntu
Và bạn sẽ nhận được kết quả như bên dưới.



Kết quả là, trình gửi nhật ký logstash đã hoạt động trên máy chủ CentOS 8 với cổng TCP mặc định là '5044'. Quá trình cài đặt Elastic Stack cơ bản đã hoàn tất và chúng ta đã sẵn sàng để chuyển và theo dõi nhật ký của mình đến máy chủ Elastic (ELK Stack).

Bước 6 - Cài đặt Filebeat trên máy khách​

Trong bước này, chúng tôi sẽ chỉ cho bạn cách thiết lập filebeat trên hệ thống Ubuntu và CentOS. Chúng tôi sẽ cài đặt filebeat và cấu hình để chuyển nhật ký từ cả hai máy chủ đến Logstash trên máy chủ elastic.

- Cài đặt Filebeat trên CentOS 8​

Thêm khóa elasticsearch vào hệ thống CentOS 8 bằng lệnh sau.
Mã:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Bây giờ hãy đến thư mục '/etc/yum.repos.d' và tạo tệp 'elasticsearch.repo' bằng trình soạn thảo vim.
Mã:
cd /etc/yum.repos.d/
vim elasticsearch.repo
Dán cấu hình sau.
Mã:
[elasticsearch-7.x]
name=Kho lưu trữ Elasticsearch cho 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Lưu và đóng.

Bây giờ hãy cài đặt filebeat bằng lệnh dnf bên dưới.
Mã:
sudo dnf install filebeat
Đợi quá trình cài đặt filebeat hoàn tất.


- Cài đặt Filebeat trên Ubuntu 18.04​

Trước tiên, hãy cài đặt các gói apt-transport-https.
Mã:
sudo apt install apt-transport-https
Sau đó, hãy thêm khóa elasticsearch và kho lưu trữ bằng các lệnh sau.
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ữ và cài đặt filebeat vào hệ thống ubuntu bằng lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt install filebeat
Chờ quá trình cài đặt filebeat hoàn tất.


- Cấu hình Filebeat​

Cấu hình filebeat nằm trong thư mục '/etc/filebeat'. Vào thư mục filebeat và chỉnh sửa tệp cấu hình 'filebeat.yml'.
Mã:
cd /etc/filebeat/
vim filebeat.yml
Bây giờ hãy tắt đầu ra elasticsearch mặc định như bên dưới.
Mã:
#output.elasticsearch:
 # Mảng các máy chủ để kết nối tới.
 # hosts: ["127.0.0.1:9200"]
Sau đó, bật đầu ra logstash và chỉ định địa chỉ IP máy chủ logstash.
Mã:
output.logstash:
 # Máy chủ Logstash
 hosts: ["10.5.5.25:5044"]
Lưu và đóng.

Tiếp theo, chúng ta cần bật các mô-đun filebeat. Chạy lệnh filebeat bên dưới để lấy danh sách các mô-đun filebeat.
Mã:
filebeat modules list
Kích hoạt mô-đun 'system' bằng lệnh sau.
Mã:
filebeat modules enable system
Mô-đun hệ thống filebeat đã được kích hoạt bằng tệp cấu hình 'modules.d/system.yml'.

Chỉnh sửa cấu hình mô-đun hệ thống bằng trình soạn thảo vim.
Mã:
cd /etc/filebeat/
vim modules.d/system.yml
Bỏ chú thích đường dẫn của tệp syslog và tệp ủy quyền ssh.

Đối với hệ thống CentOS:
Mã:
# Syslog
 syslog:
 enabled: true
 var.paths: ["/var/log/messages"]

 # Nhật ký ủy quyền
 auth:
 enabled: true
 var.paths: ["/var/log/secure"]
Đối với hệ thống Ubuntu:
Mã:
# Syslog
 syslog:
 enabled: true
 var.paths: ["/var/log/syslog"]

 # Nhật ký ủy quyền
 auth:
 enabled: true
 var.paths: ["/var/log/auth.log"]
Lưu và đóng.

Bây giờ hãy thêm dịch vụ filebeat vào hệ thống, khởi động và bắt đầu dịch vụ.
Mã:
systemctl enable filebeat
systemctl start filebeat
Dịch vụ filebeat đã hoạt động, bạn có thể kiểm tra bằng lệnh sau.
Mã:
systemctl status filebeat
Và bạn sẽ thấy kết quả như bên dưới.

Dưới đây là kết quả từ CentOS 8 máy chủ.



Và bên dưới là từ Ubuntu Server 18.04.



Kết quả là, kết nối giữa filebeat và dịch vụ logstash trên địa chỉ IP máy chủ elastic stack '10.5.5.12' đã được thiết lập.

Bước 7 - Kiểm tra​

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

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

Bây giờ hãy đăng nhập vào Kibana Dashboard bằng tài khoản xác thực cơ bản mà bạn đã tạo.



Và bạn sẽ nhận được Kibana Dashboard như bên dưới.



Bây giờ hãy kết nối với dữ liệu chỉ mục elasticsearch được tạo tự động sau khi filebeat được kết nối với logstash. Nhấp vào liên kết 'Kết nối với chỉ mục Elasticsearch của bạn'.

Tạo mẫu chỉ mục 'filebeat-*' và nhấp vào nút 'Bước tiếp theo'.



Đối với tên bộ lọc, hãy chọn bộ lọc '@timestamp' và nhấp vào 'Tạo mẫu chỉ mục'.



Và mẫu chỉ mục 'filebeat-*' đã được tạo, hãy nhấp vào menu 'Khám phá' ở bên trái.



Và bạn sẽ nhận được dữ liệu nhật ký từ các máy khách filebeat như bên dưới.

Nhật ký cho hệ thống CentOS 8.



Nhật ký cho hệ thống Ubuntu.



Do đó, dữ liệu nhật ký được xác định trên mô-đun hệ thống filebeat đã được chuyển đến máy chủ ngăn xếp đàn hồi.

Và cài đặt và cấu hình Ngăn xếp đàn hồi trên CentOS 8 đã hoàn thành thành công.

Tham khảo​

 
Back
Bên trên