Thứ năm, 05/09/2019 | 00:00 GMT+7

Cách cài đặt và bảo mật Grafana trên Ubuntu 18.04

Grafana là một công cụ giám sát và trực quan hóa dữ liệu open-souce tích hợp với dữ liệu phức tạp từ các nguồn như Prometheus , InfluxDB , GraphiteElasticSearch . Grafana cho phép bạn tạo cảnh báo, thông báo và bộ lọc đặc biệt cho dữ liệu của bạn đồng thời giúp cộng tác với đồng đội dễ dàng hơn thông qua các tính năng chia sẻ được tích hợp sẵn.

Trong hướng dẫn này, bạn sẽ cài đặt Grafana và bảo mật nó bằng chứng chỉ SSL reverse-proxy Nginx . Sau khi cài đặt xong Grafana, bạn sẽ có tùy chọn cấu hình xác thực user thông qua GitHub, cho phép bạn tổ chức các quyền của group tốt hơn.

Yêu cầu

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

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

Trong bước đầu tiên này, bạn sẽ cài đặt Grafana trên server Ubuntu 18.04 của bạn . Bạn có thể cài đặt Grafana bằng cách download trực tiếp từ trang web chính thức của nó hoặc thông qua kho lưu trữ APT . Vì repository APT giúp cài đặt và quản lý các bản cập nhật của Grafana dễ dàng hơn, bạn sẽ sử dụng phương pháp đó trong hướng dẫn này.

Mặc dù Grafana có sẵn trong repository Ubuntu 18.04 chính thức , nhưng version của Grafana ở đó có thể không phải là version mới nhất, vì vậy hãy sử dụng repository chính thức của Grafana.

Download khóa Grafana GPG bằng wget , sau đó chuyển kết quả sang apt-key . Thao tác này sẽ thêm khóa vào danh sách khóa tin cậy trong cài đặt APT của bạn, cho phép bạn download và xác minh gói Grafana được ký GPG.

  • wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

Trong lệnh này, tùy chọn -q tắt thông báo cập nhật trạng thái cho wget-O xuất file bạn đã download terminal . Hai tùy chọn này đảm bảo chỉ nội dung của file đã download được liên kết với apt-key .

Tiếp theo, thêm repository Grafana vào các nguồn APT của bạn:

  • sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Làm mới bộ nhớ cache APT của bạn để cập nhật danh sách gói của bạn:

  • sudo apt update

Tiếp theo, đảm bảo Grafana sẽ được cài đặt từ repository Grafana:

  • apt-cache policy grafana

Đầu ra của lệnh trước đó cho bạn biết version Grafana mà bạn sắp cài đặt và nơi bạn sẽ truy xuất gói từ đó. Xác minh thành phần cài đặt ở đầu danh sách sẽ đến từ repository Grafana chính thức tại https://packages.grafana.com/oss/deb .

Output of apt-cache policy grafana
grafana: Installed: (none) Candidate: 6.3.3 Version table: 6.3.3 500 500 https://packages.grafana.com/oss/deb stable/main amd64 Packages ...

Đến đây bạn có thể tiến hành cài đặt:

  • sudo apt install grafana

Sau khi cài đặt xong Grafana, hãy sử dụng systemctl để khởi động server Grafana:

  • sudo systemctl start grafana-server

Tiếp theo, xác minh Grafana đang chạy bằng cách kiểm tra trạng thái của dịch vụ:

  • sudo systemctl status grafana-server

Bạn sẽ nhận được kết quả tương tự như sau:

Output of grafana-server status
● grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2019-08-13 08:22:30 UTC; 11s ago Docs: http://docs.grafana.org Main PID: 13630 (grafana-server) Tasks: 7 (limit: 1152) ...

Đầu ra này chứa thông tin về quy trình của Grafana, bao gồm trạng thái của nó, Mã định danh quy trình chính (PID), v.v. active (running) cho thấy rằng quá trình đang chạy chính xác.

Cuối cùng, kích hoạt dịch vụ để tự động khởi động Grafana khi khởi động:

  • sudo systemctl enable grafana-server

Bạn sẽ nhận được kết quả sau:

Output of systemctl enable grafana-server
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

Điều này xác nhận systemd đã tạo các softlink cần thiết để tự khởi động Grafana.

Grafana hiện đã được cài đặt và sẵn sàng sử dụng. Tiếp theo, bạn sẽ bảo mật kết nối của bạn với Grafana bằng certificate SSL và Reverse Proxy .

Bước 2 - Cài đặt Reverse Proxy

Sử dụng certificate SSL sẽ đảm bảo dữ liệu được bảo mật bằng cách mã hóa kết nối đến và đi từ Grafana. Tuy nhiên, để sử dụng kết nối này, trước tiên bạn cần cấu hình lại Nginx làm Reverse Proxy cho Grafana.

Mở file cấu hình Nginx bạn đã tạo khi cài đặt khối server Nginx với Hãy mã hóa trong Yêu cầu . Bạn có thể sử dụng bất kỳ editor nào, nhưng đối với hướng dẫn này, ta sẽ sử dụng nano :

  • sudo nano /etc/nginx/sites-available/your_domain

Xác định vị trí khối sau:

/ etc / nginx / sites-available / your_domain
...     location / {         try_files $uri $uri/ =404;     } ... 

Vì bạn đã cấu hình Nginx để giao tiếp qua SSL và vì tất cả truy cập web đến server của bạn đã đi qua Nginx, bạn chỉ cần yêu cầu Nginx chuyển tiếp tất cả các yêu cầu tới Grafana, chạy trên cổng 3000 theo mặc định.

Xóa dòng try_files hiện có trong location block này và thay thế bằng tùy chọn proxy_pass sau.

/ etc / nginx / sites-available / your_domain
...     location / {         proxy_pass http://localhost:3000;     } ... 

Thao tác này sẽ ánh xạ proxy tới cổng thích hợp. Khi bạn đã hoàn tất, hãy lưu file 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 .

Bây giờ, hãy kiểm tra cài đặt mới đảm bảo mọi thứ được cấu hình chính xác:

  • sudo nginx -t

Bạn sẽ nhận được kết quả sau:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Cuối cùng, kích hoạt các thay đổi bằng cách reload Nginx:

  • sudo systemctl reload nginx

Như vậy, bạn có thể truy cập màn hình đăng nhập Grafana mặc định bằng cách trỏ trình duyệt web của bạn tới https:// your_domain . Nếu bạn không thể truy cập Grafana, hãy xác minh firewall của bạn được đặt để cho phép lưu lượng truy cập trên cổng 443 và sau đó theo dõi lại các hướng dẫn trước đó.

Với kết nối tới Grafana được mã hóa, giờ đây bạn có thể triển khai các biện pháp bảo mật bổ sung, bắt đầu bằng việc thay đổi thông tin xác thực quản trị mặc định của Grafana.

Bước 3 - Cập nhật thông tin đăng nhập

Bởi vì mọi cài đặt Grafana đều sử dụng cùng một thông tin đăng nhập quản trị theo mặc định, nên cách tốt nhất là thay đổi thông tin đăng nhập của bạn càng sớm càng tốt. Trong bước này, bạn sẽ cập nhật thông tin đăng nhập để cải thiện bảo mật.

Bắt đầu bằng cách chuyển đến https:// your_domain từ trình duyệt web . Thao tác này sẽ hiển thị màn hình đăng nhập mặc định, nơi bạn sẽ thấy biểu trưng Grafana, biểu mẫu yêu cầu bạn nhập email hoặc tên user mật khẩu , nút Đăng nhậpQuên password của bạn? liên kết.

Đăng nhập Grafana

Nhập admin vào cả trường User Mật khẩu , sau đó nhấp vào nút Đăng nhập .

Trên màn hình tiếp theo, bạn cần làm cho account của bạn an toàn hơn bằng cách thay đổi password mặc định:

Đổi password

Nhập password bạn muốn bắt đầu sử dụng vào các trường Mật khẩu mớiXác nhận password mới .

Từ đây, bạn có thể nhấn Save để lưu thông tin mới hoặc nhấn Skip để bỏ qua bước này. Nếu bạn bỏ qua, bạn sẽ được yêu cầu thay đổi password vào lần đăng nhập tiếp theo.

Để tăng tính bảo mật cho cài đặt Grafana của bạn, hãy nhấp vào Lưu . Bạn sẽ quay lại trang Trang tổng quan chính :

Trang chủ

Đến đây bạn đã bảo mật account của bạn bằng cách thay đổi thông tin đăng nhập mặc định. Tiếp theo, bạn sẽ áp dụng các thay đổi đối với cấu hình Grafana của bạn để không ai có thể tạo account Grafana mới mà không có sự cho phép của bạn.

Bước 4 - Tắt đăng ký Grafana và quyền truy cập ẩn danh

Grafana cung cấp các tùy chọn cho phép khách truy cập tạo account user cho chính họ và xem trước trang tổng quan mà không cần đăng ký. Khi không thể truy cập Grafana qua internet hoặc khi Grafana hoạt động với dữ liệu có sẵn công khai như trạng thái dịch vụ, bạn có thể cần cho phép các tính năng này. Tuy nhiên, khi sử dụng Grafana trực tuyến để làm việc với dữ liệu nhạy cảm, quyền truy cập ẩn danh có thể là một vấn đề bảo mật. Để khắc phục sự cố này, hãy thực hiện một số thay đổi đối với cấu hình Grafana của bạn.

Bắt đầu bằng cách mở file cấu hình chính của Grafana để chỉnh sửa:

  • sudo nano /etc/grafana/grafana.ini

Tìm chỉ thị allow_sign_up sau trong tiêu đề [users] :

/etc/grafana/grafana.ini
... [users] # disable user signup / registration ;allow_sign_up = true ... 

Bật chỉ thị này với true sẽ thêm nút Đăng ký vào màn hình đăng nhập, cho phép user tự đăng ký và truy cập Grafana.

Việc vô hiệu hóa chỉ thị này bằng false sẽ xóa nút Đăng ký và tăng cường bảo mật và quyền riêng tư của Grafana.

Bỏ ghi chú chỉ thị này bằng cách xóa ; ở đầu dòng và sau đó đặt tùy chọn thành false :

/etc/grafana/grafana.ini
... [users] # disable user signup / registration allow_sign_up = false ... 

Tiếp theo, tìm chỉ thị enabled sau đây trong tiêu đề [auth.anonymous] :

/etc/grafana/grafana.ini
... [auth.anonymous] # enable anonymous access ;enabled = false ... 

Cài đặt enabled thành true cung cấp cho user chưa đăng ký quyền truy cập vào trang tổng quan của bạn; đặt tùy chọn này thành giới hạn false quyền truy cập trang tổng quan chỉ cho user đã đăng ký.

Bỏ ghi chú chỉ thị này bằng cách xóa ; ở đầu dòng và sau đó đặt tùy chọn thành false .

/etc/grafana/grafana.ini
... [auth.anonymous] enabled = false ... 

Lưu file và thoát khỏi editor của bạn.

Để kích hoạt các thay đổi, hãy khởi động lại Grafana:

  • sudo systemctl restart grafana-server

Xác minh mọi thứ đang hoạt động bằng cách kiểm tra trạng thái dịch vụ của Grafana:

  • sudo systemctl status grafana-server

Giống như trước đây, kết quả sẽ báo rằng Grafana đang active (running) .

Bây giờ, trỏ trình duyệt web đến https:// your_domain . Để quay lại màn hình Đăng ký , hãy đưa con trỏ đến hình đại diện của bạn ở phía dưới bên trái của màn hình và nhấp vào tùy chọn Đăng xuất xuất hiện.

Khi bạn đã đăng xuất, hãy xác minh không có nút Đăng ký và bạn không thể đăng nhập mà không nhập thông tin đăng nhập.

Đến đây, Grafana đã được cấu hình đầy đủ và sẵn sàng để sử dụng. Tiếp theo, bạn có thể đơn giản hóa quy trình đăng nhập cho tổ chức của bạn bằng cách xác thực thông qua GitHub.

(Tùy chọn) Bước 5 - Cài đặt ứng dụng GitHub OAuth

Đối với một phương pháp đăng nhập thay thế, bạn có thể cấu hình Grafana để xác thực thông qua GitHub, cung cấp quyền truy cập đăng nhập cho tất cả các thành viên của tổ chức GitHub được ủy quyền. Điều này có thể đặc biệt hữu ích khi bạn muốn cho phép nhiều nhà phát triển cộng tác và truy cập các chỉ số mà không cần phải tạo thông tin xác thực dành riêng cho Grafana.

Bắt đầu bằng cách đăng nhập vào account GitHub được liên kết với tổ chức của bạn và sau đó chuyển đến trang profile GitHub của bạn tại https://github.com/settings/profile .

Nhấp vào tên tổ chức của bạn trong Cài đặt tổ chức trong menu chuyển ở bên trái màn hình.

Cài đặt Tổ chức GitHub

Trên màn hình tiếp theo, bạn sẽ thấy hồ sơ Tổ chức của bạn , nơi bạn có thể thay đổi cài đặt như tên hiển thị Tổ chức , Email tổ chức và URL tổ chức.

Vì Grafana sử dụng OAuth - một tiêu chuẩn mở để cấp cho các bên thứ ba từ xa quyền truy cập vào tài nguyên local - để xác thực user thông qua GitHub, bạn cần tạo một ứng dụng OAuth mới trong GitHub .

Nhấp vào liên kết Ứng dụng OAuth trong Cài đặt dành cho nhà phát triển ở phía dưới bên trái của màn hình.

Nếu bạn chưa có bất kỳ ứng dụng OAuth nào được liên kết với tổ chức của bạn trên GitHub, bạn sẽ được thông báo là Không có ứng dụng nào thuộc sở hữu của tổ chức . Nếu không, bạn sẽ thấy danh sách các ứng dụng OAuth đã được kết nối với account của bạn .

Nhấp vào nút Đăng ký ứng dụng để tiếp tục.

Trên màn hình tiếp theo, hãy điền vào các chi tiết sau về cài đặt Grafana của bạn:

  • Tên ứng dụng - Điều này giúp bạn phân biệt các ứng dụng OAuth khác nhau của bạn với nhau.
  • URL trang chủ - Điều này cho GitHub biết nơi tìm Grafana. https:// your_domain vào trường này, thay thế your_domain bằng domain của bạn.
  • Mô tả ứng dụng - Phần này cung cấp mô tả về mục đích của ứng dụng OAuth của bạn.
  • URL gọi lại của ứng dụng - Đây là địa chỉ nơi user sẽ được gửi sau khi xác thực thành công. Đối với Grafana, trường này phải được đặt thành https:// your_domain /login/github .

Lưu ý user Grafana đăng nhập qua GitHub sẽ thấy các giá trị bạn đã nhập trong ba trường đầu tiên trước đó, vì vậy hãy đảm bảo nhập nội dung nào đó có ý nghĩa và phù hợp.

Khi hoàn thành, biểu mẫu sẽ giống như sau:

GitHub Đăng ký ứng dụng OAuth

Nhấp vào nút màu xanh lá cây, Đăng ký ứng dụng .

Bây giờ, bạn sẽ được chuyển hướng đến trang chứa ID khách hàngBí mật ứng dụng khách được liên kết với ứng dụng OAuth mới của bạn. Hãy ghi lại cả hai giá trị vì bạn cần thêm chúng vào file cấu hình chính của Grafana để hoàn tất cài đặt .

Cảnh báo: Đảm bảo giữ ID Khách hàngBí mật Khách hàng của bạn ở một vị trí an toàn và không công khai, vì chúng được dùng làm cơ sở của một cuộc tấn công.

Với ứng dụng GitHub OAuth của bạn đã được tạo, bây giờ bạn đã sẵn sàng cấu hình lại Grafana để sử dụng GitHub để xác thực.

(Tùy chọn) Bước 6 - Cấu hình Grafana làm ứng dụng GitHub OAuth

Để hoàn tất xác thực GitHub cho cài đặt Grafana của bạn, bây giờ bạn sẽ thực hiện một số thay đổi đối với các file cấu hình Grafana của bạn .

Để bắt đầu, hãy mở file cấu hình Grafana chính.

  • sudo nano /etc/grafana/grafana.ini

Tìm tiêu đề [auth.github] và bỏ ghi chú phần này bằng cách xóa ; ở đầu mỗi dòng ngoại trừ ;team_ids= , sẽ không bị thay đổi trong hướng dẫn này.

Tiếp theo, cấu hình Grafana để sử dụng GitHub với các giá trị client_idclient_secret của ứng dụng OAuth của bạn.

  • Đặt enabledallow_sign_up thành true . Điều này sẽ cho phép Xác thực GitHub và cho phép các thành viên của tổ chức được phép tự tạo account . Lưu ý cài đặt này khác với thuộc tính allow_sign_up trong [users] mà bạn đã thay đổi ở Bước 4 .
  • Đặt client_idclient_secret thành các giá trị bạn nhận được khi tạo ứng dụng GitHub OAuth.
  • Đặt allowed_organizations thành tên tổ chức của bạn đảm bảo rằng chỉ các thành viên trong tổ chức của bạn mới có thể đăng ký và đăng nhập vào Grafana.

Cấu hình hoàn chỉnh sẽ giống như sau:

/etc/grafana/grafana.ini
... [auth.github] enabled = true allow_sign_up = true client_id = your_client_id_from_github client_secret = your_client_secret_from_github scopes = user:email,read:org auth_url = https://github.com/login/oauth/authorize token_url = https://github.com/login/oauth/access_token api_url = https://api.github.com/user ;team_ids = allowed_organizations = your_organization_name ... 

Đến đây bạn đã nói với Grafana mọi thứ nó cần biết về GitHub. Để hoàn tất cài đặt , bạn cần bật chuyển hướng sau Reverse Proxy . Điều này được thực hiện bằng cách đặt giá trị root_url trong tiêu đề [server] .

/etc/grafana/grafana.ini
... [server] root_url = https://your_domain ... 

Lưu cấu hình của bạn và đóng file .

Sau đó, khởi động lại Grafana để kích hoạt các thay đổi:

  • sudo systemctl restart grafana-server

Cuối cùng, hãy xác minh dịch vụ đang hoạt động.

  • sudo systemctl status grafana-server

Đầu ra sẽ cho biết rằng dịch vụ đang active (running) .

Bây giờ, hãy kiểm tra hệ thống xác thực mới của bạn bằng cách chuyển đến https:// your_domain . Nếu bạn đã đăng nhập vào Grafana, hãy di chuột qua log hình đại diện ở góc dưới bên trái của màn hình và nhấp vào Đăng xuất trong menu phụ xuất hiện bên cạnh tên của bạn.

Trên trang đăng nhập, bạn sẽ thấy một phần mới bên dưới nút Đăng nhập ban đầu bao gồm nút Đăng nhập bằng GitHub với biểu trưng GitHub.

Trang đăng nhập Grafana với GitHub

Nhấp vào nút Đăng nhập bằng GitHub để được chuyển hướng đến GitHub, tại đây bạn sẽ đăng nhập vào account GitHub của bạn và xác nhận ý định Cấp quyền cho Grafana .

Nhấp vào nút Ủy quyền_github_organization màu xanh lục.

Lưu ý: Đảm bảo account GitHub của bạn là thành viên của tổ chức được chấp thuận của bạn và địa chỉ email Grafana trùng với địa chỉ email GitHub của bạn. Nếu bạn cố gắng xác thực bằng account GitHub không phải là thành viên của tổ chức được phê duyệt của bạn, bạn sẽ nhận được thông báo Đăng nhập không thành công cho bạn biết rằng User không phải là thành viên của một trong các tổ chức được yêu cầu .

Đến đây bạn sẽ đăng nhập bằng account Grafana hiện có của bạn . Nếu account Grafana chưa tồn tại cho user mà bạn đã đăng nhập, Grafana sẽ tạo account user mới với quyền Người xem , đảm bảo user mới chỉ có thể sử dụng trang tổng quan hiện có.

Để thay đổi quyền mặc định cho user mới, hãy mở file cấu hình Grafana chính để chỉnh sửa.

  • sudo nano /etc/grafana/grafana.ini

Tìm chỉ thị auto_assign_org_role trong tiêu đề [users] và bỏ ghi chú cài đặt bằng cách xóa ; ở đầu dòng.

Đặt chỉ thị thành một trong các giá trị sau:

  • Viewer - chỉ có thể sử dụng trang tổng quan hiện có
  • Editor chỉnh sửa - có thể thay đổi cách sử dụng, sửa đổi và thêm trang tổng quan
  • Admin - có quyền làm mọi thứ

Hướng dẫn này sẽ đặt tự động gán cho Viewer :

/etc/grafana/grafana.ini
... [users] ... auto_assign_org_role = Viewer ... 

Khi bạn đã lưu các thay đổi của bạn , hãy đóng file và khởi động lại Grafana:

  • sudo systemctl restart grafana-server

Kiểm tra trạng thái của dịch vụ:

  • sudo systemctl status grafana-server

Giống như trước đây, trạng thái sẽ đọc active (running) .

Đến đây, bạn đã cấu hình đầy đủ Grafana để cho phép các thành viên trong tổ chức GitHub của bạn đăng ký và sử dụng cài đặt Grafana của bạn.

Kết luận

Trong hướng dẫn này, bạn đã cài đặt, cấu hình và bảo mật Grafana, đồng thời bạn cũng học cách cho phép các thành viên trong tổ chức của bạn xác thực thông qua GitHub.

Để mở rộng cài đặt Grafana hiện tại của bạn, hãy xem danh sách các trang tổng quan chính thức và do cộng đồng xây dựng . Để tìm hiểu thêm về cách sử dụng Grafana nói chung, hãy xem tài liệu Grafana chính thức hoặc xem các hướng dẫn giám sát khác của ta .


Tags:

Các tin liên quan

Cách nhúng một ứng dụng React vào WordPress trên Ubuntu 18.04
2019-08-27
Cách cài đặt và cấu hình Laravel với LEMP trên Ubuntu 18.04
2019-08-01
Cách triển khai và quản lý DNS của bạn bằng OctoDNS trên Ubuntu 18.04
2019-07-23
Cách thiết lập hệ thống bàn trợ giúp với OTRS trên Ubuntu 18.04
2019-06-28
Cách triển khai và quản lý DNS của bạn bằng DNSControl trên Ubuntu 18.04
2019-06-26
Cách cấu hình Cụm Galera với MariaDB trên server Ubuntu 18.04
2019-06-20
Cách backup thư mục lớn với Unison trên Ubuntu 18.04
2019-05-21
Cách tạo một cụm Kubernetes bằng Kubeadm trên Ubuntu 18.04
2019-04-24
Cách tạo một cụm Kubernetes bằng Kubeadm trên Ubuntu 16.04
2019-04-24
Cách tạo một cụm Kubernetes bằng Kubeadm trên Ubuntu 18.04
2019-04-24