grafana集群配置

Posted chaizhenhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

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‘;




以上是关于grafana集群配置的主要内容,如果未能解决你的问题,请参考以下文章

更新 Grafana 配置文件以配置自定义 SMTP 设置

更新Grafana配置文件以配置自定义SMTP设置

使用 grafana 访问远程 kubernetes 集群

基于k8s集群部署prometheus监控etcd

从 Azure kubernetes 集群中托管的 grafana 发送电子邮件警报

如何从代码在 Grafana 中配置 Cloudflare 应用程序?