Cách cài đặt và cấu hình Grafana để vẽ đồ thị đẹp từ Zabbix trên CentOS 7

1 năm trước

Giới thiệu

Zabbix là một công cụ giám sát tuyệt vời thu thập dữ liệu từ máy chủ, máy ảo và các loại thiết bị mạng khác để có thể phân tích dữ liệu cho các xu hướng hoặc sự cố. Nó có thông báo phong phú về các tính năng nổi bật, nhưng các công cụ tích hợp phân tích dữ liệu và trực quan hóa không dễ sử dụng. Bạn có thể kết hợp đồ thị thành trang tổng quan, nhưng trước tiên cần phải tạo chúng và thực tế không có cách nào dễ dàng để tạo biểu đồ hiển thị dữ liệu thời gian thực. Ngoài ra, không có cách nào thu thập dữ liệu từ các máy chủ khác nhau lên một biểu đồ duy nhất. Trong khi tình hình đang trở nên tốt hơn với mỗi bản phát hành mới, nó là khá khó thực hiện.

Grafana là lựa chọn tốt cho các trang tổng quan của Zabbix. Nó cho phép tạo biểu đồ và trang tổng quan dựa trên dữ liệu từ các hệ thống giám sát khác nhau và chuyên về hiển thị và phân tích dữ liệu này. Nó rất nhẹ, dễ cài đặt và trông rất đẹp.

Trong hướng dẫn này, bạn cài đặt Grafana và cấu hình nó để hiển thị dữ liệu từ Zabbix, và học cách soạn bảng điều khiển tùy chỉnh của riêng mình để theo dõi việc sử dụng CPU và tệp.

 

Điều kiện tiên quyết

Để làm theo hướng dẫn này, bạn cần:

  • Hai server CentOS 7 được cấu hình với user non-root không có quyền sudo, với Zabbix được cài đặt trên một máy chủ và máy khách Zabbix được cài đặt trên máy chủ khác. 
 

Bước 1 — Cài đặt Grafana

Trước khi sử dụng Grafana, cần phải cài đặt nó. Chúng ta sẽ sử dụng cùng một server mà đã sử dụng cho Zabbix server. Đăng nhập vào Zabbix server của bạn với non-root user:

ssh sammy@your_zabbix_server_ip_address

Grafana không có sẵn thông qua trình quản lý gói theo mặc định, vì vậy chúng tôi sẽ thiết lập tệp cấu hình kho lưu trữ. Đầu tiên, tạo một tệp kho lưu trữ mới cho Grafana:

sudo vi /etc/yum.repos.d/grafana.repo 

Dán dữ liệu cấu hình sau vào tệp:

/etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

Sau đó lưu và thoát khỏi trình soạn thảo văn bản và chạy lệnh sau để cài đặt Grafana:

sudo yum install grafana 

Trong quá trình cài đặt, bạn được yêu cầu nhập khóa GPG. Xác nhận rằng bạn muốn nhập khóa này để cài đặt có thể tiếp tục.

Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ Grafana:

sudo systemctl daemon-reload 
sudo systemctl start grafana-server 

Sau đó kiểm tra xem dịch vụ Grafana có chạy đúng không:

sudo systemctl status grafana-server 

Bạn sẽ thấy trạng thái sau:

Output
● grafana-server.service - Starts and stops a single grafana instance on this system 
  Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled) 
  Active: active (running) since Mon 2016-11-07 06:18:27 UTC; 1 day 4h ago 
  Docs: http://docs.grafana.org 
 Main PID: 16639 (grafana-server)
  ... 

Cuối cùng, cho phép dịch vụ bắt đầu tại thời điểm khởi động:

sudo systemctl enable grafana-server 

Grafana đang chạy, vì vậy hãy cài đặt thành phần cho phép Grafana kéo dữ liệu từ Zabbix.

 

Bước 2 - Cài đặt Plugin Zabbix cho Grafana

Bạn có thể mở rộng chức năng của Grafana bằng cách cài đặt các plugin. Bạn có thể khám phá các plugin có sẵn tại đây. Có ba loại plugin:

  • Panels: các khối mới có thể được sử dụng trên trang tổng quan, chẳng hạn như biểu đồ hình tròn hoặc biểu đồ hình tròn.
  • Data sources: phụ trợ lưu trữ mới cho dữ liệu chuỗi thời gian, vì vậy bạn có thể lấy dữ liệu từ các nguồn khác.
  • Apps: các plugin phức tạp bao gồm các nguồn dữ liệu và các bảng trong một gói duy nhất.

Chúng ta sẽ sử dụng plugin ứng dụng Zabbix, bao gồm nguồn dữ liệu Zabbix, bảng điều khiển kích hoạt, trang tổng quan máy chủ Zabbix và mẫu để xem dữ liệu.

Cách dễ nhất để cài đặt các plugin là sử dụng công cụ CLI grafana-cli được đóng gói với Grafana. Chạy lệnh sau để cài đặt plugin ứng dụng Zabbix:

sudo grafana-cli plugins install alexanderzobnin-zabbix-app 

Bạn sẽ thấy đầu ra sau, cho biết rằng plugin đã được cài đặt:

Output
✔ Installed alexanderzobnin-zabbix-app successfully 

Bất cứ khi nào thêm hoặc sửa đổi plugin, bạn phải khởi động lại grafana-server để các thay đổi có hiệu lực.

sudo systemctl restart grafana-server 

Với plugin được cài đặt, bạn có thể đăng nhập vào Grafana và cấu hình nó để nói chuyện với Zabbix.

 

Bước 3 - Cấu hình Plugin Zabbix

Đăng nhập vào giao diện web Grafana bằng cách điều hướng đến địa chỉ  http://your_zabbix_server_ip_address:3000.

Lưu ý: Grafana nghe các kết nối đến trên cổng 3000. Nếu đã cấu hình tưởng lửa, bạn sẽ cần phải mở cổng này.

Thông tin đăng nhập mặc định là  admin/admin. Bạn có thể thay đổi mật khẩu trên trang Profile khi đăng nhập. Khi đăng nhập, bạn sẽ được trang tổng quan Home chào đón.

Home dashboard

Truy cập menu chính của Grafana bằng cách nhấp vào biểu tượng Grafana ở góc trên cùng bên trái của giao diện người dùng. Sau đó chọn Plugins, chọn tab Apps. Sau đó bấm vào ứng dụng Zabbix và kích hoạt nó bằng cách nhấn nút Enable.

Bây giờ bạn có thể thêm một nguồn dữ liệu mới. Chọn lại biểu tượng Grafana và điều hướng đến Data sources. Sau đó nhấp vào nút Add data source. Bạn sẽ thấy trang cấu hình cho nguồn dữ liệu:

Add data source

Định cấu hình nguồn dữ liệu như sau:

  • Nhập tên cho nguồn dữ liệu mới này vào trường Name.
  • Chọn tùy chọn Default để nguồn dữ liệu này sẽ được chọn trước trong các bảng mới mà bạn tạo.
  • Chọn Zabbix từ danh sách thả xuống Type.
  • Điền vào trường Url với đường dẫn đầy đủ tới API Zabbix, sẽ là http://your_zabbix_server_ip_address/zabbix/api_jsonrpc.php.
  • Điền vào các trường Username và Password với username và password cho Zabbix. Tên người dùng mặc định là admin và mật khẩu mặc định là zabbix.
  • Bật tùy chọn Trends; nó sẽ tăng hiệu suất của Grafana khi hiển thị các khoảng thời gian dài.

Bạn có thể để các tùy chọn khác ở các giá trị mặc định của chúng.

Nhấp vào nút Add để kiểm tra và lưu cấu hình. Bạn sẽ thấy thông báo thành công giống như sau:

Successful test of the connection to Zabbix

Nếu không thấy thông báo này, hãy kiểm tra thông tin đăng nhập của bạn và kiểm tra lại.

Bây giờ hãy nhìn vào bảng điều khiển Zabbix đi kèm với plugin. Chọn Zabbix server Dashboard từ danh sách thả xuống ở đầu màn hình. Khi chọn nó, bảng điều khiển sẽ hiển thị thông tin về Zabbix server của bạn:

The Zabbix Server Dashboard

Trang tổng quan này khá thông tin, nhưng bạn có thể tạo trang tổng quan tùy chỉnh của riêng mình từ đầu.

 

Bước 4 — Tạo trang tổng quan Zabbix tùy chỉnh

Hãy tạo một bảng điều khiển cho Zabbix cho thấy chúng ta sử dụng CPU và thông tin hệ thống tập tin trong thời gian thực.


Mở danh sách thả xuống ở đầu màn hình và nhấp vào nút Create New. Một bảng điều khiển trống mới sẽ được tạo.

Mỗi trang tổng quan bao gồm các hàng chứa các khối. Khi tạo trang tổng quan mới, bạn sẽ tự động nhận được một hàng. Nhấp vào trình đơn màu xanh lá cây ở bên trái của hàng để truy cập vào menu hành động của hàng. Ở đây bạn có thể thêm các bảng mới, thiết lập chiều cao của hàng, di chuyển nó, thu gọn nó, hoặc xóa nó.


Đầu tiên chúng ta sẽ tạo một biểu đồ hiển thị việc sử dụng CPU của Zabbix server. Chọn mục Add Panel và sau đó nhấp vào Graph để chèn một đồ thị mới vào hàng.

Bạn sẽ được chào đón bằng một biểu mẫu có nhiều tab, với tab Metrics được chọn. Vì đã đặt nguồn dữ liệu Zabbix làm mặc định nên một truy vấn mới đã được thêm cho bạn. Bạn chỉ cần chỉ định các tùy chọn sau:

  • Đặt Host Group thành Zabbix servers.
  • Đặt Host thành Zabbix server.
  • Đặt Application thành CPU.
  • Đặt Item thành Processor load (1 min average per core).

Bạn sẽ thấy bạn tải bộ xử lý hiện tại trên biểu đồ.

Graph metrics options

Sau đó điều hướng đến tab General và đặt trường Title thành Processor load và đặt tùy chọn Span  thành 6. Một hàng có thể chứa tối đa 12 khối, do đó, đặt giá trị này thành 6 làm cho bảng mất một nửa màn hình.

Graph general options

Bây giờ bạn có thể nhấp vào Back to dashboard để xem kết quả:

Dashboard

Lưu ý: Nếu không thấy bất kỳ dữ liệu nào, bạn có thể thu nhỏ quá mức. Nhấp vào biểu tượng đồng hồ ở phía bên phải của giao diện và chọn *Last 1 hour từ danh sách tùy chọn.

Hãy thêm một biểu đồ khác. Để thực hiện việc này, bạn có thể lặp lại các bước trước đó hoặc sao chép biểu đồ hiện có. Để nhân đôi biểu đồ hiện tại, chọn tiêu đề bảng và nhấp vào  Duplicate. Sau đó chọn tiêu đề của biểu đồ mới và chọn tùy chọn Edit. Sau đó áp dụng các cài đặt sau:

  • Thay đổi Title thành CPU usage.
  • Chọn tab Metrics và thay đổi trường Item thành /CPU.*/.

Bạn có thể sử dụng các mẫu Regular Expression cho tên máy chủ hoặc số liệu. Chỉ cần chắc chắn để bọc các mô hình trong dấu gạch chéo về phía trước (/).

Bạn cũng có thể hiển thị thống kê tóm tắt. Chọn tab Legend và bạn sẽ thấy một số tùy chọn và giá trị có thể chọn.

  • Trong Options, chọn As table và To The right.
  • Trong Values, chọn MinMaxAvg, và Current.

Bây giờ hãy nhấp vào Back to dashboard để xem kết quả, sẽ trông như sau:

Dashboard

Tiếp theo, thêm bảng điều khiển Singlestat để hiển thị một giá trị cho một số liệu cụ thể. Tạo một hàng mới bằng cách nhấp vào nút Add row và sau đó chọn menu của hàng, chọn Add panel và chọn mục Singlestat.

Đặt các tùy chọn Metrics như sau:

  • Đặt Host Group thành Zabbix servers.
  • Đặt Host thành Zabbix server.
  • Đặt Application thành Filesystems.
  • Đặt Item thành Free disk space on / (percentage).

Tiếp theo, chuyển sang tab General và đặt trường Title thành Free disk space on /.

Sau đó chuyển sang tab Options và định cấu hình các tùy chọn sau:

  • Bật tùy chọn Show cho Gauge.
  • Đặt Thresholds thành 10,20. Điều này sẽ hiển thị các ngưỡng này trên máy đo.
  • Chọn tùy chọn current từ danh sách thả xuống Value.

Máy đo hiện giờ trông như thế này:

Gauge

Quay lại trang tổng quan và nhấn CTRL+S để lưu.

Bây giờ hãy kiểm tra cách đo này phản ứng với các sự kiện thời gian thực. Để làm như vậy, sẽ tự giảm dung lượng trống trên đĩa và xem những gì bảng điều khiển hiển thị.

Đăng nhập vào Zabbix server nếu bạn chưa đăng nhập:

ssh sammy@your_zabbix_server_ip_address

Sau khi đăng nhập, xác định dung lượng trống có sẵn trên hệ thống tệp. Bạn có thể làm điều này với lệnh df:

df -h 

Bạn sẽ thấy kết quả sau:

Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.5G 18G 8% /devtmpfs 236M 0 236M 0% /dev
tmpfs 245M 0 245M 0% /dev/shm 
tmpfs 245M 8.3M 237M 4% /run 
tmpfs 245M 0 245M 0% /sys/fs/cgroup 
tmpfs 49M 0 49M 0% /run/user/0 

Trong trường hợp này, có 18 GB dung lượng trống. Dung lượng trống trên server của bạn sẽ thay đổi. Giảm bớt không gian trống trên phân vùng gốc dưới ngưỡng 20% bằng cách sử dụng lệnh fallocate để tạo một tệp tạm thời lớn:

fallocate -l 15G /tmp/test.img 

Đặt kích thước tệp tùy thuộc vào dung lượng trống trên server của bạn.

Sau đó, chờ Zabbix một vài phút để cập nhật dữ liệu của nó. Làm mới trang tổng quan và bạn sẽ thấy rằng máy đo đã thay đổi màu sắc của nó để phản ánh vấn đề về không gian trống:

Warning

Cuối cùng, hãy hiển thị các kích hoạt Zabbix đang hoạt động trên bảng điều khiển. Tạo một hàng mới và sau đó chọn menu của hàng, chọn Add panel, và chọn mục Zabbix Triggers.

Bạn sẽ thấy kích hoạt hoạt động thông báo cho bạn về việc thiếu dung lượng trống trên server.

Free space trigger

Chọn Back to dashboard và lưu trang tổng quan bằng CTRL+S. Trang tổng quan giờ sẽ trông như sau:

The completed dashboard

Bây giờ bạn có thể sử dụng bảng điều khiển đơn giản này để xem nhanh trạng thái hiện tại của server của bạn.

Đừng quên xóa tệp tạm thời bạn đã tạo để giải phóng dung lượng trên đĩa của mình. Trên Zabbix server, hãy ra lệnh:

rm /tmp/test.img 

Thao tác này sẽ xóa tệp test.img. Trong một vài phút, trang tổng quan sẽ cập nhật lại để phản ánh các thay đổi trên hệ thống tệp.

 

Kết luận

Trong hướng dẫn này, bạn đã học cách cài đặt và cấu hình Grafana, và tạo một bảng điều khiển tùy chỉnh với các bảng hiển thị dữ liệu từ Zabbix. Bạn có thể hiển thị các trang tổng quan này trên máy tính để bàn hoặc thậm chí màn hình lớn để cho phép quản trị viên xem trạng thái cơ sở hạ tầng CNTT của bạn. Mỗi panel trên một bảng điều khiển có thể hiển thị dữ liệu từ một server khác nhau và có thể sử dụng Grafana để lọc dữ liệu theo nhiều cách hữu ích. Thật khó để mô tả tất cả các tính năng của Grafana trong một hướng dẫn, vì vậy hãy khám phá, thử nghiệm và xây dựng các trang tổng quan đẹp của riêng bạn.