引言


在介绍具体的业务监控搭建之前还是现在介绍介绍influxdb和grafana。



时间序列数据库


在开始介绍Influxdb之前先简要介绍一下时间序列数据库。



何谓时间序列数据库?


什么是时间序列数据库,最简单的定义就是数据格式里包含Timestamp字段的数据,比如某一时间环境的温度,CPU的使用率等。但是,有什么数据不包含Timestamp呢?几乎所有的数据其实都可以打上一个Timestamp字段。时间序列数据的更重要的一个属性是如何去查询它,包括数据的过滤,计算等等。



Influxdb


Influxdb是一个开源的分布式时序、时间和指标数据库,使用go语言编写,无需外部依赖。


它有三大特性:


  1. 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);
  2. 度量(Metrics):对实时大量数据进行计算;
  3. 事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

同时,它有以下几大特点:

  1. schemaless(无结构),可以是任意数量的列;
  2. min, max, sum, count, mean, median 一系列函数,方便统计;
  3. Native HTTP API, 内置http支持,使用http读写;
  4. Powerful Query Language 类似sql;
  5. Built-in Explorer 自带管理工具。

Influxdb安装

本文使用的influxdb version是1.0.2

在讲解具体的安装步骤之前,先说说influxdb的两个http端口:8083和8086

  • port 8083:管理页面端口,访问localhost:8083可以进入你本机的influxdb管理页面;
  • port 8086:http连接influxdb client端口,一般使用该端口往本机的influxdb读写数据。


OS X

[plain] view plain copy print ?

  1. brew update  
  2. brew install influxdb  

brew update
brew install influxdb

Docker Image

[plain] view plain copy print ?

  1. docker pull influxdb  

docker pull influxdb

Ubuntu & Debian

[plain] view plain copy print ?

  1. wget https://dl.influxdata.com/influxdb/releases/influxdb_1.0.2_amd64.deb  
  2. sudo dpkg -i influxdb_1.0.2_amd64.deb  

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.0.2_amd64.deb
sudo dpkg -i influxdb_1.0.2_amd64.deb

RedHat & CentOS

[plain] view plain copy print ?

  1. wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2.x86_64.rpm  
  2. sudo yum localinstall influxdb-1.0.2.x86_64.rpm  

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2.x86_64.rpm
sudo yum localinstall influxdb-1.0.2.x86_64.rpm

Standalone Linux Binaries (64-bit)

[plain] view plain copy print ?

  1. wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_amd64.tar.gz  
  2. tar xvfz influxdb-1.0.2_linux_amd64.tar.gz  

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_amd64.tar.gz
tar xvfz influxdb-1.0.2_linux_amd64.tar.gz

Standalone Linux Binaries (32-bit)

[plain] view plain copy print ?

  1. wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_i386.tar.gz  
  2. tar xvfz influxdb-1.0.2_linux_i386.tar.gz  

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_i386.tar.gz
tar xvfz influxdb-1.0.2_linux_i386.tar.gz

Standalone Linux Binaries (ARM)

[plain] view plain copy print ?

  1. wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_armhf.tar.gz  
  2. tar xvfz influxdb-1.0.2_linux_armhf.tar.gz  

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_armhf.tar.gz
tar xvfz influxdb-1.0.2_linux_armhf.tar.gz

How to start?

安装完之后,如何启动呢?

[plain] view plain copy print ?

  1. sudo systemctl start influxdb  

sudo systemctl start influxdb

到这里influxdb安装启动完成,可以访问influxdb管理页面:http://localhost:8083,该版本没有登录用户及密码,可以自行设置读写的用户名和密码。


Grafana

granfana是一个open source的图形化数据展示工具,可以自定义datasource,自定义报表、显示数据等。



Grafana安装


本文使用的Grafana版本是3.1.1



Ubuntu & Debian


[plain] view plain copy print ?

  1. wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.1.1-1470047149_amd64.deb  
  2. sudo apt-get install -y adduser libfontconfig  
  3. sudo dpkg -i grafana_3.1.1-1470047149_amd64.deb  

wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.1.1-1470047149_amd64.deb
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_3.1.1-1470047149_amd64.deb

Centos & Redhat

[plain] view plain copy print ?

  1. sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.1-1470047149.x86_64.rpm  
  2. sudo yum install initscripts fontconfig  
  3. sudo rpm -Uvh grafana-3.1.1-1470047149.x86_64.rpm  

sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.1-1470047149.x86_64.rpm
sudo yum install initscripts fontconfig
sudo rpm -Uvh grafana-3.1.1-1470047149.x86_64.rpm

Mac

[plain] view plain copy print ?

  1. brew update  
  2. brew install grafana  

brew update
brew install grafana

Docker

[plain] view plain copy print ?

  1. docker run -i -p 3000:3000 grafana/grafana  

docker run -i -p 3000:3000 grafana/grafana

How to start?

安装完之后,如何启动呢?(注:docker除外)


[plain] view plain copy print ?

  1. sudo service grafana-server start  

sudo service grafana-server start

启动之后,访问http://localhost:3000,可以访问你本地搭的grafana了,用户名跟密码都是admin。接下来我会详细讲解一下grafana的配置,如何制定自己的datasource,制定自己的图表。


Grafana Datasource及报表配置

Datasouurce配置:


  • 第一步,进入DataSources配置自己的DataSource:


【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_docker



  • 第二步,添加自己的datasouce并保存:


【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_时间序列_02



给一个我添加的datasouce的demo以供参考,grafana支持多种数据库,选择哪种读者视情况而定。


【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_docker_03



配置好datasource之后该回到dashboard配置自己的报表了。



报表配置


  • 创建自己的dashboard并保存:


【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_数据库_04

Settings可以配置dashboard的一些常用设置,比如名称,等等,读者可以自行研究配置。点击保存的图标,可以保存,配置完dashboard之后可以配置在dashboard展示的图表了。

  • 图表配置:

第一步,添加图表,点击dashboard页面左边的绿色小图标,选择Add Pannel -> Graph

【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_时间序列_05

第二步,添加图表展示数据,实质上是添加一些datasouce的query:

【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_数据库_06

照样还是给一个我添加的query demo,仅供参考,读者可以根据自己的实际情况添加自己的query:

【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_数据库_07

第三步,保存展示:

【转】influxdb+grafana搭建业务监控平台前篇-相关环境搭建_docker_08

到现在为止,influxdb + grafana搭建完毕,数据也可以正确的展示。后续文章我会依次讲解 influxdb数据相关查询以及 具体的业务代码怎么进行监控数据埋点