Cách cài đặt Elasticsearch, Fluentd và Kibana (EFK) Logging Stack trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Giám sát và phân tích nhật ký là một phần thiết yếu của cơ sở hạ tầng máy chủ hoặc container và hữu ích khi xử lý các ứng dụng phức tạp. Một trong những giải pháp ghi nhật ký phổ biến là ngăn xếp Elasticsearch, Fluentd và Kibana (EFK). Trước khi đi sâu hơn vào hướng dẫn, chúng ta hãy tìm hiểu về các thành phần của ngăn xếp.

Elasticsearch là một công cụ tìm kiếm theo thời gian thực, phân tán và có thể mở rộng cho phép tìm kiếm và phân tích toàn văn. Nó được sử dụng để lập chỉ mục và tìm kiếm qua lượng dữ liệu lớn. Nó thường được triển khai cùng với Kibana, một bảng điều khiển trực quan hóa dữ liệu mạnh mẽ cho Elasticsearch. Kibana cho phép bạn khám phá dữ liệu nhật ký Elasticsearch và xây dựng các bảng điều khiển và truy vấn để hiểu sâu hơn về ứng dụng của bạn. Fluentd thu thập, chuyển đổi và chuyển dữ liệu nhật ký đến phần phụ trợ Elasticsearch.

Trong hướng dẫn này, chúng ta sẽ cài đặt ngăn xếp EFK bằng Docker trên máy Ubuntu 22.04 và gửi nhật ký vùng chứa đến Kibana sau khi lọc và chuyển đổi chúng bằng Fluentd.

Điều kiện tiên quyết​


  • Máy chủ chạy Ubuntu 22.04 với tối thiểu 6GB RAM.

  • Người dùng không phải root có quyền sudo.

  • Tường lửa đơn giản (UFW) được bật và đang chạy.

  • Tên miền đủ điều kiện (FQDN) trỏ đến máy chủ như sau: kibana.example.com.

  • Mọi thứ đã được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade

Bước 1 - Cấu hình Tường lửa​

Trước khi cài đặt bất kỳ gói nào, bước đầu tiên là cấu hình tường lửa để cho phép kết nối HTTP và HTTPS.

Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy nội dung tương tự như sau.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Cho phép HTTP và HTTPs ports.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Kiểm tra lại trạng thái để xác nhận.
Mã:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)

Bước 2 - Cài đặt Docker và Docker Compose​

Thêm khóa GPG chính thức của Docker.
Mã:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Chạy lệnh sau để thêm Docker kho lưu trữ.
Mã:
$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Cập nhật hệ thống để bao gồm kho lưu trữ của Docker.
Mã:
$ sudo apt update
Cài đặt Docker và Docker compose plugin.
Mã:
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Hướng dẫn này sẽ sử dụng plugin Docker Compose v2 thay vì nhị phân cũ. Do đó, lệnh chạy nó đã thay đổi từ docker-compose thành docker composevà điều này được phản ánh ở đây.

Docker chạy với các đặc quyền nâng cao nên bạn sẽ cần sử dụng sudo thường xuyên để chạy lệnh. Tùy chọn tốt hơn là thêm tài khoản người dùng Linux của bạn vào nhóm người dùng docker.
Mã:
$ sudo usermod -aG docker ${USER}
Biến ${USER} sẽ chọn tài khoản hệ thống hiện đang đăng nhập. Nếu bạn không đăng nhập bằng người dùng mà bạn muốn cấp quyền, hãy thay thế ${USER} bằng tên người dùng.

Để đăng ký thành viên nhóm mới, hãy đăng xuất khỏi máy chủ và đăng nhập lại hoặc sử dụng lệnh sau. Bạn sẽ được nhắc nhập mật khẩu của người dùng.
Mã:
$ su - ${USER}

Bước 3 - Tạo tệp Docker Compose​

Đầu tiên, tạo thư mục cho dự án EFK.
Mã:
$ mkdir ~/efk
Chuyển sang thư mục.
Mã:
$ cd ~/efk
Tạo và mở tệp docker-compose.yml cho chỉnh sửa.
Mã:
$ nano docker-compose.yml
Dán mã sau vào đó.
Mã:
services: # Deploy using the custom image automatically be created during the build process. fluentd: build: ./fluentd volumes: - ./fluentd/conf:/fluentd/etc links: # Sends incoming logs to the elasticsearch container. - elasticsearch depends_on: - elasticsearch ports: # Exposes the port 24224 on both TCP and UDP protocol for log aggregation - 24224:24224 - 24224:24224/udp elasticsearch: image: elasticsearch:8.7.1 expose: - 9200 environment: - discovery.type=single-node # Runs as a single-node - xpack.security.enabled=false volumes: # Stores elasticsearch data locally on the esdata Docker volume - esdata:/usr/share/elasticsearch/data kibana: image: kibana:8.7.1 links: # Links kibana service to the elasticsearch container - elasticsearch depends_on: - elasticsearch ports: - 5601:5601 environment: # Defined host configuration - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
# Define the Docker volume named esdata for the Elasticsearch container.
volumes: esdata:
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Chúng tôi đã định cấu hình để khởi động ba dịch vụ, mỗi dịch vụ cho một dịch vụ, Fluentd, Elasticsearch và Kibana.

Đối với Fluentd, chúng tôi sẽ xây dựng một container thay vì một hình ảnh có sẵn. Các tệp xây dựng cho Fluentd sẽ được thiết lập trong bước tiếp theo. Chúng tôi đã gắn một thư mục cho các tệp dựng của nó và một ổ đĩa cho các tệp cấu hình và cổng 24224 được hiển thị trên cả giao thức TCP và UDP để tổng hợp nhật ký.

Dịch vụ tiếp theo là Elasticsearch và chúng tôi đang sử dụng phiên bản mới nhất có tại thời điểm viết hướng dẫn này. Chúng tôi đã hiển thị nó qua cổng 9200 và thiết lập một vài biến môi trường để chúng tôi có thể chạy nó như một cụm một nút và đã tắt các tính năng bảo mật. Điều này thường không được khuyến khích nhưng việc bật bảo mật nằm ngoài phạm vi của hướng dẫn này. Chúng tôi cũng đã gắn một ổ đĩa cục bộ cho dữ liệu Elasticsearch.

Cuối cùng, chúng tôi cấu hình Kibana và hiển thị nó qua cổng 5601 sẽ được sử dụng để truy cập bảng điều khiển. Chúng tôi cũng thiết lập một biến để cấu hình máy chủ Elasticsearch để nó truy cập.

Bước 4 - Thiết lập Tệp dựng Fluentd​

Tạo Fluentd và thư mục cấu hình.
Mã:
$ mkdir fluentd/conf -p
Chạy tree lệnh để xác minh cấu trúc thư mục.
Mã:
$ tree
Nó sẽ trông như sau.


vuCTKyV.png



Chuyển sang Fluentd thư mục.
Mã:
$ cd fluentd
Tạo và mở Dockerfile cho chỉnh sửa.
Mã:
$ nano Dockerfile
Dán mã sau vào đó. Mã này sẽ kéo hình ảnh Fluentd Debian Docker và cài đặt plugin Fluentd cho Elasticsearch.
Mã:
# fluentd/Dockerfile
FROM fluent/fluentd:v1.16-debian-1
USER root
RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-document", "--version", "5.3.0"]
USER fluent
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Chuyển sang thư mục cấu hình.
Mã:
$ cd conf
Tạo và mở tệp fluentd.conf để chỉnh sửa.
Mã:
$ nano fluentd.conf
Dán mã sau vào nó.
Mã:
# bind fluentd on IP 0.0.0.0
# port 24224
 @type forward port 24224 bind 0.0.0.0

# sendlog to the elasticsearch
# the host must match to the elasticsearch
# container service
 @type copy  @type elasticsearch_dynamic hosts elasticsearch:9200 logstash_format true logstash_prefix fluentd logstash_dateformat %Y%m%d include_tag_key true tag_key @log_name include_timestamp true flush_interval 30s   @type stdout
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Chỉ thị source ở trên sử dụng plugin forward biến Fluentd thành điểm cuối TCP để chấp nhận các gói TCP.

Chỉ thị match tìm kiếm các sự kiện có thẻ khớp, trong trường hợp này có nghĩa là nó khớp với tất cả các sự kiện. Chúng tôi sẽ sử dụng plugin elasticsearch_dynamic để lưu trữ, cho phép chỉ định các giá trị cấu hình một cách động. Trường hosts chỉ định tên máy chủ cho ứng dụng Elasticsearch, đây là tên dịch vụ trong tệp Docker compose. logstash_format được đặt thành true, nghĩa là Fluentd sử dụng định dạng tên thông thường logstash-%Y.%m.%dlogstash-%Y.%m.%d. Tên tiền tố để ghi sự kiện được đặt thành fluend. include_tag_key được đặt thành true để thêm thẻ Fluentd vào định dạng JSON. tag_key là tên trường để trích xuất cho thẻ. Đặt biến include_timestamp thành true sẽ thêm trường dấu thời gian vào nhật ký. flush_interval chỉ định khoảng thời gian giữa các lần xóa dữ liệu. Chúng tôi cũng sử dụng plugin stdout để in sự kiện/nhật ký ra đầu ra chuẩn.

Bước 5 - Chạy Docker Container​

Chuyển trở lại thư mục EFK.
Mã:
$ cd ~/efk
Bắt đầu container bằng lệnh sau.
Mã:
$ docker compose up -d
Kiểm tra trạng thái của các container đang chạy.
Mã:
$ docker ps
b3780c311154 efk-fluentd "tini -- /bin/entryp…" 9 seconds ago Up 8 seconds 5140/tcp, 0.0.0.0:24224->24224/tcp, 0.0.0.0:24224->24224/udp, :::24224->24224/tcp, :::24224->24224/udp efk-fluentd-1
5a48f0a9ade1 kibana:8.7.1 "/bin/tini -- /usr/l…" 9 seconds ago Up 7 seconds 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp efk-kibana-1
dab3a0ab0312 elasticsearch:8.7.1 "/bin/tini -- /usr/l…" 9 seconds ago Up 8 seconds 9200/tcp, 9300/tcp efk-elasticsearch-1
Bạn cũng có thể sử dụng lệnh sau để nó.
Mã:
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
efk-elasticsearch-1 elasticsearch:8.7.1 "/bin/tini -- /usr/l…" elasticsearch 37 seconds ago Up 36 seconds 9200/tcp, 9300/tcp
efk-fluentd-1 efk-fluentd "tini -- /bin/entryp…" fluentd 37 seconds ago Up 36 seconds 5140/tcp, 0.0.0.0:24224->24224/tcp, 0.0.0.0:24224->24224/udp, :::24224->24224/tcp, :::24224->24224/udp
efk-kibana-1 kibana:8.7.1 "/bin/tini -- /usr/l…" kibana 37 seconds ago Up 36 seconds 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp
Chạy các lệnh sau để kiểm tra nhật ký của quy trình xây dựng EFK.
Mã:
$ docker logs efk-fluentd-1
$ docker logs efk-kibana-1
$ docker logs efk-elasticsearch-1
Kiểm tra vùng chứa Elasticsearch. Nó sẽ in ra các thiết lập chi tiết của container.
Mã:
$ docker inspect efk-elasticsearch-1
Bạn có thể thấy địa chỉ IP được cung cấp cho container.

Như bạn thấy, container có 172.23.0.2 làm địa chỉ IP. Chạy lệnh sau để xác minh xem Elasticsearch có hoạt động chính xác không.
Mã:
$ curl 172.23.0.2:9200
{ "name" : "dab3a0ab0312", "cluster_name" : "docker-cluster", "cluster_uuid" : "gldMFBtQSxS5sL93rBAdzA", "version" : { "number" : "8.7.1", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "f229ed3f893a515d590d0f39b05f68913e2d9b53", "build_date" : "2023-04-27T04:33:42.127815583Z", "build_snapshot" : false, "lucene_version" : "9.5.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search"
}

Bước 6 - Cấu hình Kibana​

Bây giờ ngăn xếp EFK đã được triển khai, đã đến lúc cấu hình Kibana. Mở URL http://:5601 trong trình duyệt.


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


Nhấp vào nút Khám phá của riêng tôi để tiếp tục đến bảng điều khiển Kibana.


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


Nhấp vào liên kết Quản lý ngăn xếp để thiết lập chế độ xem dữ liệu Kibana. Chọn tùy chọn Kibana >> Data Views từ thanh bên trái để mở trang chế độ xem dữ liệu.


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


Nhấp vào nút Create data view để tiếp tục.


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


Nhập tên của chế độ xem dữ liệu và mẫu chỉ mục là fluentd-*. Đảm bảo trường Dấu thời gian được đặt thành @timestamp. Trường nguồn sẽ được tự động cập nhật. Nhấp vào nút Lưu chế độ xem dữ liệu vào Kibana để hoàn tất việc tạo chế độ xem dữ liệu.

Tiếp theo, nhấp vào menu trên cùng (dấu ba chấm) và nhấp vào tùy chọn Khám phá để hiển thị nhật ký theo dõi.


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


Bạn sẽ nhận được trang sau xác nhận rằng thiết lập của bạn đang hoạt động hoàn hảo. Tất cả các bản ghi đều được lấy từ Elasticsearch và được chuyển đi bằng tổng hợp bản ghi Fluentd.


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

Bước 7 - Cài đặt Nginx​

Ubuntu 22.04 đi kèm với phiên bản Nginx cũ hơn. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.

Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Cài đặt Nginx.
Mã:
$ sudo apt install nginx
Xác minh cài đặt.
Mã:
$ nginx -v
nginx version: nginx/1.24.0
Khởi động máy chủ Nginx.
Mã:
$ sudo systemctl start nginx

Bước 8 - Cài đặt SSL​

Bước đầu tiên là cài đặt Chứng chỉ SSL Let's Encrypt. Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng tôi sẽ sử dụng phiên bản Snapd.

Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn đã được cập nhật.
Mã:
$ sudo snap install core && sudo snap refresh core
Cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Tạo chứng chỉ SSL cho tên miền kibana.example.com.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d kibana.example.com
Lệnh trên sẽ tải xuống chứng chỉ vào Thư mục /etc/letsencrypt/live/kibana.example.com trên máy chủ của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Mã:
$ sudo systemctl list-timers
Bạn sẽ tìm thấy snap.certbot.renew.service là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
------------------------------------------------------------------------------------------------------------------------------------
Mon 2023-05-06 13:37:57 UTC 3h 45min left Mon 2023-05-01 07:20:42 UTC 2h 31min ago ua-timer.timer ua-timer.service
Mon 2023-05-06 14:39:29 UTC 4h 47min left Sat 2023-02-04 16:04:18 UTC 2 months ago motd-news.timer motd-news.service
Mon 2023-05-06 15:53:00 UTC 6h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Mã:
$ sudo certbot renew --dry-run
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Bước 9 - Cấu hình Nginx​

Tạo và mở tệp cấu hình Nginx cho Kibana.
Mã:
$ sudo nano /etc/nginx/conf.d/kibana.conf
Dán mã sau vào đó. Thay thế địa chỉ IP bằng địa chỉ IP riêng của máy chủ Elasticsearch của bạn.
Mã:
server { listen 80; listen [::]:80; server_name kibana.example.com; return 301 https://$host$request_uri;
}
server { server_name kibana.example.com; charset utf-8; listen 443 ssl http2; listen [::]:443 ssl http2; access_log /var/log/nginx/kibana.access.log; error_log /var/log/nginx/kibana.error.log; ssl_certificate /etc/letsencrypt/live/kibana.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/kibana.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/kibana.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;	resolver 8.8.8.8; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_pass http://localhost:5601; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cấu hình.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại dịch vụ Nginx.
Mã:
$ sudo systemctl restart nginx
Cần thực hiện thêm một bước nữa. Mở tệp Docker compose để chỉnh sửa.
Mã:
$ nano ~/docker-compose.yml
Dán dòng SERVER_PUBLICBASEURL=https://kibana.example.com vào phần môi trường trong dịch vụ Kibana như sau.
Mã:
environment: # Defined host configuration - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 - SERVER_PUBLICBASEURL=https://kibana.example.com
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Dừng và xóa các thùng chứa.
Mã:
$ docker compose down --remove-orphans
Khởi động lại các thùng chứa với các tệp đã cập nhật cấu hình.
Mã:
$ docker compose up -d
Bảng điều khiển Kibana của bạn có thể truy cập được thông qua URL https://kibana.example.com từ bất kỳ đâu bạn muốn.

Bước 10 - Chạy một container Docker với Fluentd Log Driver​

Bây giờ, chúng ta sẽ chạy một container Docker với Ổ đĩa nhật ký Fluentd, tự động gửi nhật ký đến ngăn xếp. Chúng tôi sẽ kiểm tra bằng cách sử dụng vùng chứa Nginx.

Kéo hình ảnh Nginx từ sổ đăng ký Docker Hub. Chúng tôi đang sử dụng phiên bản alpine vì đây là phiên bản nhỏ nhất của hình ảnh.
Mã:
$ docker pull nginx:alpine
Chạy lệnh sau để tạo và khởi động vùng chứa Nginx. Chúng tôi đã đặt trình điều khiển nhật ký thành Fluentd và cổng là 8080 vì cổng mặc định 80 đã được máy chủ Nginx sử dụng ở chế độ proxy.
Mã:
$ docker run --name nginx-fluentd-test -d --log-driver=fluentd -p 8080:80 nginx:alpine
Kiểm tra trạng thái container.
Mã:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
038c43e4e1a3 nginx:alpine "/docker-entrypoint.…" 12 seconds ago Up 11 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx-fluentd-test
a94ca706bd0c efk-fluentd "tini -- /bin/entryp…" 8 hours ago Up 8 hours 5140/tcp, 0.0.0.0:24224->24224/tcp, 0.0.0.0:24224->24224/udp, :::24224->24224/tcp, :::24224->24224/udp efk-fluentd-1
0cf04a446425 kibana:8.7.1 "/bin/tini -- /usr/l…" 8 hours ago Up 8 hours 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp efk-kibana-1
7c7ad8f9b123 elasticsearch:8.7.1 "/bin/tini -- /usr/l…" 8 hours ago Up 8 hours 9200/tcp, 9300/tcp efk-elasticsearch-1
Chạy lệnh sau để truy cập container Nginx và tạo quyền truy cập nhật ký.
Mã:
$ curl localhost:8080



Welcome to nginx!

html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }



[HEADING=1]Welcome to nginx![/HEADING]

If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.


For online documentation and support please refer to
[URL=http://nginx.org/]nginx.org[/URL].

Commercial support is available at
[URL=http://nginx.com/]nginx.com[/URL].


[I]Thank you for using nginx.[/I]
Ngoài ra, bạn có thể mở URL http://:8080 trong trình duyệt của bạn và bạn sẽ nhận được trang sau.


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


Mở bảng điều khiển Kibana và nhấp vào liên kết Khám phá trên menu thanh bên trái. Nhấp vào dấu + ở menu trên cùng để mở cửa sổ bật lên Thêm bộ lọc.


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


Chọn trường container_name từ danh sách thả xuống, is làm toán tử và điền tên vùng chứa (nginx-fluentd-test) làm giá trị trường.


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


Nhấp vào nút Thêm bộ lọc để trực quan hóa dữ liệu từ vùng chứa Nginx.


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

Kết luận​

Đây là kết thúc hướng dẫn của chúng tôi về cách cài đặt Elasticsearch, Fluentd và Kibana (EFK) ghi nhật ký trên máy Ubuntu 22.04. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên