Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên Ubuntu 14.04
Trong hướng dẫn này, ta sẽ xem xét cài đặt Elasticsearch ELK Stack trên Ubuntu 14.04 — tức là Elasticsearch 2.2.x, Logstash 2.2.x và Kibana 4.5.x. Ta cũng sẽ chỉ cho bạn cách cấu hình nó để thu thập và trực quan hóa các log hệ thống của bạn ở một vị trí tập trung, sử dụng Filebeat 1.1.x. Logstash là một công cụ open-souce để thu thập, phân tích cú pháp và lưu trữ log để sử dụng trong tương lai. Kibana là một giao diện web được dùng để tìm kiếm và xem các bản ghi mà Logstash đã lập index . Cả hai công cụ này đều dựa trên Elasticsearch, được sử dụng để lưu trữ log .Ghi log tập trung có thể rất hữu ích khi cố gắng xác định sự cố với server hoặc ứng dụng của bạn, vì nó cho phép bạn tìm kiếm qua tất cả log của bạn ở một nơi duy nhất. Nó cũng hữu ích vì nó cho phép bạn xác định các vấn đề trải dài trên nhiều server bằng cách tương quan các log của chúng trong một khung thời gian cụ thể.
Có thể sử dụng Logstash để thu thập log của tất cả các loại, nhưng ta sẽ giới hạn phạm vi của hướng dẫn này là thu thập log hệ thống.
Mục tiêu của ta
Mục tiêu của hướng dẫn là cài đặt Logstash để thu thập các log hệ thống của nhiều server và cài đặt Kibana để trực quan hóa các log đã thu thập.
Cài đặt ngăn xếp ELK của ta có bốn thành phần chính:
- Logstash : Thành phần server của Logstash xử lý các log đến
- Elasticsearch : Lưu trữ tất cả log
- Kibana : Giao diện web để tìm kiếm và hiển thị log , sẽ được ủy quyền thông qua Nginx
- Filebeat : Được cài đặt trên server khách hàng sẽ gửi log của họ đến Logstash, Filebeat đóng role là đại lý vận chuyển log sử dụng giao thức mạng lumberjack để giao tiếp với Logstash
Ta sẽ cài đặt ba thành phần đầu tiên trên một server duy nhất, mà ta sẽ gọi là Server ELK của ta . Filebeat sẽ được cài đặt trên tất cả các server khách hàng mà ta muốn thu thập log , ta sẽ gọi chung là Server khách hàng của ta .
Yêu cầu
Để hoàn thành hướng dẫn này, bạn sẽ yêu cầu quyền truy cập root vào VPS Ubuntu 14.04. Hướng dẫn cài đặt có thể tìm thấy ở đây (bước 3 và 4): Cài đặt server ban đầu với Ubuntu 14.04 .
Nếu bạn muốn sử dụng CentOS thay thế, hãy xem hướng dẫn này: Cách cài đặt ELK trên CentOS 7 .
Số lượng CPU, RAM và bộ nhớ mà Server ELK của bạn sẽ yêu cầu phụ thuộc vào dung lượng log mà bạn định thu thập. Đối với hướng dẫn này, ta sẽ sử dụng một VPS với các thông số kỹ thuật sau cho Server ELK của ta :
- Hệ điều hành: Ubuntu 14.04
- RAM: 4GB
- CPU: 2
Ngoài Server ELK của bạn, bạn cần có một vài server khác mà bạn sẽ thu thập log từ đó.
Hãy bắt đầu cài đặt Server ELK của ta !
Cài đặt Java 8
Elasticsearch và Logstash yêu cầu Java, vì vậy ta sẽ cài đặt nó ngay bây giờ. Ta sẽ cài đặt version gần đây của Oracle Java 8 vì đó là những gì Elasticsearch đề xuất. Tuy nhiên, nó sẽ hoạt động tốt với OpenJDK, nếu bạn quyết định đi theo con đường đó.
Thêm Oracle Java PPA vào apt:
- sudo add-apt-repository -y ppa:webupd8team/java 
Cập nhật database gói apt của bạn:
- sudo apt-get update 
Cài đặt version ổn định mới nhất của Oracle Java 8 bằng lệnh này (và chấp nhận thỏa thuận cấp phép bật lên):
- sudo apt-get -y install oracle-java8-installer 
Bây giờ Java 8 đã được cài đặt, hãy cài đặt ElasticSearch.
Cài đặt Elasticsearch
Elasticsearch có thể được cài đặt với trình quản lý gói bằng cách thêm danh sách nguồn gói của Elastic.
Chạy lệnh sau để nhập khóa GPG công khai Elasticsearch thành apt:
- wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - 
Nếu  dấu nhắc  của bạn chỉ bị treo ở đó, nó có thể đang đợi password  của  user  của bạn (để cho phép sudo ). Nếu đúng như vậy, hãy nhập password  của bạn.
Tạo danh sách nguồn Elasticsearch:
- echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list 
Cập nhật database gói apt của bạn:
- sudo apt-get update 
Cài đặt Elasticsearch bằng lệnh này:
- sudo apt-get -y install elasticsearch 
Elasticsearch hiện đã được cài đặt. Hãy chỉnh sửa cấu hình:
- sudo vi /etc/elasticsearch/elasticsearch.yml 
 Bạn cần  hạn chế quyền truy cập từ bên ngoài vào version  Elasticsearch  của bạn  (cổng 9200), vì vậy người ngoài không thể đọc  dữ liệu  hoặc tắt cụm Elasticsearch của bạn thông qua API HTTP. Tìm dòng chỉ định network.host , bỏ ghi chú và thay thế giá trị của nó bằng “localhost” để nó trông giống như sau:
network.host: localhost Lưu và thoát elasticsearch.yml .
Bây giờ bắt đầu Elasticsearch:
- sudo service elasticsearch restart 
Sau đó chạy lệnh sau để khởi động Elasticsearch khi khởi động:
- sudo update-rc.d elasticsearch defaults 95 10 
Bây giờ Elasticsearch đã được cài đặt và chạy, hãy cài đặt Kibana.
Cài đặt Kibana
Kibana có thể được cài đặt với trình quản lý gói bằng cách thêm danh sách nguồn gói của Elastic.
Tạo danh sách nguồn Kibana:
- echo "deb http://packages.elastic.co/kibana/4.5/debian stable main" | sudo tee -a /etc/apt/sources.list.d/kibana-4.5.x.list 
Cập nhật database gói apt của bạn:
- sudo apt-get update 
Cài đặt Kibana bằng lệnh này:
- sudo apt-get -y install kibana 
Kibana hiện đã được cài đặt.
Mở file cấu hình Kibana để chỉnh sửa:
- sudo vi /opt/kibana/config/kibana.yml 
Trong file  cấu hình Kibana, tìm dòng chỉ định server.host và thay thế địa chỉ IP (“0.0.0.0” theo mặc định) bằng “localhost”:
server.host: "localhost" Lưu và thoát. Cài đặt này làm cho nó để Kibana sẽ chỉ có thể truy cập vào server local . Điều này là tốt vì ta sẽ sử dụng Reverse Proxy Nginx để cho phép truy cập bên ngoài.
Bây giờ hãy bật dịch vụ Kibana và khởi động nó:
- sudo update-rc.d kibana defaults 96 9 
- sudo service kibana start 
Trước khi có thể sử dụng giao diện web Kibana, ta phải cài đặt một Reverse Proxy . Hãy làm điều đó ngay bây giờ, với Nginx.
Cài đặt Nginx
 Vì  ta  đã  cấu hình  Kibana để lắng nghe trên localhost ,  ta  phải  cài đặt  Reverse Proxy  để cho phép truy cập từ bên ngoài vào nó.  Ta  sẽ sử dụng Nginx cho mục đích này.
 Lưu ý: Nếu bạn đã có version  Nginx mà bạn muốn sử dụng, hãy sử dụng version  đó thay thế. Chỉ cần đảm bảo  cấu hình  Kibana để  server  Nginx của bạn có thể truy cập được (có thể bạn muốn thay đổi giá trị host , trong /opt/kibana/config/kibana.yml , thành địa chỉ IP riêng hoặc tên  server  Kibana của bạn). Ngoài ra, bạn nên bật SSL / TLS.
Sử dụng apt để cài đặt Nginx và Apache2-utils:
- sudo apt-get install nginx apache2-utils 
Sử dụng htpasswd để tạo admin-user , được gọi là “kibanaadmin” (bạn nên sử dụng tên khác), có thể truy cập giao diện web Kibana:
- sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin 
Nhập password khi được yêu cầu . Hãy nhớ thông tin đăng nhập này, vì bạn cần nó để truy cập giao diện web Kibana.
Bây giờ, hãy mở khối server mặc định Nginx trong editor yêu thích của bạn. Ta sẽ sử dụng vi:
- sudo vi /etc/nginx/sites-available/default 
Xóa nội dung của file  và dán khối mã sau vào file . Đảm bảo cập nhật server_name để  trùng với  tên  server  của bạn:
- server { 
-     listen 80; 
-  
-     server_name example.com; 
-  
-     auth_basic "Restricted Access"; 
-     auth_basic_user_file /etc/nginx/htpasswd.users; 
-  
-     location / { 
-         proxy_pass http://localhost:5601; 
-         proxy_http_version 1.1; 
-         proxy_set_header Upgrade $http_upgrade; 
-         proxy_set_header Connection 'upgrade'; 
-         proxy_set_header Host $host; 
-         proxy_cache_bypass $http_upgrade;         
-     } 
- } 
Lưu và thoát. Điều này  cấu hình  Nginx để hướng lưu lượng truy cập HTTP của  server  của bạn đến ứng dụng Kibana, đang lắng nghe trên localhost:5601 . Ngoài ra, Nginx sẽ sử dụng file  htpasswd.users mà  ta  đã tạo trước đó và yêu cầu xác thực cơ bản.
Bây giờ hãy khởi động lại Nginx để các thay đổi của ta có hiệu lực:
- sudo service nginx restart 
Kibana hiện có thể truy cập thông qua FQDN của bạn hoặc địa chỉ IP công cộng của Server ELK của bạn, tức là http: // elk-server-public-ip /. Nếu bạn truy cập vào đó trong trình duyệt web, sau khi nhập thông tin đăng nhập “kibanaadmin”, bạn sẽ thấy trang chào mừng Kibana sẽ yêu cầu bạn cấu hình mẫu index . Hãy quay lại điều đó sau, sau khi ta cài đặt tất cả các thành phần khác.
Cài đặt Logstash
Gói Logstash có sẵn từ cùng một repository như Elasticsearch và ta đã cài đặt public key đó, vì vậy hãy tạo danh sách nguồn Logstash:
- echo 'deb http://packages.elastic.co/logstash/2.2/debian stable main' | sudo tee /etc/apt/sources.list.d/logstash-2.2.x.list 
Cập nhật database gói apt của bạn:
- sudo apt-get update 
Cài đặt Logstash bằng lệnh này:
- sudo apt-get install logstash 
Logstash đã được cài đặt nhưng nó chưa được cấu hình.
Tạo certificate SSL
Vì ta sẽ sử dụng Filebeat để gửi log từ Server Khách hàng đến Server ELK của ta , ta cần tạo certificate SSL và cặp khóa. Chứng chỉ được sử dụng bởi Filebeat để xác minh danh tính của Server ELK. Tạo các folder sẽ lưu trữ certificate và private key bằng các lệnh sau:
- sudo mkdir -p /etc/pki/tls/certs 
- sudo mkdir /etc/pki/tls/private 
Đến đây bạn có hai tùy chọn để tạo certificate SSL của bạn . Nếu bạn có cài đặt DNS sẽ cho phép các server khách hàng của bạn phân giải địa chỉ IP của Server ELK, hãy sử dụng Tùy chọn 2 . Nếu không, Tùy chọn 1 sẽ cho phép bạn sử dụng địa chỉ IP.
Tùy chọn 1: Địa chỉ IP
 Nếu bạn không có  cài đặt  DNS — điều đó sẽ cho phép các  server  của bạn, mà bạn sẽ thu thập log  từ đó, để phân giải địa chỉ IP của  Server  ELK — bạn sẽ phải thêm địa chỉ IP riêng của  Server  ELK  của bạn  vào subjectAltName (SAN) trường của certificate  SSL mà  ta  sắp tạo. Để làm như vậy, hãy mở file  cấu hình OpenSSL:
- sudo vi /etc/ssl/openssl.cnf 
Tìm phần [ v3_ca ] trong file  và thêm dòng này vào dưới phần đó (thay thế bằng địa chỉ IP riêng của  Server  ELK):
subjectAltName = IP: ELK_server_private_IP Lưu và thoát.
Bây giờ, tạo certificate SSL và private key ở các vị trí thích hợp (/ etc / pki / tls /), bằng các lệnh sau:
- cd /etc/pki/tls 
- sudo openssl req -config /etc/ssl/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt 
Tệp logstash-forwarder.crt sẽ được sao chép vào tất cả các server sẽ gửi log đến Logstash nhưng ta sẽ thực hiện điều đó sau một thời gian ngắn. Hãy hoàn thành cấu hình Logstash của ta . Nếu bạn đã chọn tùy chọn này, hãy bỏ qua tùy chọn 2 và chuyển sang Định cấu hình Logstash .
Tùy chọn 2: FQDN (DNS)
Nếu bạn đã cài đặt DNS với mạng riêng của bạn , bạn nên tạo một bản ghi A chứa địa chỉ IP riêng của Server ELK — domain này sẽ được sử dụng trong lệnh tiếp theo, để tạo certificate SSL. Ngoài ra, bạn có thể sử dụng bản ghi trỏ đến địa chỉ IP công cộng của server . Chỉ cần đảm bảo server của bạn (những server mà bạn sẽ thu thập log ) sẽ có thể phân giải domain thành Server ELK của bạn.
Bây giờ tạo certificate SSL và private key , ở các vị trí thích hợp (/ etc / pki / tls /…), bằng lệnh sau (thay thế trong FQDN của Server ELK):
- cd /etc/pki/tls; sudo openssl req -subj '/CN=ELK_server_fqdn/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt 
Tệp logstash-forwarder.crt sẽ được sao chép vào tất cả các server sẽ gửi log đến Logstash nhưng ta sẽ thực hiện điều đó sau một thời gian ngắn. Hãy hoàn thành cấu hình Logstash của ta .
Cấu hình Logstash
Các file cấu hình logstash có định dạng JSON và nằm trong /etc/logstash/conf.d. Cấu hình bao gồm ba phần: đầu vào, bộ lọc và kết quả .
 Hãy tạo một file  cấu hình có tên 02-beats-input.conf và  cài đặt  đầu vào “filebeat” của  ta :
- sudo vi /etc/logstash/conf.d/02-beats-input.conf 
Chèn cấu hình đầu vào sau:
- input { 
-   beats { 
-     port => 5044 
-     ssl => true 
-     ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" 
-     ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" 
-   } 
- } 
Lưu và thoát. Điều này chỉ định một đầu vào beats sẽ lắng nghe trên cổng tcp 5044 và nó sẽ sử dụng certificate  SSL và private key  mà  ta  đã tạo trước đó.
 Bây giờ, hãy tạo một file  cấu hình có tên 10-syslog-filter.conf , nơi  ta  sẽ thêm một bộ lọc cho các thông báo log  hệ thống:
- sudo vi /etc/logstash/conf.d/10-syslog-filter.conf 
Chèn cấu hình bộ lọc log hệ thống sau:
- 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}" ] 
-     } 
-     syslog_pri { } 
-     date { 
-       match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ] 
-     } 
-   } 
- } 
Lưu và thoát. Bộ lọc này tìm kiếm các log  được gắn nhãn là loại “nhật ký hệ thống” (bởi Filebeat) và nó sẽ cố gắng sử dụng grok để phân tích cú pháp các log  log  hệ thống đến để làm cho nó có cấu trúc và khả năng truy vấn.
 Cuối cùng,  ta  sẽ tạo một file  cấu hình có tên 30-elasticsearch-output.conf :
- sudo vi /etc/logstash/conf.d/30-elasticsearch-output.conf 
Chèn cấu hình kết quả sau:
- output { 
-   elasticsearch { 
-     hosts => ["localhost:9200"] 
-     sniffing => true 
-     manage_template => false 
-     index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" 
-     document_type => "%{[@metadata][type]}" 
-   } 
- } 
Lưu và thoát. Đầu ra này về cơ bản cấu hình Logstash để lưu trữ dữ liệu nhịp trong Elasticsearch đang chạy tại localhost:9200 , trong một index  được đặt tên theo nhịp được sử dụng (trong trường hợp của  ta  là filebeat).
Nếu bạn muốn thêm bộ lọc cho các ứng dụng khác sử dụng đầu vào Filebeat, hãy nhớ đặt tên cho các file để chúng sắp xếp giữa cấu hình đầu vào và kết quả (nghĩa là từ 02- đến 30-).
Kiểm tra cấu hình Logstash của bạn bằng lệnh này:
- sudo service logstash configtest 
Nó sẽ hiển thị Configuration OK nếu không có lỗi cú pháp. Nếu không, hãy thử và đọc kết quả lỗi để xem có gì sai với cấu hình Logstash của bạn.
Khởi động lại Logstash và kích hoạt nó, để thay đổi cấu hình của ta có hiệu lực:
- sudo service logstash restart 
- sudo update-rc.d logstash defaults 96 9 
Tiếp theo, ta sẽ tải các console Kibana mẫu.
Tải Trang tổng quan Kibana
Elastic cung cấp một số mẫu console Kibana và các mẫu index Beats có thể giúp bạn bắt đầu với Kibana. Mặc dù ta sẽ không sử dụng trang tổng quan trong hướng dẫn này, nhưng ta vẫn tải chúng để ta có thể sử dụng mẫu index Filebeat mà nó bao gồm.
Trước tiên, hãy download repository trang tổng quan mẫu vào folder chính của bạn:
- cd ~ 
- curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip 
Cài đặt gói unzip bằng lệnh này:
- sudo apt-get -y install unzip 
Tiếp theo, extract nội dung của repository :
- unzip beats-dashboards-*.zip 
Và tải các trang tổng quan, hình ảnh trực quan và các mẫu index Beats vào Elasticsearch bằng các lệnh sau:
- cd beats-dashboards-* 
- ./load.sh 
Đây là các mẫu index mà ta vừa tải:
- [packetbeat-] YYYY.MM.DD
- [topbeat-] YYYY.MM.DD
- [filebeat-] YYYY.MM.DD
- [winlogbeat-] YYYY.MM.DD
Khi ta bắt đầu sử dụng Kibana, ta sẽ chọn mẫu index Filebeat làm mặc định của ta .
Tải mẫu index Filebeat trong Elasticsearch
Vì ta đang có kế hoạch sử dụng Filebeat để gửi log đến Elasticsearch, ta nên tải mẫu index Filebeat. Mẫu index sẽ cấu hình Elasticsearch để phân tích các trường Filebeat đến theo cách thông minh.
Trước tiên, hãy download mẫu index Filebeat vào folder chính của bạn:
- cd ~ 
- curl -O https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json 
Sau đó tải mẫu bằng lệnh này:
- curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-index-template.json 
Nếu mẫu được tải đúng cách, bạn sẽ thấy một thông báo như sau:
Output:{   "acknowledged" : true } Bây giờ Server ELK của ta đã sẵn sàng nhận dữ liệu Filebeat, hãy chuyển sang cài đặt Filebeat trên mỗi server khách hàng.
Cài đặt Filebeat (Thêm server khách hàng)
Thực hiện các bước này cho từng server Ubuntu hoặc Debian mà bạn muốn gửi log đến Logstash trên Server ELK của bạn . Để biết hướng dẫn về cách cài đặt Filebeat trên các bản phân phối Linux dựa trên Red Hat (ví dụ: RHEL, CentOS, v.v.), hãy tham khảo phần Cài đặt Filebeat (Thêm Server Máy khách) của biến thể CentOS của hướng dẫn này.
Sao chép certificate SSL
Trên Server ELK của bạn, sao chép certificate SSL — được tạo trong hướng dẫn yêu cầu — vào Server của bạn (thay thế địa chỉ của server và thông tin đăng nhập của chính bạn):
- scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp 
Sau khi cung cấp thông tin đăng nhập của bạn, hãy đảm bảo bản sao certificate đã thành công. Nó được yêu cầu để giao tiếp giữa các server khách hàng và Server ELK.
Bây giờ, trên Server khách hàng của bạn, hãy sao chép certificate SSL của Server ELK vào vị trí thích hợp (/ etc / pki / tls / certs):
- sudo mkdir -p /etc/pki/tls/certs 
- sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/ 
Bây giờ ta sẽ cài đặt gói Topbeat.
Cài đặt gói Filebeat
Trên Server Khách hàng , tạo danh sách nguồn Beats:
- echo "deb https://packages.elastic.co/beats/apt stable main" |  sudo tee -a /etc/apt/sources.list.d/beats.list 
Nó cũng sử dụng cùng một khóa GPG như Elasticsearch, có thể được cài đặt bằng lệnh này:
- wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - 
Sau đó cài đặt gói Filebeat:
- sudo apt-get update 
- sudo apt-get install filebeat 
Filebeat đã được cài đặt nhưng nó chưa được cấu hình .
Cấu hình Filebeat
Bây giờ ta sẽ cấu hình Filebeat để kết nối với Logstash trên Server ELK của ta . Phần này sẽ hướng dẫn bạn cách sửa đổi file cấu hình ví dụ đi kèm với Filebeat. Khi bạn hoàn thành các bước, bạn sẽ có một file trông giống như thế này .
Trên Server Khách hàng , tạo và chỉnh sửa file cấu hình Filebeat:
- sudo vi /etc/filebeat/filebeat.yml 
Lưu ý: Tệp cấu hình của Filebeat có định dạng YAML,  nghĩa là  thụt lề rất quan trọng! Đảm bảo sử dụng cùng một số khoảng trắng được chỉ ra trong các hướng dẫn này.
 Ở gần đầu file , bạn sẽ thấy phần prospectors , đây là nơi bạn có thể xác định khách hàng tiềm năng chỉ định file  log  nào nên được chuyển và cách xử lý chúng. Mỗi người tìm kiếm được biểu thị bằng ký tự - .
  Ta  sẽ sửa đổi trình tìm kiếm hiện có để gửi syslog và auth.log tới Logstash. Dưới paths ,  comment  về file  - /var/log/*.log . Điều này sẽ ngăn Filebeat gửi mọi .log trong folder  đó tới Logstash. Sau đó, thêm các mục mới cho syslog và auth.log . Nó sẽ trông giống như thế này khi bạn hoàn thành:
...       paths:         - /var/log/auth.log         - /var/log/syslog #        - /var/log/*.log ... Sau đó, tìm dòng chỉ định document_type: , bỏ ghi chú và thay đổi giá trị của nó thành “syslog”. Nó sẽ trông như thế này sau khi sửa đổi:
...       document_type: syslog ... Điều này chỉ định rằng các log trong trình tìm kiếm này thuộc loại nhật ký hệ thống (là loại mà bộ lọc Logstash của ta đang tìm kiếm).
Nếu bạn muốn gửi các file khác đến server ELK của bạn hoặc thực hiện bất kỳ thay đổi nào đối với cách Filebeat xử lý log của bạn, vui lòng sửa đổi hoặc thêm các mục nhập trình tìm kiếm.
 Tiếp theo, bên dưới phần output , hãy tìm dòng có nội elasticsearch: cho biết phần  kết quả  Elasticsearch (mà  ta  sẽ không sử dụng). Xóa hoặc  comment  toàn bộ phần  kết quả  Elasticsearch (cho đến dòng có #logstash: .
 Tìm phần  kết quả  Logstash đã  comment , được chỉ ra bằng dòng có #logstash: và bỏ ghi chú bằng cách xóa # trước đó. Trong phần này, hãy bỏ  comment  hosts: ["localhost:5044"] . Thay đổi localhost thành địa chỉ IP riêng (hoặc tên  server , nếu bạn sử dụng tùy chọn đó) của  server  ELK của bạn:
  ### Logstash as output   logstash:     # The Logstash hosts     hosts: ["ELK_server_private_IP:5044"] Thao tác này cấu hình Filebeat để kết nối với Logstash trên  Server  ELK của bạn tại cổng 5044 (cổng mà  ta  đã chỉ định đầu vào Logstash trước đó).
 Ngay dưới mục nhập hosts và với cùng một thụt lề, hãy thêm dòng này:
    bulk_max_size: 1024 Tiếp theo, tìm phần tls và bỏ ghi chú. Sau đó, bỏ  comment  chỉ định certificate_authorities và thay đổi giá trị của nó thành ["/etc/pki/tls/certs/logstash-forwarder.crt"] .  Nó trông giống như sau :
...     tls:       # List of root certificates for HTTPS server verifications       certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"] Điều này cấu hình Filebeat để sử dụng certificate SSL mà ta đã tạo trên Server ELK.
Lưu và thoát.
Bây giờ khởi động lại Filebeat để đưa các thay đổi của ta vào vị trí:
- sudo service filebeat restart 
- sudo update-rc.d filebeat defaults 95 10 
, nếu bạn không chắc liệu cấu hình Filebeat của bạn có chính xác hay không, hãy so sánh nó với cấu hình Filebeat ví dụ này.
 Bây giờ Filebeat đang gửi syslog và auth.log đến Logstash trên  server  ELK của bạn! Lặp lại phần này cho tất cả các  server  khác mà bạn muốn thu thập log .
Kiểm tra cài đặt Filebeat
 Nếu ngăn xếp ELK của bạn được  cài đặt  đúng cách, Filebeat (trên  server  khách hàng của bạn) sẽ gửi log  của bạn đến Logstash trên  server  ELK của bạn. Logstash sẽ tải dữ liệu Filebeat vào Elasticsearch trong một index  được đánh dấu ngày tháng, filebeat-YYYY.MM.DD .
Trên Server ELK của bạn, xác minh Elasticsearch thực sự đang nhận dữ liệu bằng cách truy vấn index Filebeat với lệnh sau:
- curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty' 
Bạn sẽ thấy một loạt kết quả giống như sau:
Sample Output:... {       "_index" : "filebeat-2016.01.29",       "_type" : "log",       "_id" : "AVKO98yuaHvsHQLa53HE",       "_score" : 1.0,       "_source":{"message":"Feb  3 14:34:00 rails sshd[963]: Server listening on :: port 22.","@version":"1","@timestamp":"2016-01-29T19:59:09.145Z","beat":{"hostname":"topbeat-u-03","name":"topbeat-u-03"},"count":1,"fields":null,"input_type":"log","offset":70,"source":"/var/log/auth.log","type":"log","host":"topbeat-u-03"}     } ... Nếu kết quả của bạn hiển thị tổng số lần truy cập là 0, Elasticsearch đang không tải bất kỳ log nào trong index bạn đã tìm kiếm và bạn nên xem lại cài đặt của bạn để tìm lỗi. Nếu bạn nhận được kết quả mong đợi, hãy tiếp tục bước tiếp theo.
Kết nối với Kibana
Khi bạn hoàn tất cài đặt Filebeat trên tất cả các server mà bạn muốn thu thập log , hãy xem Kibana, giao diện web mà ta đã cài đặt trước đó.
Trong trình duyệt web, truy cập FQDN hoặc địa chỉ IP công cộng của Server ELK của bạn. Sau khi nhập thông tin đăng nhập “kibanaadmin”, bạn sẽ thấy một trang nhắc bạn cấu hình mẫu index mặc định:
Tiếp tục và chọn [filebeat] -YYY.MM.DD từ menu Mẫu index (bên trái), sau đó nhấp vào nút Dấu sao (Đặt làm index mặc định) để đặt index Filebeat làm mặc định.
Bây giờ hãy nhấp vào liên kết Khám phá trong thanh chuyển trên cùng. Theo mặc định, điều này sẽ hiển thị cho bạn tất cả dữ liệu log trong 15 phút qua. Bạn sẽ thấy một biểu đồ với các sự kiện log , với các thông báo log bên dưới:
Ngay bây giờ, sẽ không có nhiều thứ trong đó vì bạn chỉ thu thập log hệ thống từ server khách hàng của bạn . Tại đây, bạn có thể tìm kiếm và duyệt qua log của bạn . Bạn cũng có thể tùy chỉnh trang tổng quan của bạn .
Hãy thử những điều sau:
- Tìm kiếm "root" để xem liệu có ai đang cố gắng đăng nhập vào server của bạn với quyền root không
-  Tìm kiếm một tên  server  cụ thể (tìm kiếm host: " hostname ")
- Thay đổi khung thời gian bằng cách chọn một vùng trên biểu đồ hoặc từ menu ở trên
- Nhấp vào thông báo bên dưới biểu đồ để xem cách dữ liệu đang được lọc
Kibana có nhiều tính năng khác, chẳng hạn như vẽ đồ thị và lọc, vì vậy hãy thoải mái khám phá!
Kết luận
Như vậy, các log hệ thống của bạn đã được tập trung thông qua Elasticsearch và Logstash và bạn có thể hình dung chúng bằng Kibana, bạn sẽ có một khởi đầu tốt với việc tập trung tất cả các log quan trọng của bạn . Lưu ý bạn có thể gửi khá nhiều loại log hoặc dữ liệu được lập index tới Logstash, nhưng dữ liệu sẽ trở nên hữu ích hơn nếu nó được phân tích cú pháp và cấu trúc với grok.
Để cải thiện ngăn xếp ELK mới của bạn , bạn nên xem xét việc thu thập và lọc các log khác của bạn bằng Logstash và tạo trang tổng quan Kibana . Bạn cũng có thể cần thu thập các chỉ số hệ thống bằng cách sử dụng Topbeat với ngăn xếp ELK của bạn . Tất cả các chủ đề này được đề cập trong các hướng dẫn khác của loạt bài này.
Chúc may mắn!
Các tin liên quan
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên Ubuntu 14.042017-12-01
Cách cài đặt và sử dụng TensorFlow trên Ubuntu 16.04
2017-12-01
Cách cài đặt Jenkins trên Ubuntu 16.04
2017-11-29
Cách cài đặt phpIPAM trên Ubuntu 16.04
2017-11-22
Cách tạo thiết lập tính khả dụng cao với Heartbeat và IP nổi trên Ubuntu 16.04
2017-11-22
Cách tạo VPN điểm-điểm với WireGuard trên Ubuntu 16.04
2017-11-09
Cách sử dụng Logrotate và S3cmd để lưu trữ log vào bộ nhớ đối tượng trên Ubuntu 16.04
2017-11-09
Cách quản lý các tệp log bằng Logrotate trên Ubuntu 16.04
2017-11-09
Cách đánh giá trang web bằng Firefox, Siege và Sproxy trên Ubuntu 16.04
2017-11-07
Cách cài đặt Nagios 4 và theo dõi server của bạn trên Ubuntu 16.04
2017-11-06
 

