Cách thu thập số liệu cơ sở hạ tầng với Metricbeat trên Ubuntu 18.04
Metricbeat , là một trong số các Beats giúp gửi nhiều loại dữ liệu server khác nhau đến server Elastic Stack , là một trình gửi dữ liệu nhẹ, sau khi được cài đặt trên server của bạn, định kỳ thu thập số liệu thống kê CPU và bộ nhớ trên toàn hệ thống và mỗi quá trình và gửi dữ liệu trực tiếp đến việc triển khai Elasticsearch của bạn. Người gửi hàng này thay thế Topbeat trước đó trong version 5.0 của Elastic Stack.Nhịp đập khác hiện có sẵn từ Elastic là:
- Filebeat : thu thập và gửi các file log .
- Packetbeat : thu thập và phân tích dữ liệu mạng.
- Winlogbeat : thu thập log sự kiện của Windows.
- Auditbeat : thu thập dữ liệu khung kiểm toán Linux và giám sát tính toàn vẹn của file .
- Nhịp tim : theo dõi các dịch vụ để biết tính khả dụng của chúng bằng cách thăm dò tích cực.
Trong hướng dẫn này, bạn sẽ sử dụng Metricbeat để chuyển tiếp các số liệu hệ thống local như mức sử dụng CPU / bộ nhớ / đĩa và sử dụng mạng từ server Ubuntu 18.04 sang server khác cùng loại có cài đặt Elastic Stack. Với người giao hàng này, bạn sẽ thu thập các số liệu cơ bản mà bạn cần để có được trạng thái hiện tại của server của bạn.
Yêu cầu
Để làm theo hướng dẫn này, bạn cần :
-  Hai  server  Ubuntu 18.04 được  cài đặt   theo  Hướng dẫn  cài đặt   server  ban đầu cho Ubuntu 18.04 , bao gồm  user  không phải root có  quyền  sudo và firewall  được  cấu hình  bằng ufw. Trên một server , bạn sẽ download Elastic Stack; hướng dẫn này sẽ gọi đây là “ Server ngăn xếp elastic ”. Server Elastic Stack sẽ giám sát server thứ hai của bạn; server thứ hai này sẽ được gọi là “ server Ubuntu thứ hai.”
- Đã cài đặt Elastic Stack trên server Elastic Stack theo hướng dẫn Cách cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên Ubuntu 18.04 .
 Lưu ý : Khi cài đặt Ngăn xếp  elastic , bạn phải sử dụng cùng một version  trên toàn bộ ngăn xếp. Trong hướng dẫn này, bạn sẽ sử dụng các version  mới nhất của toàn bộ ngăn xếp, tại thời điểm viết bài này, Elasticsearch 6.6.2, Kibana 6.6.2, Logstash 6.6.2 và Metricbeat 6.6.2.
Bước 1 - Cấu hình Elasticsearch để lắng nghe lưu lượng truy cập trên IP bên ngoài
Hướng dẫn Cách cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên Ubuntu 18.04 chỉ hạn chế quyền truy cập Elasticsearch vào server local . Trong thực tế, điều này hiếm khi xảy ra, vì bạn thường cần theo dõi nhiều server . Trong bước này, bạn sẽ cấu hình các thành phần Elastic Stack để tương tác với địa chỉ IP bên ngoài.
Đăng nhập vào server Elastic Stack của bạn với quyền là user không phải root của bạn:
- ssh sammy@Elastic_Stack_server_ip 
Sử dụng editor   bạn muốn  để chỉnh sửa file  cấu hình chính của Elasticsearch , elasticsearch.yml . Hướng dẫn này sẽ sử dụng nano :
- sudo nano /etc/elasticsearch/elasticsearch.yml 
Tìm phần sau và sửa đổi nó để Elasticsearch lắng nghe trên tất cả các giao diện:
. . . network.host: 0.0.0.0 . . . Địa chỉ 0.0.0.0 được gán các ý nghĩa cụ thể trong một số ngữ cảnh. Trong trường hợp này, 0.0.0.0  nghĩa là  “bất kỳ địa chỉ IPv4 nào”.
 Lưu và elasticsearch.yml bằng cách nhấn CTRL+X , tiếp theo là Y rồi ENTER nếu bạn đang sử dụng nano . Sau đó, khởi động lại dịch vụ Elasticsearch với systemctl để áp dụng các cài đặt mới:
- sudo systemctl restart elasticsearch 
Bây giờ, cho phép truy cập vào cổng Elasticsearch từ  server  Ubuntu thứ hai của bạn. Bạn sẽ sử dụng ufw cho việc này:
- sudo ufw allow from second_ubuntu_server_ip/32 to any port 9200 
Lặp lại lệnh này cho từng  server  của bạn nếu bạn có nhiều hơn hai. Nếu các  server  của bạn thuộc cùng một mạng , bạn có thể cho phép truy cập bằng một  luật  cho tất cả các  server  trên mạng. Để thực hiện việc này, bạn cần thay thế tiền tố /32 bằng một giá trị thấp hơn, ví dụ /24 . Bạn có thể tìm thêm các ví dụ về  cài đặt  UFW trong phần Hướng dẫn sử dụng UFW Essentials: Common Firewall Rules and Commands .
Tiếp theo, kiểm tra kết nối. Đăng nhập vào server Ubuntu thứ hai của bạn với quyền là user không phải root của bạn:
- ssh sammy@second_ubuntu_server_ip 
Sử dụng lệnh telnet để kiểm tra kết nối với  server  Elastic Stack. Lệnh này cho phép giao tiếp với  server  lưu trữ khác bằng giao thức Telnet và có thể kiểm tra tính khả dụng của một cổng trên hệ thống từ xa.
- telnet Elastic_Stack_server_ip 9200 
Bạn sẽ nhận được kết quả sau:
OutputTrying Elastic_Stack_server_ip... Connected to Elastic_Stack_server_ip. Escape character is '^]'. Đóng kết nối Telnet bằng cách nhấn CTRL+] , sau đó nhấn CTRL+d . Bạn có thể gõ quit và sau đó nhấn ENTER để thoát tiện ích Telnet.
Đến đây bạn đã sẵn sàng để gửi số liệu đến server Elastic Stack của bạn .
Bước 2 - Cài đặt và cấu hình Metricbeat trên server Elastic Stack Server
Trong hai bước tiếp theo, trước tiên bạn sẽ cài đặt Metricbeat trên server Elastic Stack và nhập tất cả dữ liệu cần thiết, sau đó cài đặt và cấu hình client trên server Ubuntu thứ hai.
Đăng nhập vào server Elastic Stack của bạn với quyền là user không phải root của bạn:
- ssh sammy@Elastic_Stack_server_ip 
Vì trước đó bạn đã cài đặt repository Elasticsearch trong yêu cầu , bạn chỉ cần cài đặt Metricbeat:
- sudo apt install metricbeat 
Sau khi cài đặt xong Metricbeat, hãy tải mẫu index vào Elasticsearch. Chỉ mục Elasticsearch là một tập hợp các tài liệu có các đặc điểm tương tự. Các tên cụ thể xác định từng index , Elasticsearch sẽ sử dụng để tham chiếu đến các index khi thực hiện các hoạt động khác nhau. Server Elasticsearch của bạn sẽ tự động áp dụng mẫu index khi bạn tạo index mới.
Để tải mẫu, hãy sử dụng lệnh sau:
- sudo metricbeat setup --template -E 'output.elasticsearch.hosts=["localhost:9200"]' 
Bạn sẽ thấy kết quả sau:
OutputLoaded index template Metricbeat đi kèm với các console Kibana mẫu, hình ảnh hóa và tìm kiếm để hiển thị dữ liệu Metricbeat trong Kibana. Trước khi có thể sử dụng trang tổng quan, bạn cần tạo mẫu index và tải trang tổng quan vào Kibana.
Để tải các mẫu, hãy sử dụng lệnh sau:
- sudo metricbeat setup -e -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601 
Bạn sẽ thấy kết quả giống như sau:
Output. . . 2019-02-15T09:51:32.096Z        INFO    instance/beat.go:281    Setup Beat: metricbeat; Version: 6.6.2 2019-02-15T09:51:32.136Z        INFO    add_cloud_metadata/add_cloud_metadata.go:323    add_cloud_metadata: hosting provider type detected as digitalocean, metadata={"instance_id":"133130541","provider":"digitalocean","region":"fra1"} 2019-02-15T09:51:32.137Z        INFO    elasticsearch/client.go:165     Elasticsearch url: http://localhost:9200 2019-02-15T09:51:32.137Z        INFO    [publisher]     pipeline/module.go:110  Beat name: elastic 2019-02-15T09:51:32.138Z        INFO    elasticsearch/client.go:165     Elasticsearch url: http://localhost:9200 2019-02-15T09:51:32.140Z        INFO    elasticsearch/client.go:721     Connected to Elasticsearch version 6.6.2 2019-02-15T09:51:32.148Z        INFO    template/load.go:130    Template already exists and will not be overwritten. 2019-02-15T09:51:32.148Z        INFO    instance/beat.go:894    Template successfully loaded. Loaded index template Loading dashboards (Kibana must be running and reachable) 2019-02-15T09:51:32.149Z        INFO    elasticsearch/client.go:165     Elasticsearch url: http://localhost:9200 2019-02-15T09:51:32.150Z        INFO    elasticsearch/client.go:721     Connected to Elasticsearch version 6.6.2 2019-02-15T09:51:32.151Z        INFO    kibana/client.go:118    Kibana url: http://localhost:5601 2019-02-15T09:51:56.209Z        INFO    instance/beat.go:741    Kibana dashboards successfully loaded. Loaded dashboards Đến đây bạn có thể bắt đầu và bật Metricbeat:
- sudo systemctl start metricbeat 
- sudo systemctl enable metricbeat 
Metricbeat sẽ bắt đầu chuyển số liệu thống kê hệ thống của bạn vào Elasticsearch.
Để xác minh Elasticsearch thực sự đang nhận dữ liệu này, hãy truy vấn index Metricbeat bằng lệnh sau:
- curl -XGET 'http://localhost:9200/metricbeat-*/_search?pretty' 
Bạn sẽ thấy một kết quả giống như sau:
Output... {   "took" : 3,   "timed_out" : false,   "_shards" : {     "total" : 1,     "successful" : 1,     "skipped" : 0,     "failed" : 0   },   "hits" : {     "total" : 108,     "max_score" : 1.0,     "hits" : [       {         "_index" : "metricbeat-6.6.2-2019.02.15",         "_type" : "doc",         "_id" : "A4mU8GgBKrpxEYMLjJZt",         "_score" : 1.0,         "_source" : {           "@timestamp" : "2019-02-15T09:54:52.481Z",           "metricset" : {             "name" : "network",             "module" : "system",             "rtt" : 125           },           "event" : {             "dataset" : "system.network",             "duration" : 125260           },           "system" : {             "network" : {               "in" : {                 "packets" : 59728,                 "errors" : 0,                 "dropped" : 0,                 "bytes" : 736491211               },               "out" : {                 "dropped" : 0,                 "packets" : 31630,                 "bytes" : 8283069,                 "errors" : 0               },               "name" : "eth0"             }           },           "beat" : {             "version" : "6.6.2",             "name" : "elastic",             "hostname" : "elastic"           }, ... Dòng "total" : 108 , cho biết rằng Metricbeat đã tìm thấy 108 kết quả tìm kiếm cho số liệu cụ thể này. Nếu  kết quả  của bạn hiển thị tổng số lần truy cập là 0, bạn  cầ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, trong đó bạn sẽ cài đặt Metricbeat trên  server  Ubuntu thứ hai.
Bước 3 - Cài đặt và cấu hình Metricbeat trên Server Ubuntu thứ hai
Thực hiện bước này trên tất cả các server Ubuntu mà bạn muốn gửi số liệu đến server Elastic Stack của bạn .
Đăng nhập vào server Ubuntu thứ hai của bạn với quyền là user không phải root của bạn:
- ssh sammy@second_ubuntu_server_ip 
Các thành phần Elastic Stack không có sẵn trong repository mặc định của Ubuntu. Tuy nhiên, bạn có thể cài đặt chúng bằng APT sau khi thêm danh sách nguồn gói của Elastic.
Tất cả các gói của Elastic Stack đều được ký bằng khóa ký Elasticsearch để bảo vệ hệ thống của bạn khỏi giả mạo gói. Trình quản lý gói của bạn sẽ tin tưởng các gói đã được kiểm nghiệm bằng khóa. Trong bước này, bạn sẽ nhập khóa GPG công khai Elasticsearch và thêm danh sách nguồn gói Elastic để cài đặt Metricbeat.
Để bắt đầu, hãy chạy lệnh sau để nhập khóa GPG công khai Elasticsearch vào APT:
- wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - 
Tiếp theo, thêm danh sách nguồn  elastic  vào folder  sources.list.d , nơi APT sẽ tìm kiếm các nguồn mới:
- echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list 
Tiếp theo, cập nhật danh sách gói của bạn để APT sẽ đọc nguồn Đàn hồi mới:
- sudo apt update 
Sau đó cài đặt Metricbeat bằng lệnh này:
- sudo apt install metricbeat 
Sau khi cài đặt xong Metricbeat, hãy  cấu hình  nó để kết nối với Elasticsearch. Mở file  cấu hình của nó, metricbeat.yml :
- sudo nano /etc/metricbeat/metricbeat.yml 
Lưu ý: Tệp cấu hình của Metricbeat có định dạng YAML,  nghĩa là  thụt lề rất quan trọng! Đảm bảo rằng bạn không thêm bất kỳ khoảng trống thừa nào khi chỉnh sửa file  này.
Metricbeat hỗ trợ nhiều kết quả kết quả , nhưng bạn thường chỉ gửi các sự kiện trực tiếp đến Elasticsearch hoặc tới Logstash để xử lý bổ sung. Tìm phần sau và cập nhật địa chỉ IP:
#-------------------------- Elasticsearch output ------------------------------ output.elasticsearch:   # Array of hosts to connect to.   hosts: ["Elastic_Stack_server_ip:9200"]  ... Lưu và đóng file .
 Bạn có thể mở rộng chức năng của Metricbeat bằng các module  . Trong hướng dẫn này, bạn sẽ sử dụng module  system , cho phép bạn theo dõi số liệu thống kê của  server  như mức sử dụng CPU / bộ nhớ / đĩa và sử dụng mạng.
 Trong trường hợp này, module  system được bật theo mặc định. Bạn có thể xem danh sách các module  được bật và tắt  bằng lệnh: 
- sudo metricbeat modules list 
Bạn sẽ thấy một danh sách tương tự như sau:
OutputEnabled: system  Disabled: aerospike apache ceph couchbase docker dropwizard elasticsearch envoyproxy etcd golang graphite haproxy http jolokia kafka kibana kubernetes kvm logstash memcached mongodb munin mysql nginx php_fpm postgresql prometheus rabbitmq redis traefik uwsgi vsphere windows zookeeper Bạn có thể xem các thông số của module  trong file  cấu hình /etc/metricbeat/modules.d/system.yml . Trong trường hợp của hướng dẫn này, bạn không cần phải thay đổi bất kỳ điều gì trong cấu hình. Các bộ số liệu mặc định là cpu , load , memory , network , process và process_summary . Mỗi module  có một hoặc nhiều bộ số liệu. Tập đo lường là một phần của module  tìm nạp và cấu trúc dữ liệu. Thay vì thu thập từng chỉ số dưới dạng một sự kiện riêng biệt, tập số liệu truy xuất danh sách nhiều số liệu có liên quan trong một yêu cầu duy nhất tới hệ thống từ xa.
Đến đây bạn có thể bắt đầu và bật Metricbeat:
- sudo systemctl start metricbeat 
- sudo systemctl enable metricbeat 
Bạn cần lặp lại bước này trên tất cả các server mà bạn muốn thu thập số liệu. Sau đó, bạn có thể tiến hành bước tiếp theo, trong đó bạn sẽ thấy cách chuyển qua một số trang tổng quan của Kibana.
Bước 4 - Khám phá Trang tổng quan Kibana
Trong bước này, bạn sẽ xem Kibana, giao diện web mà bạn đã cài đặt trong phần Yêu cầu .
Trong trình duyệt web, hãy truy cập FQDN hoặc địa chỉ IP công cộng của server Elastic Stack của bạn. Sau khi nhập thông tin đăng nhập mà bạn đã xác định trong Bước 2 của hướng dẫn Elastic Stack , bạn sẽ thấy trang chủ Kibana:
Nhấp vào liên kết Khám phá trong thanh chuyển bên trái. Trên trang Khám phá , hãy chọn mẫu index ngẫu nhiên- * được định nghĩa để xem dữ liệu Mét. 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ẽ tìm thấy biểu đồ và một số chi tiết số liệu:
Tại đây, bạn có thể tìm kiếm và duyệt qua các chỉ số của bạn và cũng có thể tùy chỉnh trang tổng quan của bạn . Tuy nhiên, tại thời điểm này, sẽ không có nhiều thứ trong đó vì bạn chỉ thu thập số liệu thống kê hệ thống từ server của bạn .
 Sử dụng console  bên trái để  chuyển  đến trang  Control panel  và tìm kiếm console  Hệ thống đo lường . Khi đó, bạn có thể tìm kiếm các trang tổng quan mẫu đi kèm với module  system của Metricbeat.
Ví dụ: bạn có thể xem thông tin ngắn gọn về tất cả các server của bạn :
Bạn cũng có thể nhấp vào tên server và xem thông tin chi tiết:
Kibana có nhiều tính năng khác, chẳng hạn như đồ thị và lọc, vì vậy hãy thoải mái khám phá.
Kết luận
Trong hướng dẫn này, bạn đã cài đặt Metricbeat và cấu hình Elastic Stack để thu thập và phân tích các chỉ số hệ thống. Metricbeat đi kèm với các mô-đun nội bộ thu thập số liệu từ các dịch vụ như Apache, Nginx, Docker, MySQL, PostgreSQL, v.v. Như vậy, bạn có thể thu thập và phân tích các chỉ số của các ứng dụng của bạn bằng cách chỉ cần bật các module bạn cần.
Nếu bạn muốn hiểu thêm về giám sát server , hãy xem Giới thiệu về Chỉ số, Giám sát và Cảnh báo và Đưa Giám sát và Cảnh báo vào Thực tiễn .
Các tin liên quan
Cách cài đặt và sử dụng ClickHouse trên Ubuntu 18.042019-03-11
Cách cấu hình xác thực đa yếu tố trên Ubuntu 18.04
2019-02-28
Cách thiết lập ứng dụng CakePHP với LAMP trên Ubuntu 18.04
2019-02-22
Cách đặt quota hệ thống tệp trên Ubuntu 18.04
2019-02-21
Cách thực hiện kiểm tra liên tục các vai trò không thể phục hồi bằng Molecule và Travis CI trên Ubuntu 18.04
2019-02-01
Cách đảm bảo chất lượng mã bằng SonarQube trên Ubuntu 18.04
2019-01-11
Cách cài đặt và bảo mật Memcached trên Ubuntu 18.04
2019-01-04
Cách cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên Ubuntu 16.04
2018-11-20
Cách cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên Ubuntu 16.04
2018-11-20
Cách cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên Ubuntu 18.04
2018-11-06
 

