Elasticsearch, Fluentd và Kibana: Tìm kiếm và trực quan hóa log nguồn mở
Một bài báo từ Fluentd
Tổng quat
Elasticsearch, Fluentd và Kibana (EFK) cho phép bạn thu thập, lập index , tìm kiếm và trực quan hóa dữ liệu log . Đây là một giải pháp thay thế tuyệt vời cho phần mềm độc quyền Splunk, cho phép bạn bắt đầu sử dụng miễn phí nhưng yêu cầu giấy phép trả phí khi data volumes tăng lên.
Hướng dẫn này chỉ cho bạn cách xây dựng giải pháp log bằng cách sử dụng ba thành phần phần mềm open-souce : Elasticsearch , Fluentd và Kibana .
Yêu cầu
- Server với Ubuntu 14.04
- User có quyền sudo
Cài đặt và cấu hình Elasticsearch
Bắt Java
Elasticsearch yêu cầu Java, vì vậy bước đầu tiên là cài đặt Java.
sudo apt-get update sudo apt-get install openjdk-7-jre-headless --yes
Kiểm tra xem Java đã thực sự được cài đặt chưa. Chạy:
java -version
Đầu ra sẽ như sau:
java version "1.7.0_55" OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1) OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
Nhận Elasticsearch
Tiếp theo, download và cài đặt gói deb của Elasticsearch như sau.
sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb sudo dpkg -i elasticsearch-1.2.2.deb
Bảo mật Elasticsearch
Lên đến version 1.2, khả năng tạo tập lệnh động của Elasticsearch được bật theo mặc định. Vì hướng dẫn này cài đặt console Kibana để có thể truy cập từ Internet công cộng, hãy tắt tính năng tạo tập lệnh động bằng cách thêm dòng sau vào cuối /etc/elasticsearch/elasticsearch.yml
:
script.disable_dynamic: true
Bắt đầu Elasticsearch
Bắt đầu chạy Elasticsearch bằng lệnh sau.
sudo service elasticsearch start
Cài đặt và cấu hình Kibana
Nhận Kibana
Di chuyển đến folder chính của bạn:
cd ~
Ta sẽ download Kibana như sau:
curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf - sudo cp -r kibana-3.1.0 /usr/share/
Cấu hình Kibana
Vì Kibana sẽ sử dụng cổng 80 để nói chuyện với Elasticsearch thay vì cổng mặc định 9200, nên config.js
của Kibana phải được cập nhật.
Mở /usr/share/kibana-3.1.0/config.js
và tìm dòng sau:
elasticsearch: "http://"+window.location.hostname+":9200",
và thay thế nó bằng dòng sau:
elasticsearch: "http://"+window.location.hostname+":80",
Cài đặt và cấu hình Nginx ( Server proxy)
Ta sẽ sử dụng Nginx làm server proxy để cho phép truy cập vào console từ Internet Công cộng (với xác thực cơ bản).
Cài đặt Nginx như sau:
sudo apt-get install nginx --yes
Kibana cung cấp một nginx.conf mặc định tốt, ta sẽ sửa đổi một chút.
Đầu tiên, cài đặt file cấu hình như sau:
wget https://assets.digitalocean.com/articles/fluentd/nginx.conf sudo cp nginx.conf /etc/nginx/sites-available/default
Lưu ý: Tệp root là từ kho lưu trữ Kibana GitHub này .
Sau đó, chỉnh sửa /etc/nginx/sites-available/default
như sau (các thay đổi được đánh dấu màu đỏ):
# # Nginx proxy for Elasticsearch + Kibana # # In this setup, we are password protecting the saving of dashboards. You may # wish to extend the password protection to all paths. # # Even though these paths are being called as the result of an ajax request, the # browser will prompt for a username/password on the first request # # If you use this, you'll want to point config.js at http://FQDN:80/ instead of # http://FQDN:9200 # server { listen *:80 ; server_name localhost; access_log /var/log/nginx/kibana.log; location / { root /usr/share/kibana-3.1.0; index index.html index.htm; }
Cuối cùng, khởi động lại nginx như sau:
$ sudo service nginx restart
Bây giờ, bạn có thể xem console Kibana chung tại địa chỉ IP hoặc domain của server của bạn, sử dụng trình duyệt yêu thích của bạn.
Cài đặt và cấu hình Fluentd
Cuối cùng, hãy cài đặt Fluentd . Ta sẽ sử dụng td-agent, version đóng gói của Fluentd, được xây dựng và duy trì bởi Treasure Data .
Cài đặt Fluentd qua gói td-agent
Cài đặt Fluentd bằng các lệnh sau:
wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb sudo dpkg -i td-agent_2.0.4-0_amd64.deb
Cài đặt Plugin
Ta cần một vài plugin:
- out_elasticsearch: plugin này cho phép Fluentd truyền dữ liệu tới Elasticsearch.
- ra trình cải cách bản ghi : plugin này cho phép ta xử lý dữ liệu thành một định dạng hữu ích hơn.
Các lệnh sau cài đặt cả hai plugin (apt-get đầu tiên dành cho out_elasticsearch: nó yêu cầu make
và libcurl
)
sudo apt-get install make libcurl4-gnutls-dev --yes sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer
Tiếp theo, ta cấu hình Fluentd để nghe các thông báo log hệ thống và gửi chúng đến Elasticsearch. Mở /etc/td-agent/td-agent.conf
và thêm các dòng sau vào đầu file :
<source> type syslog port 5140 tag system </source> <match system.*.*> type record_reformer tag elasticsearch facility ${tag_parts[1]} severity ${tag_parts[2]} </match> <match elasticsearch> type copy <store> type stdout </store> <store> type elasticsearch logstash_format true flush_interval 5s #debug </store> </match>
Bắt đầu Fluentd
Khởi động Fluentd bằng lệnh sau:
sudo service td-agent start
Chuyển tiếp lưu lượng truy cập rsyslog sang Fluentd
Ubuntu 14.04 đi kèm với rsyslogd. Nó cần được cấu hình lại để chuyển tiếp các sự kiện log hệ thống đến cổng mà Fluentd lắng nghe (cổng 5140 trong ví dụ này).
Mở /etc/rsyslog.conf
(bạn cần sudo
) và thêm dòng sau vào đầu
*.* @127.0.0.1:5140
Sau khi lưu và thoát khỏi editor , hãy khởi động lại rsyslogd như sau:
sudo service rsyslog restart
Cài đặt Control panel Kibana
Các bảng mặc định của Kibana rất chung chung, vì vậy bạn nên tùy chỉnh chúng. Ở đây, ta hiển thị hai phương pháp.
Phương pháp 1: Sử dụng Mẫu
Group Fluentd cung cấp cấu hình Kibana thay thế hoạt động với cài đặt này tốt hơn so với cấu hình mặc định. Để sử dụng cấu hình thay thế này, hãy chạy lệnh sau:
wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json
Lưu ý: Tệp cấu hình root là từ ý chính GitHub của tác giả.
Nếu bạn làm mới trang chủ console Kibana của bạn tại URL của server , Kibana giờ sẽ được cấu hình để hiển thị biểu đồ theo mức độ nghiêm trọng và cơ sở của log hệ thống, cũng như các dòng log gần đây trong bảng.
Phương pháp 2: Cấu hình theo cách thủ công
Truy cập địa chỉ IP hoặc domain của server của bạn để xem trang tổng quan Kibana.
Có một vài mẫu dành cho người mới bắt đầu, nhưng hãy chọn mẫu trống được gọi là Trang tổng quan trống: Tôi thấy thoải mái khi tự cấu hình , hiển thị ở cuối văn bản chào mừng.
Tiếp theo, nhấp vào nút + THÊM ROW ở phía bên phải của console . Màn hình cấu hình cho một hàng mới (một hàng bao gồm một hoặc nhiều bảng) sẽ hiển thị. Nhập tiêu đề, nhấn nút Tạo hàng , tiếp theo là Lưu . Điều này tạo ra một hàng.
Khi một hàng trống được tạo, Kibana hiển thị dấu nhắc Thêm console vào hàng trống ở bên trái. Bấm vào nút này. Nó sẽ đưa bạn đến màn hình cấu hình để thêm một console mới. Chọn biểu đồ từ menu thả xuống. Biểu đồ là một biểu đồ thời gian; để biết thêm thông tin, hãy xem tài liệu của Kibana .
Có nhiều tham số để cấu hình cho một biểu đồ mới, nhưng bạn có thể chỉ cần cuộn xuống và nhấn nút Lưu . Điều này tạo ra một console mới.
Thêm thông tin
Để biết thêm thông tin về cấu hình Kibana, vui lòng xem trang tài liệu Kibana .
Các tin liên quan