CentOS 7中安装和配置Grafana

Grafana是什么?

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:

  1. 展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
  2. 数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
  3. 通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
  4. 混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
  5. 注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
  6. 过滤器: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
2
3
4
5
6
7
8
9
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
进行安装
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
2
3
4
cd /data2/software/

wget https://dl.grafana.com/oss/release/grafana-6.2.5.linux-amd64.tar.gz
tar -zxvf grafana-6.2.5.linux-amd64.tar.gz
添加执行用户
1
useradd -rs /bin/false grafana
配置执行目录及权限
1
2
mv grafana-6.2.5.linux-amd64 /usr/local/grafana
chown -R grafana:grafana /usr/local/grafana
创建系统服务
1
vim /etc/systemd/system/grafana-server.service

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Grafana Server
After=network.target

[Service]
User=grafana
Group=grafana
Type=notify
ExecStart=/usr/local/grafana/bin/grafana-server -homepath /usr/local/grafana

[Install]
WantedBy=multi-user.target

保存退出, 执行reload命令属性服务配置

1
systemctl deamon-reload

创建一个存储grafana的MySQL数据库

grafana默认是使用sqlite3作为数据存储的载体,我们这里将其替换为我们熟悉的mysql,方便后期运维等。

创建数据库及执行用户
1
2
3
4
5
6
7
8
9
10
11
12
# 登录mysql命令行
mysql -uroot -p
# 创建数据库
create database grafana default character set utf8;
# 删除用户及权限
drop user grafana@'localhost';
# 创建用户
create user grafana@'localhost' IDENTIFIED by '123456';
# 设置权限
GRANT ALL ON grafana.* TO grafana@'localhost' WITH GRANT option;
# 刷新权限
flush PRIVILEGES;

这里要注意一下,因为我们的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
2
3
4
5
6
7
8
9
10
11
12
13
...
[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 = 127.0.0.1:3306
name = grafana
user = grafana
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password =123456
...

保存退出。

安装额外的字体文件

1
yum install fontconfig
1
yum install freetype*
1
yum install urw-fonts

启动Grafana服务

先检查服务状态,如果服务没有启动,则使用命令自己启动,并设置开机自动启动。

1
2
3
4
5
systemctl status grafana-server   # 查看服务状态

systemctl start grafana-server # 启动服务

systemctl enable grafana-server # 开机自启动

修改防火墙设置

如果有开启防火墙服务,这需要将3000端口开放,执行以下命令即可:

1
2
firewall-cmd --zone=public --add-port=3000/tcp --permanent   # 开启端口
firewall-cmd --reload # reload

浏览页面

如果服务正常的话,打开浏览器,输入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。

参考资料