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 : 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的更多相关文章
- zabbix监控之grafana
zabbix监控之grafana
- 部署zabbix 4.0 + grafana
不完整,仅供参考 Zabbix+grafana监控部署 基本环境 系统: CentOS Linux release 7.3.1611 Zabbix—server: Zabbix_agent: N ...
- 【附12】grafana配置文件
一.配置文件位置 /usr/local/opt/grafana/share/grafana/default.ini /usr/local/etc/grafana/grafana.ini 二.init格 ...
- zabbix 图形插件 Grafana的安装
看http://www.myexception.cn/software-testing/2008870.html 就好了.
- Grafana + Zabbix --- 部署分布式监控系统
阅读目录: 1. 关闭防火墙 2. 安装Zabbix下载源 3. ZabbixClient --- 安装zabbix-agent代理 4. ZabbixServer --- 安装zabbix-ser ...
- ubuntn18 docker zabbix+grafana安装和使用
在ubuntu docker inflxudb(安装 使用 备份 还原 以及python编码) telegraf Grafana我采用telegraf采集数据, 本文计划采用zabbix来才采集数据, ...
- Grafana +Zabbix 系列二
Grafana +Zabbix 系列二 Grafana 简介补充 Grafana自身并不存储数据,数据从其他地方获取.需要配置数据源 Grafana支持从Zabbix中获取数据 Grafana优化图形 ...
- 搭建zabbix+grafana监控
编写一件安装脚本 #!/bin/sh echo "\033[32;1m脚本作者:fage\033[0m" #sleep 10 zabbix_version=4.0.2 zabbix ...
- DevOps-ISC,CSS,Prometheus,Ansible ,Terraform,zabbix
https://www.terraform.io/ Terraform Use Infrastructure as Code to provision and manage any cloud, in ...
- CentOS下Zabbix安装部署及汉化
搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源 服务端: 1.安装开发软件包yum -y groupinstall "Development Tools&q ...
随机推荐
- SQL Server2008存储过程中函数的用法(举例)
USE 数据库 GO SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO CREATE function 函数名称 (@EmpID nvarcha ...
- 此方法显式使用的 CAS 策略已被 .NET Framework 弃用。若要出于兼容性原因而启用 CAS 策略,请使用 NetFx40_LegacySecurityPolicy 配置开关
使用DEV8.3winform控件,框架从.net2.0升级到4.0后,程序报错,调用的目标异常. 此方法显式使用的 CAS 策略已被 .NET Framework 弃用.若要出于兼容性原因而启用 C ...
- 【转载】 Sqlserver使用Left函数从最左边开始截取固定长度字符串
在Sqlserver数据库的字符串操作中,截取字符串是最常见的操作,sql server提供了3个常用截取字符串方法,LEFT().RIGHT().SUBSTRING(),如果从第一个字符即最左边位置 ...
- logback配置文件模板
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...
- AJAX with JSP and Servlet(代码)
欢迎任何形式的转载,但请务必注明出处. 本章内容来自YouTube需翻墙(点击进入视频学习) 服务器配置等可以参看我其他文章.注释等后续再加 效果图 结构 <body> <fie ...
- Qt定时器
PS: 本案例使用的是Qt 4.8.4版本,不同版本代码可能会有差异. 第一步: // 重写此虚函数(继承自QObject) virtual void timerEvent(QTimerEvent* ...
- jmeter第一次使用
创建线程组 依次创建后,在http请求页面填入接口地址,参数,头信息,点击运行,然后查看结果树
- JAVA笔记整理(十),JAVA中的File
File类提供对针对目录和文件的读写改等一系列操作方法 创建: public class FileDemo01 { public static void main(String[] args) { t ...
- python之命名空间与作用域
一.命名空间与作用域 在命名空间中的名称能将任何python对象作为值,在不同的命名空间中相同的名称可以与不同的对象相关联.但是,如果存在名称解析协议,则多个命名空间可以一起工作来解析名称.也就是说, ...
- C++——多维数组动态开辟与释放
前言 在讨论多维数组动态开辟与释放之前,先说说什么是二维数组静态开辟与释放. 形如这种就是静态开辟内存,事先画好了内存大小 #include<iostream> using namespa ...