部署Grafana+MySQL+Nginx高可用负载集群

一、前期准备:
共四台机器(我所处的服务环境并发量很小,大概TPS2000+,所以我选择的架构是一台MySQL+二台grafana集群+一台nginx做负载均衡。也可以给grafana多加几台,并且更换后端负载均衡方式,比如配置会话保持,实现更高并发环境下的负载),一台MySQL机器,作为双grafana集群的负载均衡库。

主体架构如下:
部署Grafana+MySQL+Nginx高可用负载集群

二、grafana集群搭建:

配置grafana.ini或者default.ini配置文件(版本不一样配置文件和所处位置会不同,这个没关系):

我已经标注出必须需要修改的几个点,其他的有特殊需求可以进行深入更改,我只是保证可以正常启动和负载使用:
部署Grafana+MySQL+Nginx高可用负载集群
部署Grafana+MySQL+Nginx高可用负载集群
部署Grafana+MySQL+Nginx高可用负载集群
其他非必要参数也可进行更改,例如
[auth.anonymous]:匿名认证部分
[security]:安全保证部分等

三、MySQL数据库配置:

登录,建grafana库,授权,并且刷新权限(注意这个库名需要和grafana配置文件中的[database]配置项的名称一致):
部署Grafana+MySQL+Nginx高可用负载集群

四、nginx负载均衡部署:

(调用upstream模块实现负载均衡,要提前装和编译一下此模块)
nginx.conf配置文件如下:

http {
upstream mdash {
server 192.168.138.136:3000 weight=10 fail_timeout=10s; #grafana1的ip
server 192.168.138.137:3000 weight=10 fail_timeout=10s; #grafana2的ip
keepalive 65;
}
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;

location {
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_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_next_upstream http_500 http_502 error timeout invalid_header http_503;
}
}
}

五、运行服务:

1、在各个机器上启动服务:

启动MySQL:systemctl restart mysqld

启动nginx:nginx -s reload

启动grafana集群(其他grafana机器同理):
部署Grafana+MySQL+Nginx高可用负载集群
最好使用nohup ./grafana-server start & 来后台启动,要不然每次都需要手动启。

2、最后进行界面展示:
部署Grafana+MySQL+Nginx高可用负载集群

六、总结:

1、注意:grafana默认用户和密码都是admin/admin,如果要修改密码,有两种方式:

第一(更好理解):使用grafana-cli,即客户端进行密码修改:
在本地机器上运行:./grafana-cli admin reset-admin-password newpassword,即可更改。

第二(比较复杂):本地机器上查找grafana.db文件,重新加载数据库文件,再在配置文件中进行密码还原。

2、配置完grafana和MySQL后可以先测试一下,第一是grafana能不能起来,第二是用ss或者netstat命令查看MySQL的3306或者其他端口占用情况,最好使用默认的3306端口,不要进行修改,有时会有报错信息,或者服务中途瘫痪。