2024/06/06

Graphite APT安裝心得

最近嘗試監控Proxmox VE Node所以花了一點時間去弄Graphite的安裝方式,結果Graphite官方文件的安裝說明簡略到不行。最終總算成功了。

安裝流程可以參考 https://luppeng.wordpress.com/2023/04/15/install-and-setup-graphite-on-ubuntu-server-22-04-via-apt-repository/ 的說明。

安裝環境

OS: Ubuntu 22.04

Web Server: Nginx

Python: 3.10


1. 系統更新到最新

apt update -y && apt upgrade -y


2. 安裝相關套件

apt install nano wget curl unzip -y

3. Graphite , Nginx, uWSGI安裝

apt install graphite-web graphite-carbon graphite-api nginx-full uwsgi uwsgi-plugins-all -y 

4. 設定Carbon-Cache

     這部份參照上方說明網站的Step 3即可

5. 建立Graphite Web的database

     這部份同樣參照說明網站的Step 5即可 

6. Graphite Web的設定檔

    這邊是參造說明網站的Step 6,可以用下面的指令產生SECRET_KEY

python3 -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'

    免得啟用後會一直跳WARNING洗LOG,所以還是把KEY加上比較好。

    接著是依據Step 7做一個symbol link放到Graphie Web Python Application的實際位置

ln -s /etc/graphite/local_settings.py /usr/lib/python3/dist-packages/graphite/local_settings.py

  7. nginx的設定

      這邊直接參考 graphite官方的即可

server {
    listen 80;
    access_log /var/log/nginx/graphite_access_log;
    error_log /var/log/nginx/graphite_error_log; 
    location /static/ {
        alias /usr/share/graphite-web/static/;
    }
    location / {
        include uwsgi_params;
        uwsgi_pass localhost:8080;
    }
}

      官方的沒有把log檔獨立開來,這邊把他獨立出來了。 然後static對應的目錄也有異動。

8. uWSGI的設定

    這邊是Graphite官方完全沒講到的部份,給的範例也不適用於APT的安裝方式。

    APT安裝的uwsgi的設定檔都會放在 /etc/uwsgi目錄下。

    目錄結構同nginx會有一個apps-available跟apps-enabled。設定檔要放在apps-available下,然後到apps-enabled做symbol link

    # /etc/uwsgi/apps-available/graphite.ini

[uwsgi]
processes = 4
master = true
socket = localhost:8080
gid = _graphite
uid = _graphite
wsgi-file = /usr/share/graphite-web/graphite.wsgi
plugins-dir = /usr/lib/uwsgi
plugins = python310
      這邊要注意,設定檔的副檔名INI不可以省略,不然會被直接略過無視,
      
9. Graphite Web 後續
      一樣參考說明網站的 Step 8以後的步驟。Step 11.2會把Django的admin界面做symbol link到/usr/share/graphite-web/static/admin
10. 大功告成
      成功的話就會有下面的畫面
    如果出現502 Bad Gateway,就是uWSGI沒設定好。

      

沒有留言: