致这个看脸的世界 — 高颜值监控绘图工具Grafana

这是最好的时代,也是最坏的时代,更是一个看脸的时代。

——查尔斯高 · 帅

颜值即真理,颜值即正义,在软件的世界也不例外。

今天给大家介绍一款高颜值的监控数据绘图工具,华丽的外表以及强大的数据展现功能保证让你对它一见钟情,快速爱上它!

---------------我是图很多的分割线------------

注:本文中引用图片均来源于软件的官方网站,更多美图欣赏请移步http://grafana.org/

曾经,我们的监控系统可能是长这样的:

(图片来源于软件的官方网站)

或者,长这样:

(图片来源于软件的官方网站)

今天我们要介绍的Grafana长这样:

(图片来源于软件的官方网站)

这样:

(图片来源于软件的官方网站)

这样:

(图片来源于软件的官方网站)

以及这样:

(图片来源于软件的官方网站)

下面就简单给大家介绍一下Grafana的一些强大的feature。

丰富的绘图功能

作为一个数据可视化工具最重要的当然是要有强大的绘图功能

- 点击、选择区域进行时间轴的zoom in及zoom out 方便快速选择时间区间

- 多Y轴

- 支持柱状图、折线图、点图、饼图、表格等多种图表

- 可以设置阈值、对数刻度

- Y轴多种单位(字节、毫秒等等)

- 全屏查看或者编辑图表

- 可以混合使用柱、线、点等方式绘图

- 可以通过界面或者http api导出任何图表为png图片格式

(图片来源于软件的官方网站)


强大的仪表盘(Dashboard)

- 轻松拖拽图表,改变行和图表的宽度

- 当图表数量众多的时候可以通过搜索标题(title)或者标签(tag)定位

- 模板化的仪表盘

- 脚本化的仪表盘,可以保存为Json文档,快速保存、复制

- 可以通过 HTTP API 进行创建和更新

- 多种多样的图表类型

(图片来源于软件的官方网站)

丰富的数据源支持

- Graphite

- InfluxDB

- Elasticsearch

- OpenTSDB

- CloudWatch

(图片来源于软件的官方网站)

模板变量

试想如果我们有成千上万的主机,每台主机又有成百上千的监控指标,那么我们要配置无数的Dashboard,变量功能极大方便了我们配置监控图表

- metric的查询中使用变量

- 图表标题使用变量

- 函数参数可以使用变量

- 可以通过URL来给变量赋值

(图片来源于软件的官方网站)

快速的时间范围选择

- 通过下拉按钮快速选择时间范围

- 支持本地时间和UTC时间

- 设置自动刷新时间间隔

- 复杂的日期选择,如最近x分钟、小时、天,昨天,上周的今天等等


丰富的插件(plugin)支持

Grafana.net提供了众多特色插件支持

(图片来源于软件的官方网站)
(图片来源于软件的官方网站)

Grafana可以用在任何需要数据可视化的地方,如果有一天老板需要你做一份漂亮的业务数据图表,你无需头疼用什么绘图库去开发,你要做的仅仅是将业务数据稍作加工存入Grafana支持的DataSource,点几下鼠标即可配制出一份完美的数据图表。

看到这里,各位看官有没有一点点心动呀? 光说不做不是笔者风格,下面来一起动动手,给各位看官演示一下使用docker环境快速(预计小于20分钟,取决于您的网速)搭建一个demo,来亲自体验一下grafana的魅力,后端的datasource(时序数据库)使用graphite。

Grafana实战演示

准备工作: 一台接入网络的笔记本,Mac或者Windows,Linux当然是最好了(笔者的办公电脑是Mac,所以就只演示Mac咯)。

Step 1: 安装基础软件,包括如下几个工具:

- Docker Engine, docker核心部分,包括docker 的服务端进程以及客户端工具

- Docker Machine ,可以让你在非linux操作系统上(例如Mac、Windows)借助VM工具来安装运行docker服务

- Docker Compose,一个用来定义和运行多个容器的管理工具

- VirtualBox. , 为Docker Machine提供虚机支持


在OSX上面可以使用homebrew来安装

$ brew install docker

$ brew install docker-machine

$ brew install docker-compose


但是本文推荐使用官方的集成工具包 Docker Toolbox,集成了如上所有的工具。访问Docker官方网站来下载适合你的版本。这些工具的安装使用不在本文讨论范围内,因此请参考Docker官方文档。

笔者打算另外写文章来讨论docker相关问题,请随时关注点融黑帮公众号:)。

Step 2. 使用docker-machine创建一个docker host

Step 3:编写 docker-compose.yml 文件,内容如下:

执行启动命令:

$ docker-compose up -d

docker-compose会根据yml文件自动pull对应的镜像,并用指定参数启动容器。安装操作已做完,简单吧?剩下的事情就是等待了,等待时间取决于你的网速。

Step 4: 等容器都启动以后,查看docker-machine的IP地址,并访问

$ docker-machine ip vm-grafana

192.168.99.100

接收数据的carbon-cache服务监听在tcp://192.168.99.100:2003

graphite-web服务监听在http://192.168.99.100:8000/

Grafana服务监听在http://192.168.99.100:3000

使用netcat(nc命令))以1秒为间隔发送一些20~30范围内的随机数据(称为metrics)给graphite,跟大多数时间序列数据库(TSDB)类似,其数据格式包含三部分: metric key, metric value,timestamp。 例如:

test.data 10 1467764049

模拟生成一些metrics发送给graphite:

$ while true; do echo "test.data $(($RANDOM%10+20)) $(date +%s)" | nc 192.168.99.100 2003; sleep 1; done

浏览器访问grafana  http://192.168.99.100:3000初始密码admin/admin

添加数据源:

新建一个Dashboard, 新建一个Panel, 添加一个metric,选择刚刚我们加的test.data,  Grafana 便绘制出图表:

这里只用最最简单、最最少的操作,建立起一个Grafana的demo服务,如果你有兴趣可以参考官方文档,深入探索一下她更多更强大的功能。

TO Grafana:你是这个看脸世界的一股清流,还不是因为这个世界你最好看。


本文作者:高帅(点融黑帮),现任点融技术部DevOps一枚,曾就职于阿里巴巴。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,048评论 18 139
  • 概述 我想分享两部分内容: 互联网上用到的指标收集展现工具,参考借鉴 互联网监控平台设计时的结构层,范围层,表现层...
    悟静家阅读 6,523评论 2 19
  • 注意: 该 Docker 版本为了支持 Docker 机,于是不再支持 Boot2Docker 命令行。使用 Do...
    提莫队长1234阅读 4,485评论 0 8
  • 本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lso...
    老夫刘某阅读 3,384评论 0 7
  • 小时候家里条件不是很好,偶尔吃着爸爸从市场买回来的大馒头的时候,都会非常满足,心里头觉着一阵温暖,那时候暗暗下定决...
    意思姑娘阅读 309评论 0 0