Grafana是什么?
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
- 展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
- 数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
- 通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
- 混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
- 注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
- 过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
grafana提供了一个在新的demo,可以打开查看其强大的功能。 https://play.grafana.org
Grafana安装
本小节我们就开始进入grafana的安装和配置,下面我们就按步骤来介绍如何在CentOS系统中安装grafana服务。
基础准备
关闭SELinux
1 | getenforce |
如果返回是enabled,需要修改SELinux的配置,禁用SELinux
1 | vim /etc/sysconfig/selinux |
将SELINUX=enforcing
设置为SELINUX=disabled
, 然后重启系统。
grafana提供了yum包,所以我们有两种方法进行安装,下面我们分别来介绍。
透过YUM Repository安装
创建一个repo文件
1 | vim /etc/yum.repos.d/grafana.repo |
添加如以下内容:
1 | [grafana] |
进行安装
1 | yum install grafana -y |
这个yum包其实帮我们做了很多事情:
- 在
/usr/sbin/grafana-server
中安装二进制包。 - 复制
init.d
脚本到/etc/init.d/grafana-server
目录 - 环境变量文件到
/etc/syscofnig/grafana-server
- 复制配置文件到
/etc/grafana/grafana.ini
- 安装系统服务
grafana-server.service
(如果systemd服务可用的话) - 默认情况下grafana的日志文件位置为
/var/log/grafana/grafana.log
- 默认配置的sqlite3数据库:
/var/lib/grafana/grafana.db
透过二进制包安装
二进制安装会比较麻烦,建议还是使用yum包安装如果网络允许的话。
下载安装包
1 | cd /data2/software/ |
添加执行用户
1 | useradd -rs /bin/false grafana |
配置执行目录及权限
1 | mv grafana-6.2.5.linux-amd64 /usr/local/grafana |
创建系统服务
1 | vim /etc/systemd/system/grafana-server.service |
内容如下:
1 | [Unit] |
保存退出, 执行reload命令属性服务配置
1 | systemctl deamon-reload |
创建一个存储grafana的MySQL数据库
grafana默认是使用sqlite3作为数据存储的载体,我们这里将其替换为我们熟悉的mysql,方便后期运维等。
创建数据库及执行用户
1 | 登录mysql命令行 |
这里要注意一下,因为我们的mysql与grafana安装在同一台机器,所以可以之设置localhost的权限即可。当我们的grafana和mysql在不同节点时,可以设置grafana所以机器的权限或
grant to grafana@'%'
。
1
2
3
4
5 # 创建用户
create user grafana@'%' IDENTIFIED by '123456';
# 设置权限
GRANT ALL ON grafana.* TO grafana@'%' WITH GRANT option;
更改grafana配置文件
yum安装时:
1 | vi /etc/grafana/grafana.ini |
二进制安装:
1 | vi /usr/local/grafana/conf/default.ini |
更新database配置节的内容,更新存储类型及设定。
;
是grafana配置文件注释的语法,具体额可以参考https://grafana.com/docs/installation/configuration/。
1 | ... |
保存退出。
安装额外的字体文件
1 | yum install fontconfig |
1 | yum install freetype* |
1 | yum install urw-fonts |
启动Grafana服务
先检查服务状态,如果服务没有启动,则使用命令自己启动,并设置开机自动启动。
1 | systemctl status grafana-server # 查看服务状态 |
修改防火墙设置
如果有开启防火墙服务,这需要将3000端口开放,执行以下命令即可:
1 | firewall-cmd --zone=public --add-port=3000/tcp --permanent # 开启端口 |
浏览页面
如果服务正常的话,打开浏览器,输入http://192.168.56.2:3000
应该就可以看到相应的页面里。
默认用户名和密码都是
admin
, 第一次登陆需要修改默认密码,这里我们将密码改为123456
至此,我们就成功安装了grafana服务,下面我们来介绍如何配置数据源。
配置数据源
grafana支持很多数据源,我们可以登录系统后查看支持的数据源列表:
基本上常规的数据源都支持,通常我们用的比较多基本都有了,下面我就拿prometheus作为例子介绍如何在grafana中集成prometheus进行数据展示。
Prometheus
添加配置数据源
登录grafana, 打开http://192.168.56.2:3000/datasources
,或点击配置=》数据源配置,进入数据源配置选项页,点击Add data source
按钮。
按照之前我们安装的prometheus服务,进行如下配置,点击Save&Test。
配置Dashboard
我们之前在安装prometheus服务时,以及安装了node exporter探测器,这里我们就配置一个dashboard来展示我们收集到的服务器数据。当然,如果我们从头去配置费时费力,还不一定效果好,庆幸的是grafana dashboard支持模板导入功能,而且已经针对特定的探测器提供了比较完善的dashboard模板,我们只要下载下来导入即可。
针对Node Exporter数据,有一个叫Node Exporter Full的模板,我们只要下载即可,下载地址如下:
1 | https://grafana.com/grafana/dashboards/1860 |
Dashboards模板仓库有很多大家共享出来的dashboard模板,可以直接下载使用。
导入模板
点击import dashboard
, 选择我们前面下载好的模板文件,并进行必要的参数设置(dashboard名称,prometheus数据源),完成后点击Import
即可
这样,我们就添加好了prometheus数据源,并配置了一个grafana dashboard。