• zabbix(12)使用Grafana


    一、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 3000:3000 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/

  • 相关阅读:
    tp框架实现ajax
    tp框架的增删改查
    tp框架获取常量信息、方法、命名空间
    tp框架,访问方式、空方法
    tp基础,文件存储路径
    缓存
    CMS系统存储路径
    Smarty模版引擎的原理
    php的empty(),trim(),strlen()方法
    PHP 流程管理
  • 原文地址:https://www.cnblogs.com/yjt1993/p/10905749.html
Copyright © 2020-2023  润新知