一、Grafana介绍

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

1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;

2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;

4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;

5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;

6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

二、docker安装Grafana

#docker pull grafana/grafana  默认下载的是最新的Grafana版本
#docker run -d --name=grafana --restart=always -p : grafana/grafana 进入到docker容器,安装zabbix的插件
#docker exec -it grafana bash
获取可用插件列表

root@8cd54f1c4c17:/# grafana-cli plugins list-remote

root@8cd54f1c4c17:/# grafana-cli plugins install alexanderzobnin-zabbix-app

  

  打开浏览器,输入IP+端口,3000为Grafana的默认侦听端口。系统默认用户名和密码为admin/admin,第一次登陆系统会要求修改密码,修改密码后登陆。

三、Grafana的使用

(1)配置数据源:

解释:

HTTP这一项下面的URL填写zabbix的api,如果是docker安装的zabbix:http://IP/api_jsonrpc.php;如果不是使用docker安装的zabbix,这里应该这么写:http://IP/zabbix/api_jsonrpc.php

Username: 登录zabbix的用户名

Password:登录zabbix的密码

配置完成以后,测试是否可以连接zabbix

(2)创建Dashboards(仪表板)

设置仪表板

给这个仪表板起一个名字

(3)添加变量

  用过zabbix的人应该知道,一个zabbix服务器可能存在多个group(组),一个group下又可能存在多个host(主机),每个host下又可能有多个application(应用),每个application下有可能有多个item(监控项)。假设你要在grafana上看某个监控项的实时数据,就需要在grafana上配置该监控项的panel,那么这样一来可能会存在很多个监控项,比如我管的一台zabbix server上光一个host下监控项就有几百个,如果这几百个监控项每个都在grafana上配置一个panel,这绝对是一个非常折磨人的工作。还好grafana提供了一个Variables的功能,允许动态的修改panel中的参数,这样panel显示的内容也会随着参数的变化而变化。

要说明一点,这个Variables提供了参数功能,就相当于一个宏变量,这个宏变量的值是和datasource级联的(参数背后其实就是一个查询语句,数据源内容发生变化,利用该参数获取到的数据就会级联发生变化)。

下面解释一下各个参数的作用
Variable
name: 变量名,template的名字,比如我这里取名为group,到时候要使用这个变量名就用$group来调用。
type: 变量类型,变量类型有多种,其中query表示这个变量是一个查询语句,type也可以是datasource,datasource就表示该变量代表一个数据源,如果是datasource你可以用该变量修改整个DashBoard的数据源,变量类型还可以是时间间隔Interval等等。这里我们选择query。
label: 是对应下拉框的名称,默认就是变了名,选择默认即可。
hide: 有三个值,分别为空,label,variable。选择label,表示不显示下拉框的名字。选择variable表示隐藏该变量,该变量不会在DashBoard上方显示出来。默认选择为空,这里也选默认。

Query options
Data source: 数据源,不用多说。
Refresh: 何时去更新变量的值,变量的值是通过查询数据源获取到的,但是数据源本身也会发生变化,所以要时不时的去更新变量的值,这样数据源的改变才会在变量对应的下拉框中显示出来。Refresh有三个值可以选择,Never:永不更新。On Dashboard Load:在DashBoard加载时更新。On Time Range Change:这个还没弄明白怎么用。。此处,选择On Dashboard Load,当数据源发生更新是,刷新一下当前DashBoard,变量的值也会跟着发生更新。
Query:查询表达式,不同的数据源查询表达式都不同(这些可以到官网上查询),这里由于是要查询zabbix的groups信息,所以表达式为*。
Regex:正则表达式,用来对抓取到的数据进行过滤,这里默认不过滤。
Sort:排序,对下拉框中的变量值做排序,排序的方式挺多的,默认是disable,表示查询结果是怎样下拉框就怎样显示。此处选disable。

Selection Options
Multi-value:启用这个功能,变量的值就可以选择多个,具体表现在变量对应的下拉框中可以选多个值的组合。
Include All option:启用这个功能,变量下拉框中就多了一个all选项。
Custom all value:启用Include All option这个功能,才会出现Custom all value这个输入框,表示给all这个选项自定义一个值,all这个选项默认是所有值的组合,你也可以自定义,比如我自定义all为cpu五分钟平均负载,则选择all就代表cpu五分钟平均负载。
虽然选择组合值可以在一个panel里面查看多种监控数据,但是由于不同监控数据的数值大小格式都可能不一样,在一个图形里面格式很难兼容,这样就会出现问题,所以此处建议默认都不选。

Value groups/tags
组合标签,可以选择多个值组合在一起设置一个标签,这个功能还没弄明白,按照官网上的操作没效果,暂且忽略吧,反正没多大影响。

Preview of values (shows max 20)
前面都设置好之后,下方会显示前二十,由于我的groups只有一个zabbix agents,所以只显示了一个。

点击add,group这个template就创建好了。
按照这个方式再创建另外三个template(host,application,item)。另外三个的创建和group除了name,query不一样之外其它都一样。

其他三个的创建
host的创建:
  name: host query:{$group}{*}
application的创建:
  name: application query: {$group}{$host}{*}
item的创建:
  name: item query:{$group}{$host}{$application}{*}

(4)创建panel

解释:

Queries to:从哪里获取数据,默认是zabbix

Group:zabbix里面定义的主机组,上面使用了变量$group,表示所有的主机组

Host:zabbix里面的主机

Application:zabbix里面的应用,

Item:zabbix里面定义的监控项

比如,我这里想查询CPU一分钟内的平均负载:

这里定义标题,可以使用定义的变量

最终效果如下:

Grafana的基本使用:https://grafana.com/docs/tutorials/api_org_token_howto/

zabbix(12)使用Grafana的更多相关文章

  1. zabbix监控之grafana

    zabbix监控之grafana

  2. 部署zabbix 4.0 + grafana

    不完整,仅供参考 Zabbix+grafana监控部署 基本环境 系统: CentOS Linux release 7.3.1611 Zabbix—server:  Zabbix_agent:   N ...

  3. 【附12】grafana配置文件

    一.配置文件位置 /usr/local/opt/grafana/share/grafana/default.ini /usr/local/etc/grafana/grafana.ini 二.init格 ...

  4. zabbix 图形插件 Grafana的安装

    看http://www.myexception.cn/software-testing/2008870.html 就好了.

  5. Grafana + Zabbix --- 部署分布式监控系统

    阅读目录: 1. 关闭防火墙 2. 安装Zabbix下载源 3. ZabbixClient  --- 安装zabbix-agent代理 4. ZabbixServer --- 安装zabbix-ser ...

  6. ubuntn18 docker zabbix+grafana安装和使用

    在ubuntu docker inflxudb(安装 使用 备份 还原 以及python编码) telegraf Grafana我采用telegraf采集数据, 本文计划采用zabbix来才采集数据, ...

  7. Grafana +Zabbix 系列二

    Grafana +Zabbix 系列二 Grafana 简介补充 Grafana自身并不存储数据,数据从其他地方获取.需要配置数据源 Grafana支持从Zabbix中获取数据 Grafana优化图形 ...

  8. 搭建zabbix+grafana监控

    编写一件安装脚本 #!/bin/sh echo "\033[32;1m脚本作者:fage\033[0m" #sleep 10 zabbix_version=4.0.2 zabbix ...

  9. DevOps-ISC,CSS,Prometheus,Ansible ,Terraform,zabbix

    https://www.terraform.io/ Terraform Use Infrastructure as Code to provision and manage any cloud, in ...

  10. CentOS下Zabbix安装部署及汉化

    搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源 服务端: 1.安装开发软件包yum -y groupinstall "Development Tools&q ...

随机推荐

  1. C#倒计时关闭提示框

    前两天实现某个功能需要做一个提示框 并且能够自动关闭的,就从网上搜了一个能够自动关闭的提示框 ,但由于我需要的场景是不确定计时时间的,所以并没有使用到该窗体,但是我觉得可以留存备用 ,后边也把我 这种 ...

  2. python简单页面爬虫入门 BeautifulSoup实现

    本文可快速搭建爬虫环境,并实现简单页面解析 1.安装 python 下载地址:https://www.python.org/downloads/ 选择对应版本,常用版本有2.7.3.4 安装后,将安装 ...

  3. iOS CALayer总结——图层几何

    最近看了一下关于图层和动画的内容,所以写了一份总结,算是对这些内容的汇总吧,都是一些简单的基础知识,不知道大家都了不了解. 除了和用户的交互之外,图层的很多属性和视图基本上都是一样的,今天就先从CAL ...

  4. Ubuntu armhf 版本国内源

    Ubuntu armhf 版本国内源: deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted u ...

  5. kvm虚拟化环境的搭建

    首先搭建kvm的虚拟化环境,我选择的环境是在vmvare上的Centos 7的虚拟机,在该环境上搭建kvm的虚拟化环境 1:安装虚拟机(该过程自行安装) 2:操作系统环境的设置 (1)修改内核模式为兼 ...

  6. es6中的Object.assign

    在写一些插件的时候,我们会经常遇到所传参数需要合并默认参数,并覆盖相同参数的情况,在jQuery中我们可以使用$.extend(),在原生中要想使用得自己封装, 但自从es6出现了Object.ass ...

  7. jsx的本质

    jsx语法 1.所有html标签他都支持        <div></div> 2.大括号里面可以引入js变量 或者 表达式       {name || ''} 3.可以做判 ...

  8. 阿里云 centos7 安装mysql数据库

    环境:阿里云ECS服务器,系统为centos7.2 删除原来的数据库: centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下: [ ...

  9. tomcate环境搭建

    Tomcat 环境搭建 最近在工作之余,看到了一些 Tomcat 的基础资料,感觉蛮好.同时也回忆起自己刚毕业要参加工作那会对 Tomcat 也是各种资料各种查,实属不易.为此,针对最近整理的一些基础 ...

  10. HTML5 Web SQL 数据库

    呼和浩特seo:Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs. 如果你是一个 Web 后端程序员,应该 ...