• 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';
    
  • 相关阅读:
    Vue2.5 旅游项目实例27 联调测试上线-项目打包上线
    Vue2.5 旅游项目实例26 联调测试上线-真机测试
    Vue2.5 旅游项目实例25 联调测试上线-项目前后端联调
    Vue2.5 旅游项目实例24 详情页-在项目中添加基础动画
    Vue2.5 旅游项目实例23 详情页 Ajax动态获取数据
    Vue2.5 旅游项目实例22 详情页 使用递归组件实现详情页列表
    HTML5标签embed详解
    MongoDB使用经验总结
    16个非常酷的jQuery插件
    kendo-ui的MVVM模式
  • 原文地址:https://www.cnblogs.com/chaizhenhua/p/13169900.html
Copyright © 2020-2023  润新知