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
Thêm khóa elastic vào hệ thống bằng lệnh sau.
Sau đó, hãy đến thư mục '/etc/yum.repos.d' và tạo tệp kho lưu trữ mới 'elasticsearch.repo'.
Dán kho lưu trữ elasticsearch bên dưới.
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.
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.
Cài đặt gói Elasticsearch bằng lệnh dnf bên dưới.
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.
Bỏ chú thích các dòng sau và thay đổi giá trị cho từng dòng như bên dưới.
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.
Thay đổi kích thước heap min/max thông qua cấu hình Xms và Xmx như bên dưới.
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.
Sau đó, khởi động dịch vụ 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.
Và dưới đây là kết quả bạn sẽ nhận được.
Cài đặt Kibana dashboard bằng lệnh dnf bên dưới.
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'.
Bỏ chú thích và thay đổi một số dòng cấu hình như bên dưới.
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.
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.
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'.
Cài đặt Nginx và httpd-tools sử dụng lệnh dnf bên dưới.
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'.
Dán cấu hình sau.
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.
Nhập mật khẩu của bạn và kiểm tra cấu hình nginx.
Đả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.
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.
Cài đặt logstash bằng lệnh dnf bên dưới.
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.
Thay đổi kích thước heap min/max thông qua cấu hình Xms và Xmx như bên dưới.
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'.
Dán cấu hình sau.
Lưu và đóng.
Bây giờ hãy tạo tệp cấu hình 'syslog-filter.conf'.
Dán cấu hình sau.
Lưu và đóng.
Sau đó tạo cấu hình đầu ra cho elasticsearch 'output-elasticsearch.conf'.
Dán cấu hình sau.
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.
Dịch vụ logstash đã hoạt động, hãy kiểm tra bằng các lệnh sau.
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â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.
Dán cấu hình sau.
Lưu và đóng.
Bây giờ hãy cài đặt filebeat bằng lệnh dnf bên dưới.
Đợi quá trình cài đặt filebeat hoàn tất.
Sau đó, hãy thêm khóa elasticsearch và kho lưu trữ bằng các lệnh sau.
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.
Chờ quá trình cài đặt filebeat hoàn tất.
Bây giờ hãy tắt đầu ra elasticsearch mặc định như bên dưới.
Sau đó, bật đầu ra logstash và chỉ định địa chỉ IP máy chủ logstash.
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.
Kích hoạt mô-đun 'system' bằng lệnh sau.
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.
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:
Đối với hệ thống Ubuntu:
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ụ.
Dịch vụ filebeat đã hoạt động, bạn có thể kiểm tra bằng lệnh sau.
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.
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.
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
- 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
Mã:
cd /etc/yum.repos.d/
vim elasticsearch.repo
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
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
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
Mã:
cd /etc/elasticsearch/
vim elasticsearch.yml
Mã:
network.host: 127.0.0.1
http.port: 9200
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
Mã:
-Xms512m
-Xmx512m
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
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'
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
Mã:
cd /etc/kibana/
vim kibana.yml
Mã:
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
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
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
Mã:
cd /etc/nginx/conf.d/
vim kibana.conf
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;
}
}
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
Mã:
nginx -t
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
Mã:
cd /etc/logstash/
vim jvm.options
Mã:
-Xms512m
-Xmx512m
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
Mã:
input {
beats {
port => 5044
}
}
Bây giờ hãy tạo tệp cấu hình 'syslog-filter.conf'.
Mã:
vim syslog-filter.conf
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" ]
}
}
}
Sau đó tạo cấu hình đầu ra cho elasticsearch 'output-elasticsearch.conf'.
Mã:
vim output-elasticsearch.conf
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]}"
}
}
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
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
Mã:
cd /etc/yum.repos.d/
vim elasticsearch.repo
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
Bây giờ hãy cài đặt filebeat bằng lệnh dnf bên dưới.
Mã:
sudo dnf install filebeat
- 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
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
Mã:
sudo apt update
sudo apt install filebeat
- 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
Mã:
#output.elasticsearch:
# Mảng các máy chủ để kết nối tới.
# hosts: ["127.0.0.1:9200"]
Mã:
output.logstash:
# Máy chủ Logstash
hosts: ["10.5.5.25:5044"]
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
Mã:
filebeat modules enable system
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
Đố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"]
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"]
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
Mã:
systemctl status filebeat
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.