grafana集群配置


今天一直在折騰grafana的集群配置,過程中也遇到了些許的坑,但總算是趟出來了,記錄下來,希望能幫助大家少走寫彎路。

我這里使用三個grafana容器來做集群,三個容器全部讀取一份grafana.ini配置(把配置目錄掛載出來就好了!)
grafana版本是: 6.4.2

其實grafana做集群需要解決的問題也就是三個,也都及其容易解決:

   1、數據存儲問題:grafana默認使用sqlite3數據庫,數據文件存儲在本地,顯然不適合做多節點共享。

   2、會話保持問題:默認session是存儲在本地的,因此集群需要解決多個grafana節點的session問題,否則可能會出現頻繁登錄問題。

   3、入口的slb調度問題。

對於上面的三個問題我們一一解決:

1、數據存儲統一使用mysql數據庫:
三個grafana節點的配置文件[database]修改成mysql信息,(由於我使用的是同一機器上的三個容器,配置了他們讀取同一份配置,因此我只需要一份配置即可)

    vim /etc/grafana/grafana.ini
    
    ......
    
    [database]
    type = mysql
    host = 127.0.0.1:3306   #mysql地址
    name = grafana            #數據庫名
    user = grafana_user      #數據庫用戶名
    password = grafana_password      #數據庫密碼
    ......

2、會話保持我這里仍然選擇用mysql數據庫來保存session信息,因為不想grafana做的太過復雜

我是用的grafana版本是6.4.2,6.2及以上版本的grafana session配置改成了在[remote_cache]模塊下配置,
6.2版本以下是在 [session] 模塊下配置,6.2以下配置完數據庫信息之后還需要手動創建session表,但6.2以上的版本無需手動建表。

[remote_cache]
type = database
#username:password@tcp(127.0.0.1:3306)/dbname
connstr = grafana:Z3JhZm@tcp(10.10.10.88:3306)/grafana

3、訪問入口問題
前面的訪問入口,我這里用nginx來做反向代理,具體配置如下: nginx代理grafana的配置可以參考
https://www.cnblogs.com/wurijie/p/11109673.html

upstream GF {
    #使用ip_hash 實現會話保持;
	ip_hash;
	server 172.18.11.221:3000;
	server 172.18.11.221:3001;
	server 172.18.11.221:3002;
}
server {
    listen       80;
    server_name  test1.mockuai.net;

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 30s;
    proxy_read_timeout 30s;

    #這個localtion是用來跳轉默認頁面的,目的在於提升訪問體驗
    location / {
        rewrite (.*) http://$host/grafana;
    }

    #這里能實現跳轉到grafana還需要在grafana的配置文件里配些東西,參見https://www.cnblogs.com/wurijie/p/11109673.html
    location /grafana/ {
     	proxy_pass http://GF/;  #結尾的“/” 千萬不能少哦!
    }
    #這個local是我用來跳轉prometheus的,你們可以忽略。我也不想刪它。
    location /prometheus/ {
        proxy_pass http://172.18.123.11:9090/prometheus/;
    }
}

然后在mysql中創建grafana數據並授權訪問即可

mysql >>> create database grafana character set utf8mb4;
mysql >>> grant all on grafana.* to grafana_user@'%' by identified 'grafana_password';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM