Grafana 是一個開源資料視覺化和監控工具,它集成了來自 Prometheus、InfluxDB、Graphite 和 ElasticSearch 等來源的複雜數據。 Grafana 讓您可以為您的數據建立警報、通知和臨時過濾器,同時還可以通過內建的共享功能更輕鬆地與您的隊友進行協作。
在本教學中,您將安裝 Grafana 並使用 SSL 憑證和 Nginx 反向代理對其進行保護。 設置 Grafana 後,您可以繼續管理成員身份,從而更好地組織團隊權限。
使用 wget
下載 Grafana GPG 密鑰,然後將輸出通過管道傳輸到 apt-key
。 這會將密鑰添加到您的 APT 安裝的受信任密鑰列表中,這將允許您下載並驗證 GPG 簽名的 Grafana 套件:
$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
在此命令中,選項 -q
關閉 wget 的狀態更新消息,並且 -O
將您下載的文件輸出到終端。 這兩個選項確保只有下載文件的內容通過管道傳輸到 apt-key。
接下來,將 Grafana 儲存庫添加到您的 APT 源頭:
$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
更新您的 APT 快取以更新您的軟體套件列表:
$ sudo apt update
您現在可以繼續安裝:
$ sudo apt install grafana
安裝 Grafana 後,使用 systemctl 啟動 Grafana 服務器:
$ sudo systemctl start grafana-server
接下來,通過檢查服務的狀態來驗證 Grafana 是否正在運行:
$ sudo systemctl status grafana-server
您將收到與此類似的輸出:
Output
● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago
Docs: http://docs.grafana.org
Main PID: 15982 (grafana-server)
Tasks: 7 (limit: 1137)
...
此輸出包含有關 Grafana 程序的資訊,包括其狀態、主程序標識符 (PID) 等。 active (running) 表明程序運行正常。
最後,使服務在啟動時自動啟動 Grafana:
$ sudo systemctl enable grafana-server
您將收到以下輸出:
Output
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.
這確認了 systemd 已經建立必要的符號鏈接以自動啟動 Grafana。
Grafana 現在已安裝並可以使用。 接下來,您將使用反向代理和 SSL 憑證保護與 Grafana 的連接。
使用 SSL 憑證將通過加密與 Grafana 的連接來確保您的數據安全。 但是,要使用此連接,您首先需要將 Nginx 重新配置為 Grafana 的反向代理。
打開並編輯 Nginx 配置文件,您可以使用任何文本編輯器,比如 vim,以下示範中,我們將使用 nano:
$ sudo nano /etc/nginx/sites-available/your_domain
找到以下區塊:
...
location / {
try_files $uri $uri/ =404;
}
...
因為您已經將 Nginx 配置為通過 SSL 進行通信,並且所有到服務器的 Web 流量都已經通過 Nginx,所以您只需要告訴 Nginx 將所有請求轉發到 Grafana,預設情況下運行在端口 3000 上。
刪除此位置塊中現有的 try_files 行並將其替換為以下 proxy_pass 選項:
...
location / {
proxy_pass http://localhost:3000;
}
...
這會將代理映射到適當的端口。 完成後,按 CTRL+X、Y 保存並關閉文件,如果您使用的是 nano,請按 Enter。
現在,測試新設定以確保一切配置正確:
$ sudo nginx -t
您將收到以下輸出:
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
最後,通過重新加載 Nginx 來啟用更改:
$ sudo systemctl reload nginx
您現在可以通過將 Web 瀏覽器指向 https://your_domain 來訪問預設的 Grafana 登錄畫面。 如果您無法訪問 Grafana,請確認您的防火牆設置允許端口 443 上的流量,然後重新確認是否在安裝指示中遺漏了什麼。
通過加密與 Grafana 的連接,您現在可以實施額外的安全措施,首先是更改 Grafana 的預設管理憑證。
因為預設情況下每個 Grafana 安裝都使用相同的管理憑據,所以最好盡快更改您的登錄資訊。 在此步驟中,您將更新憑據以提高安全性。
首先從您的瀏覽器連接到 https://your_domain。 這將打開預設登錄畫面,您將在其中看到 Grafana 徽標、要求您輸入電子郵件或用戶名和密碼的表單、登錄按鈕等。
第一次登錄時預設帳密皆為 admin
,請在「電子郵件或用戶名」與密碼輸入欄中輸入 admin
,然後點擊登錄按鈕。
在下一個畫面裡,系統會要求您更改預設密碼以使您的帳戶更安全:
在新密碼和確認新密碼輸入欄中輸入您要開始使用的密碼。
從這裡,您可以點擊提交以保存新密碼或按跳過跳過此步驟。 如果跳過,下次登錄時會提示更改密碼。
為了提高 Grafana 設置的安全性,請點擊提交。 您將轉到 Welcome to Grafana 儀表板:
您現在已通過更改預設憑據以保護您的帳戶。 接下來,您將對 Grafana 配置進行更改,這樣任何人都無法在未經您許可的情況下建立新的 Grafana 帳戶。
Grafana 提供了允許訪問者為自己建立用戶帳戶和預覽儀表板而無需註冊的選項。 當 Grafana 無法通過網路訪問時,或者當它使用服務狀態等公開可用的數據時,您可能希望允許這些功能。 但是,當線上的 Grafana 處理敏感數據時,匿名訪問可能是一個安全問題。 要解決此問題,請對您的 Grafana 配置進行一些更改。
首先打開 Grafana 的主配置文件進行編輯:
$ sudo nano /etc/grafana/grafana.ini
在 [users]
標題下找到以下 allow_sign_up
指令:
...
[users]
# disable user signup / registration
;allow_sign_up = true
...
使用 true
啟用此指令會在登錄畫面上添加一個註冊按鈕,允許用戶註冊自己並訪問 Grafana。
使用 false
禁用此指令會刪除註冊按鈕並增強 Grafana 的安全性和隱私性。
通過刪除 ;
在該行的開頭取消此指令的註釋 ,然後將選項設置為 false
:
...
[users]
# disable user signup / registration
allow_sign_up = false
...
接下來,在 [auth.anonymous]
標題下找到以下啟用的指令:
...
[auth.anonymous]
# enable anonymous access
;enabled = false
...
將 enabled 設置為 true
使非註冊用戶可以訪問您的儀表板; 將此選項設置為 false
將儀表板訪問權限僅限於註冊用戶。
通過刪除 ;
在該行的開頭取消此指令的註釋,然後將選項設置為 false
。
...
[auth.anonymous]
# enable anonymous access
enabled = false
...
保存文件並退出文本編輯器。
要啟用更改,請重新啟動 Grafana:
$ sudo systemctl restart grafana-server
通過檢查 Grafana 的服務狀態來驗證一切是否正常:
$ sudo systemctl status grafana-server
和以前一樣,輸出將報告 Grafana 處於活動狀態(正在運行)。
現在,將您的瀏覽器指向 https://your_domain。 要返回註冊畫面,請將滑鼠移至螢幕左下方的頭像,然後點擊出現的登出選項。
登出後,請確認沒有「註冊」按鈕,並且如果不輸入登錄憑據就無法登錄。
至此,Grafana 已完成安全性的配置,可以安心使用了。
© Copyrights 從想像到創造. All Rights Reserved.