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 , Graphite và ElasticSearch . 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 và 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 :
- Một 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ằngufw
. - Tên domain đã đăng ký đầy đủ. Hướng dẫn này sử dụng
your_domain
xuyên suốt. Bạn có thể mua domain trên Namecheap , nhận một domain miễn phí trên Freenom hoặc sử dụng công ty đăng ký domain mà bạn chọn. Các bản ghi DNS sau được cài đặt cho server của bạn. Bạn có thể làm theo Cách cài đặt tên server với DigitalOcean để biết chi tiết về cách thêm chúng.
- Một bản ghi với
your_domain
trỏ đến địa chỉ IP công cộng của server của bạn. - Một bản ghi A với
www. your_domain
trỏ đến địa chỉ IP công cộng của server của bạn.
- Một bản ghi với
Cài đặt Nginx theo hướng dẫn Cách cài đặt Nginx trên Ubuntu 18.04 , bao gồm khối server cho domain của bạn.
Một khối server Nginx với Let's Encrypt được cấu hình , bạn có thể cài đặt khối này theo Cách bảo mật Nginx với Let's Encrypt trên Ubuntu 18.04 .
Theo tùy chọn, để cài đặt xác thực GitHub , bạn cần có tài khoản GitHub được liên kết với tổ chức .
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
và -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 grafanagrafana: 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-serverSynchronizing 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:
... 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.
... 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:
Outputnginx: 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 và mật khẩu , nút Đăng nhập và Quên password của bạn? liên kết.
Nhập admin
vào cả trường User và 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:
Nhập password bạn muốn bắt đầu sử dụng vào các trường Mật khẩu mới và Xá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 :
Đế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]
:
... [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
:
... [users] # disable user signup / registration allow_sign_up = false ...
Tiếp theo, tìm chỉ thị enabled
sau đây trong tiêu đề [auth.anonymous]
:
... [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
.
... [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.
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:
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àng và Bí 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àng và Bí 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_id
và client_secret
của ứng dụng OAuth của bạn.
- Đặt
enabled
vàallow_sign_up
thànhtrue
. Đ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ínhallow_sign_up
trong[users]
mà bạn đã thay đổi ở Bước 4 . - Đặt
client_id
vàclient_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:
... [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]
.
... [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.
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
:
... [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 .
Các tin liên quan
Cách nhúng một ứng dụng React vào WordPress trên Ubuntu 18.042019-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