Grafana ra đời năm 2013 khi một lập trình viên muốn tìm giao diện mới để hiển thị dữ liệu từ Graphite. Grafana sau đó phát triển thành một công cụ giúp tạo các bảng điều khiển (dashboards) trực quan, dễ sử dụng, mang lại nhiều giá trị cho các tổ chức.
Năm 2014, Grafana Labs được thành lập với mục tiêu xây dựng một doanh nghiệp bền vững và cam kết phát triển các dự án mã nguồn mở. Từ đó, Grafana đã phát triển mạnh mẽ với hơn 1 triệu lượt cài đặt. Grafana Labs cũng đóng góp lớn cho cộng đồng mã nguồn mở, không chỉ qua các công cụ của họ mà còn qua các dự án phổ biến như Prometheus và OpenTelemetry.
1. Grafana là gì?
Grafana là một nền tảng mã nguồn mở giúp bạn truy vấn, hiển thị, và cảnh báo dữ liệu từ nhiều nguồn khác nhau. Bạn có thể sử dụng Grafana để theo dõi thông tin theo thời gian thực từ nhiều loại dữ liệu khác nhau, như cơ sở dữ liệu thời gian thực (Time Series Database), SQL, NoSQL, hoặc các dịch vụ cloud thông qua các bảng điều khiển (dashboard) có thể tùy chỉnh.
Grafana Lab đã phát triển rất nhiều công cụ cho cộng đồng, chúng được chia thành các nhóm chính như sau:
- Bộ công cụ cốt lõi (Grafana stack): Bao gồm LGTM (Loki, Grafana, Tempo, Mimir) và Grafana Agent, dùng để quản lý logs, metrics và tracing.
- Plugin cho doanh nghiệp: Mở rộng khả năng của Grafana cho các tổ chức lớn.
- Công cụ xử lý sự cố: Giúp quản lý và khắc phục sự cố nhanh chóng.
- Các công cụ khác: Tăng cường khả năng giám sát và quản lý hệ thống.
Trong bài viết này chúng ta sẽ chỉ tập trung tìm hiểu về Grafana, một công cụ nằm trong bộ Grafana stack.
2. Tại sao nhiều người lựa chọn Grafana?
2.1 Mã nguồn mở và dễ mở rộng
Grafana là mã nguồn mở, có nghĩa là người dùng có thể tải về, sử dụng miễn phí và tùy chỉnh theo nhu cầu. Ví dụ, một công ty sử dụng Grafana để giám sát hiệu suất hệ thống có thể dễ dàng tích hợp thêm các plugin từ cộng đồng hoặc tự tạo plugin của riêng mình để kết nối với các nguồn dữ liệu khác như Prometheus, InfluxDB, hoặc SQL/NoSQL. Điều này giúp người dùng tránh bị ràng buộc bởi các giải pháp độc quyền, vừa tốn kém vừa thiếu linh hoạt.
2.2 Kết nối nhiều nguồn dữ liệu
Khác với nhiều công cụ đòi hỏi phải nhập dữ liệu vào hệ thống của chính nó, Grafana cho phép bạn kết nối trực tiếp với các nguồn dữ liệu hiện có. Ví dụ, một công ty có thể kết nối Grafana với hệ thống Kubernetes để giám sát logs và metrics mà không cần chuyển dữ liệu sang một hệ thống khác. Điều này giúp tiết kiệm chi phí và công sức trong việc quản lý dữ liệu.
2.3 Trực quan hóa dữ liệu mạnh mẽ
Grafana giúp bạn tạo bảng điều khiển (dashboard) tương tác với nhiều loại biểu đồ khác nhau. Ví dụ, bạn có thể hiển thị biểu đồ thời gian thực về hiệu suất của server, log sự cố, hoặc dữ liệu từ ứng dụng web. Nhóm phát triển cũng có thể chia sẻ bảng điều khiển này với các thành viên khác để cùng nhau theo dõi và phản hồi nhanh chóng.
2.4 Hệ thống cảnh báo linh hoạt
Với Grafana, bạn có thể cài đặt cảnh báo và nhận thông báo qua email, SMS, hoặc Slack khi có sự cố xảy ra. Ví dụ, nếu lượng truy cập vào website vượt quá giới hạn, Grafana có thể gửi cảnh báo ngay lập tức để đội ngũ kỹ thuật xử lý kịp thời, góp phần giảm thiểu thiệt hại.
2.5 Cộng đồng hỗ trợ mạnh mẽ
Grafana được hỗ trợ bởi một cộng đồng người dùng mã nguồn mở lớn và được phát triển bởi Grafana Labs. Hàng ngàn người dùng và nhà phát triển đóng góp vào sự phát triển của nền tảng này, đảm bảo nó luôn được cập nhật và hỗ trợ thêm nhiều tính năng mới. Ví dụ, một nhóm kỹ thuật có thể dễ dàng tìm kiếm sự trợ giúp từ cộng đồng nếu gặp vấn đề trong quá trình sử dụng.
3. Hướng dẫn cài đặt Grafana
Sau đây mình sẽ hướng dẫn các bạn cài đặt Grafana sử dụng Docker, mình không khuyến khích các bạn cài trực tiếp lên máy, nhằm tránh các bước cấu hình phức tạp và xung đột giữa Grafana và các phần mềm khác trên máy của các bạn, dẫn đến việc cài đặt và chạy không thành công.
Hiện tại Grafana có 2 phiên bản trên Docker Hub:
- Grafana Enterprise:
grafana/grafana-enterprise
, bạn có thể tải về và sử dụng image này miễn phí, nhưng để truy cập vào các tính năng cao cấp của Grafana Enterprise, như các plugin nâng cao, bảo mật tốt hơn, và hỗ trợ từ nhà phát triển, bạn cần phải mua license trả phí. - Grafana Open Source:
grafana/grafana-oss
, đây là phiên bản miễn phí hoàn toàn.
Bước 1: Pull Image Grafana về máy, sau đó khởi tạo container có tên là grafana
docker pull grafana/grafana-oss
docker run -d -p 3000:3000 --name=grafana grafana/grafana-oss
Bước 2: Truy cập đường link localhost:3000
, nếu thành công các bạn sẽ thấy trang đăng nhập như hình 1, còn hình số 2 là có lỗi xảy ra, lỗi mà mình gặp là unsupported browser
, mặc dù Safari có trong danh sách, nhưng không sao, mình chuyển qua dùng Chrome thì lại bình thường.
Bước 3: Các bạn dùng user/passwword mặc định là admin/admin
để đăng nhập vào Grafana, sau đó nó sẽ yêu cầu bạn đổi password, đây là giao diện sau khi đã đăng nhập thành công.
4. Hướng dẫn sử dụng Grafana cơ bản
Trong ví dụ này mình sẽ hướng dẫn các bạn tạo Dashboard đơn giản đếm số lượng bảng (table) có trong database MySQL, database này thì mình có sẵn từ trước rồi nhé các bạn.
Bài hướng dẫn config hoàn chỉnh Grafana và Prometheus để đo lường các chỉ số về hệ thống của Database MySQL, MongoDB, ... dành riêng cho các bạn DevOps và SysAdmin mình sẽ viết trong một bài viết khác.
4.1 Tạo Datasource
Bước 1: Các bạn click vào Connections
ở Menu bên trái và chọn Data sources
, chúng ta chưa tạo data source nào cả nên danh sách trống trơn.
Bước 2: Chọn Add data source
trên màn hình và gõ mysql
vào ô tìm kiếm, sau khi đã tìm được bạn click vào loại database này.
Bước 3: Sau khi đã nhập các thông số của database mysql, các bạn click vào nút Save & test
để kiểm tra xem Grafana có kết nối được không, như hình bên dưới của mình thì đã kết nối được.
4.2 Tạo Dashboard
Bước 1: Ở menu bên trái các bạn chọn Dashboards
-> Create Dashboard
, ở phần datasource, chúng ta chọn mysql vừa mới tạo xong ở phần trên.
Bước 2: Mình sẽ điền câu SQL query số lượng bảng trong một database bất kì như hình số 2 để Grafana hiển thị, mặc định nó sẽ hiển thị phần Builder
để các bạn tích chọn Dataset, Table, ... mà không cần phải viết query thủ công, nhưng trong trường hợp này chúng ta sẽ tự viết query.
Các bạn chọn và mục Code
ngay bên cạnh chữ Builder trong hình 1, và điền vào câu query như hình 2, sau đó chọn Run Query
. Kéo lên biểu đồ phía trên bật Table view
sẽ được kết quả như hình 3.
Bước 3: Ở Menu bên góc phải trong cùng màn hình, các bạn chọn format muốn hiển thị là Table
như hình 1 (mặc định là line chart). Ở phần Pannel Option
chúng ta đổi tên Pannel lại thành Table List
. Sau đó click vào Apply
sẽ được kết quả như hình 3.
Bước 4: Các bạn click vào Icon Save Dashboard như trong hình 1, Grafana sẽ yêu cầu điền tên Dasboard để lưu lại. Vậy là chúng ta đã hoàn thành phần tạo Dashboard rồi đấy các bạn.
5. Kết luận
Grafana là công cụ tuyệt vời cho việc trực quan hóa dữ liệu và giám sát hệ thống, nhờ vào tính linh hoạt và khả năng tùy chỉnh đa dạng mà đặt biệt lại là mã nguồn mở nữa. Hy vọng bài viết vừa rồi của mình giúp các bạn có thêm nhiều kiến thức mới về Grafana.
Bài viết liên quan:
Bài viết liên quan
Grafana Loki là gì? So sánh Loki và Elasticsearch
Nov 16, 2024 • 6 min read
Webhook là gì? So sánh Webhook và API
Nov 15, 2024 • 8 min read
Two-Factor Authentication (2FA) là gì? Vì sao chỉ Mật khẩu thôi là chưa đủ?
Nov 13, 2024 • 7 min read
ELK là gì? So sánh hiệu suất giữa ELK và PLG
Nov 06, 2024 • 9 min read
Docker Best Practices: Tối ưu Dung lượng Docker Image
Oct 30, 2024 • 8 min read
SQL Injection là gì? Những cách phòng ngừa SQL Injection
Oct 25, 2024 • 10 min read