grafana部署高可用架构

为了获得高可用性的服务,需要对单台部署grafana的服务器进行扩充。

grafana_high_availability
图片引自grafana文档

这个过程中需要做两件事:

  • 配置一个公共数据库,使所有的grafana服务器可以将配置写入公共数据库中而不是存在本地;
  • 选用一个会话存储方案,这一步可以通过让负载均衡启用会话保持功能解决

数据库配置

grafana为数据库提供多种可选方案,包括:mysql,postgresql,sqlite3(default)。
配置文件为:

vi /etc/grafana/grafana.ini

配置项为database部分:

# You can configure the database connection by specifying type, host, name, user and password
# as separate properties or as on string using the url properties.

# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql                 ;数据库类型
host = www.url.com           ;数据库域名
name = grafana_configure     ;数据库名称
user = admin                 ;数据库用户名
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = admin_password    ;数据库用户密码

# Use either URL or the previous fields to configure the database
# Example: mysql://user:secret@host:port/database
;url =

# For "postgres" only, either "disable", "require" or "verify-full"
;ssl_mode = disable

"/etc/grafana/grafana.ini" 487L, 15112C written

仅需要为grafana开辟一个数据库即可,数据表和字段将在用户新建一个dashboard后自动写入。

会话策略

grafana支持将回话保存在磁盘/数据库中,这两种保存方法对应着两种策略:会话保持和无状态会话。

  • 会话保持
    配合负载均衡,将同一用户的请求转发到相同的服务器上。这样工作量最小,但是也会出现某台服务器负载较其他服务器更高的情况。
  • 无状态回话
    grafana将用户的会话保存在数据库中,这样同一用户的会话也将会被分发到各个服务器中处理,这种方式需要在数据库中提前预设一张数据表,在grafana.ini中的session部分有关于此项的配置信息。

方案步骤

  • 新建一个数据库,为grafana新建可操作用户
  • 部署N台grafana服务器,修改各服务器的grafana.ini文件,写入数据库相关配置信息,重启grafana-server。
  • 将配置好的grafana服务器挂载到负载均衡中,开启会话保持
  • 访问负载均衡的IP,获得高可用的grafana服务
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。 5.Grafana:监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值