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