Grafana最新版本4.3.1安装(后端使用mysql)

环境

CentOS release 6.5 (Final) 64bit
zabbix_server (Zabbix) 3.0.3
grafana-4.3.1
mysql-5.6.21

一、安装grafana

安装方法有很多,官网有介绍:http://docs.grafana.org/installation/rpm/。我这里采用二进制安装方法。

1、下载二进制包,安装

[root@localhost src]# rpm -Uvh grafana-4.3.1-1.x86_64.rpm
warning: grafana-4.3.1-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
Preparing... ########################################### [100%]
1:grafana ########################################### [100%]
### NOT starting grafana-server by default on bootup, please execute
sudo /sbin/chkconfig --add grafana-server
### In order to start grafana-server, execute
sudo service grafana-server start
POSTTRANS: Running script

2、修改grafana.ini文件

参考连接http://docs.grafana.org/installation/configuration/

因为默认使用sqlite3,我这里把他替换成mysql,因为我对mysql熟悉些,而且考虑到以后备份、异常恢复啥的。
修改配置:database和session都替换成mysql数据库。

############################### Database ####################################
[database]
# You can configure the database connection by specifying type, host, name, user and password
# as seperate properties or as on string using the url propertie.
# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
password = grafana
################################# Session #################################
[session]
provider = mysql
provider_config = grafana:grafana@tcp(127.0.0.1:3306)/grafana
cookie_name = grafana_session
cookie_secure = false
session_life_time = 86400

3、建库

CREATE DATABASE grafana DEFAULT CHARACTER SET utf8;

GRANT ALL ON grafana.* TO grafana@'localhost' IDENTIFIED BY 'grafana' WITH GRANT OPTION;

FLUSH PRIVILEGES;

4、启动服务grafana-server

启动服务时,出了个小插曲。启动服务的时候,失败了。
[root@localhost ~]# /etc/init.d/grafana-server restart
Stopping Grafana Server: ...[FAILED]
Starting Grafana Server: ... [ OK ]
FAILED


解决过程:查log。
[root@localhost grafana]# tail -f /var/log/grafana/grafana.log
t=2017-06-22T11:26:03+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_user_email - v2"
t=2017-06-22T11:26:03+0800 lvl=info msg="Executing migration" logger=migrator id="copy data_source v1 to v2"
t=2017-06-22T11:26:03+0800 lvl=info msg="Executing migration" logger=migrator id="Drop old table user_v1"
t=2017-06-22T11:26:03+0800 lvl=info msg="Executing migration" logger=migrator id="Add column help_flags1 to user table"
t=2017-06-22T11:26:03+0800 lvl=info msg="Executing migration" logger=migrator id="Update user table charset"
t=2017-06-22T11:26:03+0800 lvl=info msg="Executing migration" logger=migrator id="create temp user table v1-7"
t=2017-06-22T11:26:03+0800 lvl=info msg="Executing migration" logger=migrator id="create index IDX_temp_user_email - v1-7"
t=2017-06-22T11:26:03+0800 lvl=eror msg="Executing migration failed" logger=migrator id="create index IDX_temp_user_email - v1-7" error="Error 1071: Specified key was too long; max key length is 767 bytes"
t=2017-06-22T11:26:03+0800 lvl=eror msg="Exec failed" logger=migrator error="Error 1071: Specified key was too long; max key length is 767 bytes" sql="CREATE INDEX `IDX_temp_user_email` ON `temp_user` (`email`);"
t=2017-06-22T11:26:03+0800 lvl=eror msg="Fail to initialize orm engine" logger=sqlstore error="Sqlstore::Migration failed err: Error 1071: Specified key was too long; max key length is 767 bytes\n"
根据提示,是在创建索引的时候,长度超过了767bytes导致。在mysql官网查看也可以看到:By default, the index key prefix length limit is 767 bytes.
参考连接https://dev.mysql.com/doc/refman/5.6/en/innodb-restrictions.html


解决办法:
1、修改my.cnf文件,增加如下变量
my.cnf
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_file_format_max=Barracuda
进入数据库,查看这几个变量的原始值:
mysql> show variables like 'innodb_file%';
+--------------------------+----------+
| Variable_name | Value |
+--------------------------+----------+
| innodb_file_format | Antelope |
| innodb_file_format_check | ON |
| innodb_file_format_max | Antelope |
| innodb_file_per_table | ON |
+--------------------------+----------+
4 rows in set (0.01 sec)

mysql> show variables like 'innodb_large%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | OFF |
+---------------------+-------+
1 row in set (0.00 sec)
修改my.cnf文件后,重启数据库。
2、修改grafana表的行格式。
temp_user ALTER TABLE temp_user ROW_FORMAT=DYNAMIC;
dashboard ALTER TABLE dashboard ROW_FORMAT=DYNAMIC;
alert ALTER TABLE alert ROW_FORMAT=DYNAMIC;
修改前:
mysql> SHOW TABLE STATUS like 'dashboard'\G
*************************** 1. row ***************************
Name: dashboard
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 21
Avg_row_length: 60074
Data_length: 1261568
Max_data_length: 0
Index_length: 65536
Data_free: 4194304
Auto_increment: 44
Create_time: 2016-07-13 11:07:01
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)

mysql> ALTER TABLE dashboard ROW_FORMAT=DYNAMIC;
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> ALTER TABLE dashboard ROW_FORMAT=DYNAMIC;
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0
修改后:
mysql> SHOW TABLE STATUS like 'dashboard'\G
*************************** 1. row ***************************
Name: dashboard
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 22
Avg_row_length: 72238
Data_length: 1589248
Max_data_length: 0
Index_length: 65536
Data_free: 0
Auto_increment: 44
Create_time: 2017-05-24 12:01:03
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options: row_format=DYNAMIC
Comment:
3、重启grafana服务,一切OK。

t=2017-06-22T11:39:21+0800 lvl=info msg="Starting Grafana" logger=main version=4.3.1 commit=befc15c compiled=2017-05-23T21:50:22+0800
t=2017-06-22T11:39:21+0800 lvl=info msg="Config loaded from" logger=settings file=/usr/share/grafana/conf/defaults.ini
t=2017-06-22T11:39:21+0800 lvl=info msg="Config loaded from" logger=settings file=/etc/grafana/grafana.ini
t=2017-06-22T11:39:21+0800 lvl=info msg="Config overriden from command line" logger=settings arg="default.paths.data=/var/lib/grafana"
t=2017-06-22T11:39:21+0800 lvl=info msg="Config overriden from command line" logger=settings arg="default.paths.logs=/var/log/grafana"
t=2017-06-22T11:39:21+0800 lvl=info msg="Config overriden from command line" logger=settings arg="default.paths.plugins=/var/lib/grafana/plugins"
t=2017-06-22T11:39:21+0800 lvl=info msg="Path Home" logger=settings path=/usr/share/grafana
t=2017-06-22T11:39:21+0800 lvl=info msg="Path Data" logger=settings path=/var/lib/grafana
t=2017-06-22T11:39:21+0800 lvl=info msg="Path Logs" logger=settings path=/var/log/grafana
t=2017-06-22T11:39:21+0800 lvl=info msg="Path Plugins" logger=settings path=/var/lib/grafana/plugins
t=2017-06-22T11:39:21+0800 lvl=info msg="Initializing DB" logger=sqlstore dbtype=mysql
t=2017-06-22T11:39:21+0800 lvl=info msg="Starting DB migration" logger=migrator
t=2017-06-22T11:39:21+0800 lvl=info msg="Executing migration" logger=migrator id="copy data account to org"
t=2017-06-22T11:39:21+0800 lvl=info msg="Skipping migration condition not fulfilled" logger=migrator id="copy data account to org"
t=2017-06-22T11:39:21+0800 lvl=info msg="Executing migration" logger=migrator id="copy data account_user to org_user"
t=2017-06-22T11:39:21+0800 lvl=info msg="Skipping migration condition not fulfilled" logger=migrator id="copy data account_user to org_user"
t=2017-06-22T11:39:21+0800 lvl=info msg="Executing migration" logger=migrator id="add index alert state"
t=2017-06-22T11:39:21+0800 lvl=info msg="Executing migration" logger=migrator id="add index alert dashboard_id"
t=2017-06-22T11:39:21+0800 lvl=info msg="Executing migration" logger=migrator id="create alert_notification table v1"
t=2017-06-22T11:39:21+0800 lvl=info msg="Executing migration" logger=migrator id="Add column is_default"
t=2017-06-22T11:39:22+0800 lvl=info msg="Executing migration" logger=migrator id="add index alert_notification org_id & name"
t=2017-06-22T11:39:22+0800 lvl=info msg="Executing migration" logger=migrator id="Update alert table charset"
t=2017-06-22T11:39:22+0800 lvl=info msg="Executing migration" logger=migrator id="Update alert_notification table charset"
t=2017-06-22T11:39:22+0800 lvl=info msg="Executing migration" logger=migrator id="Drop old annotation table v4"
t=2017-06-22T11:39:22+0800 lvl=info msg="Executing migration" logger=migrator id="create annotation table v5"
t=2017-06-22T11:39:23+0800 lvl=info msg="Executing migration" logger=migrator id="add index annotation 0 v3"
t=2017-06-22T11:39:23+0800 lvl=info msg="Executing migration" logger=migrator id="add index annotation 1 v3"
t=2017-06-22T11:39:23+0800 lvl=info msg="Executing migration" logger=migrator id="add index annotation 2 v3"
t=2017-06-22T11:39:23+0800 lvl=info msg="Executing migration" logger=migrator id="add index annotation 3 v3"
t=2017-06-22T11:39:23+0800 lvl=info msg="Executing migration" logger=migrator id="add index annotation 4 v3"
t=2017-06-22T11:39:23+0800 lvl=info msg="Executing migration" logger=migrator id="Update annotation table charset"
t=2017-06-22T11:39:24+0800 lvl=info msg="Executing migration" logger=migrator id="Add column region_id to annotation table"
t=2017-06-22T11:39:24+0800 lvl=info msg="Executing migration" logger=migrator id="create test_data table"
t=2017-06-22T11:39:25+0800 lvl=info msg="Created default admin user: admin"
t=2017-06-22T11:39:25+0800 lvl=info msg="Starting plugin search" logger=plugins
t=2017-06-22T11:39:25+0800 lvl=warn msg="Plugin dir does not exist" logger=plugins dir=/var/lib/grafana/plugins
t=2017-06-22T11:39:25+0800 lvl=info msg="Plugin dir created" logger=plugins dir=/var/lib/grafana/plugins
t=2017-06-22T11:39:25+0800 lvl=info msg="Initializing Alerting" logger=alerting.engine
t=2017-06-22T11:39:25+0800 lvl=info msg="Initializing CleanUpService" logger=cleanup
t=2017-06-22T11:39:25+0800 lvl=info msg="Initializing Stream Manager"
t=2017-06-22T11:39:25+0800 lvl=info msg="Initializing HTTP Server" logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket=

5、打开主页

PS:本文纯属记录个人实践经历,如有问题,可随时联系我。QQ505711559

posted @ 2017-06-22 14:57  skyflask  阅读(2816)  评论(2编辑  收藏  举报