Thứ ba, 12/08/2014 | 00:00 GMT+7

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 , FluentdKibana .

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.

Kibana Chào mừng

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:

  1. out_elasticsearch: plugin này cho phép Fluentd truyền dữ liệu tới Elasticsearch.
  2. 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 makelibcurl )

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.

Kibana Chào mừng

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.

Mẫu trống Kibana

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.

Hàng Kibana

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 .

Biểu đồ 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.

Chi tiết biểu đồ Kibana

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 .


Tags:

Các tin liên quan