Grafana 安装使用

Grafana 安装使用

官方网址:https://grafana.com/

官方文档:http://docs.grafana.org/

安装 grafana

基于 RPM 的系统(CentOS,Fedora,OpenSuse,RedHat)

最新稳定版 CentOS / Fedora / OpenSuse / Redhat Linux
grafana-4.4.3 (x86-64 rpm) :https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm

直接使用 yum 安装:

yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm

或者使用 rpm 方式安装:( CentOS / Fedora / Redhat)

$ wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm
$ sudo yum install initscripts fontconfig
$ sudo rpm -Uvh grafana-4.4.3-1.x86_64.rpm

通过yum源方式安装:

vim /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

yum install grafana

安装包信息:

二进制文件: /usr/sbin/grafana-server
init.d 脚本: /etc/init.d/grafana-server
环境变量文件: /etc/sysconfig/grafana-server
配置文件: /etc/grafana/grafana.ini
启动项: grafana-server.service
日志文件:/var/log/grafana/grafana.log
默认配置的sqlite3数据库:/var/lib/grafana/grafana.db

启动方式:

脚本启动

service grafana-server start

以 grafana 用户启动 grafana 进程,grafana 用户是在安装过程中自动创建的。默认http端口:3000,默认用户和用户组是 admin

通过 systemd 启动

systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server

systemctl enable grafana-server.service

环境配置文件:

systemd 和 init.d 脚本启动都是加载的 /etc/sysconfig/grafana-server 文件。
可以在 /etc/sysconfig/grafana-server 文件中修改日志目录,数据目录和其他一些环境变量。

日志记录:

默认情况日志记录到 /var/log/grafana 文件。

数据库:

默认配置指定的数据库 sqlite3 在 /var/lib/grafana/grafana.db 。升级之前记得备份。
也可以用 mysql 或者 postgres,详细配置参考:http://docs.grafana.org/installation/configuration/#database 或者后面的介绍的配置方法。

配置文件:

配置文件存放在 /etc/grafana/grafana.ini ,详细的配置选项参考:http://docs.grafana.org/installation/configuration/

添加数据源:

Graphite
InfluxDB
OpenTSDB
Prometheus

服务器端图形渲染:

服务器端映像(png)呈现是一个可选的特性,但在共享可视化时非常有用,例如在警报通知中。
如果图像缺少文本,请确保已经安装了字体包

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

管理

配置:

grafana 后端有许多配置选项,可以在一个配置文件或环境变量中指定。
ini 配置文件以分号为注释 ;
默认配置文件路径:$WORKING_DIR/conf/defaults.ini
自定义配置文件:$WORKING/conf/custom.ini
自定义配置文件路径可以使用 --config 参数覆盖

注意:使用 rpm或者 deb 方式安装的,配置文件默认在 /etc/grafana/grafana.ini
这个路径是由 init.d 脚本 --config 参数指定的。

使用环境变量

下面列出的配置文件中的选项都可以被环境变量覆盖,语法:

GF_<SectionName>_<KeyName>

配置文件选项:
# default section
instance_name = ${HOSTNAME}

[security]
admin_user = admin

[auth.google]
client_secret = 0ldS3cretKey

环境变量替换:
export GF_DEFAULT_INSTANCE_NAME=my-instance
export GF_SECURITY_ADMIN_USER=true
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey

[paths] 选项

数据,日志等文件的保存路径

使用

基本概念

本文件“自下而上”介绍Grafana的基本概念,可以作为熟悉核心功能的起点。

数据源

Grafana支持许多不同的时间序列数据(数据源)存储后端。每个数据源都有一个特定的查询编辑器,该特定的查询编辑器是针对特定数据源公开的功能和功能而定制的。

正式支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch。

每个数据源的查询语言和功能显然是非常不同的。您可以将来自多个数据源的数据合并到单个仪表板上,但每个面板都与属于特定组织的特定数据源相关联。

组织

Grafana支持多个组织,以支持各种部署模式,包括使用单个Grafana实例为多个潜在的不受信任的组织提供服务。

在很多情况下,Grafana将部署在一个单一的组织中。

每个组织都可以有一个或多个数据源。

所有仪表板由特定组织拥有。

注意:请务必记住,大多数度量数据库不提供任何类型的个人用户系列身份验证。因此,在Grafana中,数据源和仪表板可用于特定组织中的所有用户。

用户

用户是Grafana的命名帐户。用户可以属于一个或多个组织,并可以通过角色分配不同级别的权限。

Grafana支持各种各样的内部和外部方式供用户验证自己。这些包括从其自己的集成数据库,外部SQL服务器或外部LDAP服务器。

行是仪表板内的逻辑分隔符,用于将面板组合在一起。

行总是12“单位”宽。这些单位根据浏览器的水平分辨率自动缩放。您可以通过设置自己的宽度来控制一行中面板的相对宽度。

使用抽象单位,使Grafana在所有的屏幕上看起来都很棒,而且体积很小。

注意:使用MaxDataPoint功能,无论您的分辨率还是时间范围,Grafana都可以为您显示完美的数据点数量。
根据所选的模板变量,利用重复行功能动态创建或删除整个行(可以填充面板)。

可以通过单击行标题来折叠行。如果您保存了一个折叠的行的仪表板,它将保存在该状态,并且不会预加载这些图,直到该行被展开。

面板

面板是Grafana的基本可视化构建块。每个面板提供一个查询编辑器(取决于面板中选择的数据源),允许您通过使用查询编辑器提取完美的可视化以在Panel上显示
每个Panel都有各种各样的造型和格式化选项,让您创建完美的图片。

面板可以在仪表板上拖放并重新排列。他们也可以调整大小。
目前有四种面板类型:Graph,Singlestat,Dashlist,Table和Text。
像“ 图形”面板的面板允许您根据需要绘制出许多指标和系列。像Singlestat这样的其他面板需要将单个查询减少到单个数字。Dashlist和Text是不连接到任何数据源的特殊面板。

通过在面板配置中使用Dashboard Templating变量字符串(包括通过查询编辑器配置的数据源的查询),可以使面板更具动态性。
利用重复面板功能,根据所选择的模板化变量动态创建或删除面板。

面板上的时间范围通常是仪表板时间选择器中设置的时间范围,但可以通过使用面板特定时间覆盖来覆盖。

面板(或整个仪表板)可以通过各种方式轻松共享。您可以发送链接到有谁登录您的Grafana的人。您可以使用快照功能将当前正在查看的所有数据编码为静态和交互式JSON文档; 它比通过电子邮件屏幕截图好得多!

查询编辑器

查询编辑器公开了数据源的功能,并允许您查询其包含的指标。
使用查询编辑器在时间序列数据库中构建一个或多个查询(一个或多个系列)。该面板将立即更新,允许您实时有效地探索数据,并为该特定面板构建完美的查询。
您可以在查询本身的查询编辑器中使用模板变量。这提供了一种基于“仪表板”上选择的“模板化”变量动态探索数据的强大方法。

Grafana允许您在查询编辑器中按照它们所在的行来引用查询。如果您向图形添加第二个查询,则可以通过键入#A来引用第一个查询。这提供了一种简单而方便的方法来构建复合查询。

仪表板

仪表板是所有在一起的地方。仪表板可以被认为是由一组或多组组成并排列成一行或多行的组件。
仪表板的时间段可以由仪表板右上方的仪表板时间选择器控制。

仪表板可以利用模板来使它们更具动态性和交互性。
仪表板可以使用注释来显示面板上的事件数据。这可以帮助将Panel中的时间序列数据与其他事件相关联。
仪表板(或特定面板)可以通过各种方式轻松共享。您可以发送链接到有谁登录您的Grafana的人。您可以使用快照功能将当前正在查看的所有数据编码为静态和交互式JSON文档; 它比通过电子邮件屏幕截图好得多!

仪表板可以被标记,仪表板选择器可以快速,可搜索访问特定机构中的所有仪表板。

新变化

特性

图形面板

Grafana的主板简单地命名为Graph。它提供了非常丰富的图形选项

单击面板的标题会显示一个菜单。该edit选项为面板打开其他配置选项。

常规选项卡允许自定义面板的外观和菜单选项。

一般选项

Title - 仪表板上的面板标题
Span - 列中的面板宽度
Height - 面板内容高度(以像素为单位)

Drilldown / detail link 部分允许添加可以链接到其他仪表板或URL的面板的动态链接。

每个链接都有一个标题,一个类型和参数。链接可以是链接dashboard或absolute链接。如果是仪表板链接,则该dashboard值必须是仪表板的名称。如果是absolute链接,则URL是链接的URL。

params允许在链接中添加其他URL参数。格式是由name=value多个参数分隔的&。可以使用模板变量作为值添加$myvar。

当链接到使用模板变量的另一个仪表板时,可以使用var-myvar=value该模板变量将链接填充到所需的值。

度量

“度量”标签定义要呈现的系列数据和源。每个数据源提供不同的选项。

“轴”和“网格”选项卡控制轴,网格和图例的显示。

该Left Y和Right Y可以使用自定义的:

Unit - Y值的显示单位
Grid Max - 最大Y值。(默认为自动)
Grid Min - 最小Y值。(默认为自动)
Label - Y轴标签(默认为“”)
也可以通过取消选中相应的框来隐藏轴Show Axis。

X轴模式

有三个选项:

默认选项是Time,表示x轴表示时间,数据按时间分组(例如,按小时或分钟)。

该Series选项意味着数据按序列分组,而不是按时间分组。y轴仍然表示该值。

该Histogram选项将图形转换为直方图。直方图是一种将数字分成范围的条形图,通常称为桶或仓。较高的酒吧显示更多数据在该范围内。这里更详细地描述了直方图和水桶。

图例

通过选中Show复选框来隐藏图例。如果显示,可以通过选中Table复选框将其显示为值列表。使用Hide empty复选框可以从图例中隐藏没有值的系列。

图例值

附加值可以沿着图例名称显示: - Total- 从度量查询返回的所有值的总和- - 从度量查询Current返回的最后一个值 - Min- 从度量查询返回的所有值的最小值- - 从Max最大值返回的所有值度量查询 - Avg- 从度量查询返回的所有值的平均值 - Decimals- 控制为图例值显示的小数位数(以及图形悬停工具提示)

图例值由Grafana根据客户端计算,取决于您的度量标准查询使用的聚合或点合并类型。所有上述图例值都不能同时进行。例如,如果您绘制像请求/秒的速率,这可能是使用平均值作为聚合器,则图例中的总计不会代表请求的总数。这只是Grafana收到的所有数据点的总和。

阈值

阈值允许您向图形添加任意行或部分,以便更容易查看图表何时跨越特定阈值。

图表选项

Bar - 将值显示为条形图
Lines - 以线图显示值
Points - 显示值的点

单体组

Singlestat面板允许您显示SINGLE系列的一个主要摘要统计信息。它将系列减少为单个数字(通过查看系列中的最大值,最小值,平均值或值)。Singlestat还提供了对状态或面板背景进行着色的阈值。它也可以将单个数字转换为文本值,并显示该系列的sparkline摘要。

Singlestat面板配置

singlestat面板有一个普通的查询编辑器,可以让您定义精确的指标查询,如许多其他面板。通过“选项”选项卡,您可以访问特定于Singlestat的功能。

脚本化仪表板

如果您有许多公制名称以定义的模式更改(新服务器等),则不断创建新的仪表板是令人烦恼的。

使用脚本化的仪表板,您可以使用javascript动态创建仪表板。在文件夹grafana安装文件夹下public/dashboards/有一个名为的文件scripted.js。此文件包含脚本化仪表板的示例。您可以使用url访问它:http://grafana_url/dashboard/script/scripted.js?rows=3&name=myName

如果您打开scripted.js,您可以看到它如何从ARGS变量读取url参数,然后添加行和面板。

示例

var rows = 1;
var seriesName = 'argName';

if(!_.isUndefined(ARGS.rows)) {
  rows = parseInt(ARGS.rows, 10);
}

if(!_.isUndefined(ARGS.name)) {
  seriesName = ARGS.name;
}

for (var i = 0; i < rows; i++) {

  dashboard.rows.push({
    title: 'Scripted Graph ' + i,
    height: '300px',
    panels: [
      {
        title: 'Events',
        type: 'graph',
        span: 12,
        fill: 1,
        linewidth: 2,
        targets: [
          {
            'target': "randomWalk('" + seriesName + "')"
          },
          {
            'target': "randomWalk('random walk2')"
          }
        ],
      }
    ]
  });

}

return dashboard;

更多例子

您可以在public/dashboards/grafana安装目录中找到更多示例。

警报引擎和规则指南

警报仅在Grafana v4.0及更高版本中可用。

条件

目前唯一存在的条件类型是Query允许您指定查询字母,时间范围和聚合功能的条件。

查询条件示例

avg() OF query(A, 5m, now) IS BELOW 14

avg()控制每个系列的值如何减少到可与阈值进行比较的值。单击该功能将其更改为另一个聚合功能。
query(A, 5m, now)该字母定义要从“ 度量标准”选项卡执行什么查询。第二个参数定义了时间范围,5m, now意味着从现在到现在5分钟。您还10m, now-2m可以定义从现在开始的10分钟到现在的2分钟的时间范围。如果您想忽略最近2分钟的数据,这将非常有用。
IS BELOW 14定义阈值的类型和阈值。您可以点击IS BELOW更改阈值类型。

在警报规则中使用的查询不能包含任何模板变量。目前我们只支持AND和OR操作条件之间的连续执行。例如,我们按以下顺序有3个条件:condition:A(评估为:TRUE)OR条件:B(计算结果为:FALSE)AND条件:C(计算结果为:TRUE),结果将计算为(( TRUE或FALSE)AND TRUE)= TRUE。

我们计划在将来添加其他条件类型,例如Other Alert,您可以在其中包括另一个警报在您的条件下的状态,以及Time Of Day。

故障排除

测试规则
您可以做的第一级故障排除是按测试规则按钮。您将获得结果,您可以扩展到可以查看从查询返回的原始数据。

还可以通过检查grafana-server日志进行进一步的故障排除。如果它不是错误或由于某些原因,日志不会说任何您可以启用某些相关组件的调试日志记录。这是在Grafana的ini配置文件中完成的。

显示故障排除警报时可能相关的记录器的示例。

[log]
filters = alerting.scheduler:debug \
          alerting.engine:debug \
          alerting.resultHandler:debug \
          alerting.evalHandler:debug \
          alerting.evalContext:debug \
          alerting.extractor:debug \
          alerting.notifier:debug \
          alerting.notifier.slack:debug \
          alerting.notifier.pagerduty:debug \
          alerting.notifier.email:debug \
          alerting.notifier.webhook:debug \
          tsdb.graphite:debug \
          tsdb.prometheus:debug \
          tsdb.opentsdb:debug \
          tsdb.influxdb:debug \

警报通知

警报仅在Grafana v4.0及更高版本中可用。
当警报更改状态时,会发出通知。每个警报规则都可以有多个通知。但为了向警报规则添加通知,您首先需要添加和配置notification通道(可以是电子邮件,Pagerduty或其他集成)。这通过“通知通道”页面完成。

通知通道设置

警报通知通道
在“通知通道”页面上,点击New Channel按钮进入可以配置和设置新通知通道的页面。

您指定名称和类型,并键入特定选项。您还可以测试通知,以确保其正常工作和设置。

键盘快捷键

Grafana v4引入了一些功能强大的键盘快捷键。您现在可以通过鼠标悬停在面板上来对焦。专注于面板,您可以轻松点击e切换面板编辑模式,或v切换全屏模式。p r移除面板。p s打开共享模态。

点击?你的键盘打开快捷键帮助模态。

全球

g h 转到首页仪表板
g p 转到个人资料
s o 打开搜索
s s 用加星标过滤器打开搜索
s t 在标签视图中打开搜索
esc 退出编辑/设置视图
仪表板

mod+s 保存仪表板
mod+h 隐藏行控件
d r 刷新所有面板
d s 仪表板设置
d v 切换主动/查看模式
d k 切换报亭模式(隐藏顶部导航)
mod+o 切换共享图形十字准线
专注面板

e 切换面板编辑视图
v 切换面板全屏视图
p s 打开面板共享模态
p r 删除面板
聚焦行

r c 折叠行
r r 删除行
时间范围

t z 缩短时间范围
t 移动时间范围
t 向前移动时间范围

教程

在反向代理之后运行Grafana

应该直接让Grafana在逆向代理之后运行。但这里有一些您可能遇到的事情。

链接和重定向将不会正确呈现,除非您设置了server.domain设置。

[server]
domain = foo.bar
要使用子路径前http://foo.bar/grafana一定要包括/grafana在root_url结束。否则Grafana将无法正常运行。参见下面的例子

例子

以下是在反向代理之后运行Grafana的一些示例配置。

Grafana配置(ex http://foo.bar.com

[server]
domain = foo.bar

Nginx配置

server {
  listen 80;
  root /usr/share/nginx/www;
  index index.html index.htm;

  location / {
   proxy_pass http://localhost:3000/;
  }
}

子路径示例(http://foo.bar.com/grafana)

Grafana配置与子路径

[server]
domain = foo.bar
root_url = %(protocol)s://%(domain)s:/grafana

Nginx配置与子路径

server {
  listen 80;
  root /usr/share/nginx/www;
  index index.html index.htm;

  location /grafana/ {
   proxy_pass http://localhost:3000/;
  }
}

如何设置Grafana的高可用性

警报不支持高可用性。
设置Grafana的高可用性是相当简单的。归结为两件事:

对多个grafana实例使用共享数据库。
考虑如何存储用户会话。
配置多个服务器以使用相同的数据库

首先,您需要做的是在其他服务器上设置mysql或postgres,并配置Grafana以使用该数据库。您可以在grafana配置的[数据库]部分中找到这样做的配置。Grafana现在将把数据库中的所有长期数据都保留下来。还值得考虑如何设置数据库以实现高可用性,但不在本指南的范围之内。

用户会话

要考虑的第二件事是如何处理用户会话以及如何平衡服务器之间的负载。默认情况下,Grafana将用户会话存储在磁盘上,如果您sticky sessions在负载均衡器中使用,则可以正常工作。Grafana还支持将会话数据存储在数据库中,redis或memcache可以在您的负载平衡器中使用循环。如果您使用mysql / postgres进行会话存储,则首先需要一个表来存储会话数据。有关[sessions]的详细信息

对于Grafana本身,如果将会话存储在磁盘或数据库/ redis / memcache上,这并不重要。但是我们建议您将会话存储在redis / memcache中,因为它可以更容易地从组中添加/远程实例。

插件

安装插件

安装插件的最简单方法是使用与grafana捆绑在一起的CLI工具grafana-cli。在修改插件后进行任何修改之前,需要重新启动grafana-server。

Grafana插件目录

在Linux系统上,grafana-cli会假设grafana插件目录是/var/lib/grafana/plugins。可以通过指定-pluginsDir标志来覆盖grafana-cli将要操作的目录。在Windows系统上,必须为每个呼叫指定此参数。

Grafana-cli命令

列出可用的插件

grafana-cli plugins list-remote
安装最新版本的插件

grafana-cli plugins install
安装一个特定版本的插件

grafana-cli plugins install
列出已安装的插件

grafana-cli plugins ls

更新所有安装的插件

grafana-cli plugins update-all
更新一个插件

grafana-cli plugins update
删除一个插件

grafana-cli plugins remove

2017-9-1

posted @ 2017-09-01 14:06  Achxku  阅读(41207)  评论(0编辑  收藏  举报