• telegraf收集服务的各指标信息。
  • influxdb存储收集的信息
  • grafana显示收集出来的数据

参考资料

1. InfluxDB

1. 特征:

1. 时序性(Time Series)

与时间相关的函数的灵活使用(诸如最大、最小、求和等);

2. 度量(Metrics)

对实时大量数据进行计算;

3. 事件(Event)

支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

2. 特点:

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

3. 功能及默认

  • 时序数据库
  • 默认端口为Web端8083 , API端8086 , 默认登陆信息admin

4. 主要概念

1) 与SQL的名词做比较

influxDB中的名词 SQL中的概念 概念
database 数据库 数据库
measurement 数据库中的表 fields,tags以及time列的容器
points 表中的一行数据 同一个series中具有相同时间的field set

2) InfluxDB的独有概念

Point

属性 SQL中的概念
timestamp 每个数据都需要一个时间戳(主索引&自动生成),在TSM存储引擎中会特殊对待,以为了优化后续的查询操作
field 1. 各种记录值(必须存在,没有索引的属性),eg:温度
2. 由field key,field value组成
3. field key和field value对组成field set
4. 如果使用字段作为查询条件,会扫描符合查询条件的所有字段值,性能不及tag。fields相当于SQL的没有索引的列。
5. field value可以为string,float,integer或boolean类型
tag 1. 各种有索引的属性,eg:地区
2. tag key,tag value组成
3. tag key和tag value对组成tag set
4. tags相当于SQL中的有索引的列
5. tag value只能是string类型

series

  • series是共享同一个retention policy,measurement以及tag set的数据集合
  • series相当于是InfluxDB中一些数据的集合。所有在数据库中的数据,都要通过图表展示出来,而series则表示表里面的数据,可以在图表上画成几条线(通过tags排列组合算出来)

shard

每个存储策略下会存在许多shard,每个shard存储一个指定时间段的数据,例如7点-8点的数据落入shard0中,8点-9点的数据落到shard1中,每个shard都对应一个底层的tsm存储引擎,有独立的cache,wal,tsm file。

retention policy

保留策略(RP)是用来定义数据在InfluxDB存放的时间,或者定义保存某个期间的数据。当你创建数据库时,InfluxDB会自动创建一个autogen(具有无限保留的保留策略)

5. 常用命令

1. 用户管理:

  • 显示用户

    SHOW USERS
  • 创建用户和设置密码  

    CREATE USER "username" WITH PASSWORD 'password'
  • 创建管理员权限的用户

    CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES
  • 删除用户

    DROP USER "username"
  • 授权数据库给指定用户

    GRANT ALL PRIVILEGES ON cadvisor TO testuse

2. database:

  • 创建数据库: CREATE DATABASE testDB
  • 显示所有数据库: SHOW DATABASES
  • 删除数据库: DROP DATABASE testDB
  • 使用数据库: USE testDB
  • 创建默认的数据保留策略,设置保存时间30天,副本为1

    CREATE RETENTION POLICY "xx_retention" ON "xx" DURATION 30d REPLICATION 1 DEFAULT

6. 函数

  • 聚合函数:FILL(), INTEGRAL(),SPREAD(), STDDEV(),MEAN(), MEDIAN() 等。
  • 选择函数: SAMPLE(), PERCENTILE(), FIRST(), LAST(), TOP(), BOTTOM()等。
  • 转换函数: DERIVATIVE(), DIFFERENCE()等。
  • 预测函数:HOLT_WINTERS()

7. golang中使用

直接看 git


2. Grafana

1. 主要特性

  • 灵活丰富的图形化选项
  • 可以混合多种风格
  • 支持白天和夜间模式
  • 多个数据源。

2. 功能及默认

  • 访问各类数据源 , 自定义报表、显示图表等等 , 用于提供界面监控
  • 默认端口为3000 , 默认登陆信息admin

3. Telegraf

1. 功能

收集系统和服务的统计数据, 并写入到InfluxDB数据库, 在需要监控的机器上安装

4. docker-compose搭建

influxdb:
image: influxdb:latest
container_name: tig-influxdb
ports:
- "8083:8083"
- "8086:8086"
- "8090:8090"
env_file:
- 'env.influxdb'
volumes:
# Data persistency
# sudo mkdir -p ./influxdb/data
- ./influxdb/data:/var/lib/influxdb
# 配置docker里的时间为东八区时间
- ./etc/timezone:/etc/timezone:ro
- ./etc/localtime:/etc/localtime:ro
restart: unless-stopped #停止后自动 telegraf:
image: telegraf:latest
container_name: tig-telegraf
links:
- influxdb
volumes:
- ./telegraf.conf:/etc/telegraf/telegraf.conf:ro
- ./etc/timezone:/etc/timezone:ro
- ./etc/localtime:/etc/localtime:ro
restart: unless-stopped grafana:
image: grafana/grafana:latest
container_name: tig-grafana
ports:
- "3000:3000"
env_file:
- 'env.grafana'
links:
- influxdb
volumes:
# Data persistency
# sudo mkdir -p ./grafana/data; chown 472:472 ./grafana/data
- ./grafana/data:/var/lib/grafana
- ./etc/timezone:/etc/timezone:ro
- ./etc/localtime:/etc/localtime:ro
restart: unless-stopped

Influxdb+Grafana+Telegraf及docker中运行的更多相关文章

  1. 使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况

    使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况 前言 本文在Debian9下采用Docker的方式安装Telegraf + Influxdb + ...

  2. 在docker中运行ASP.NET Core Web API应用程序

    本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...

  3. .NET Core Web 应用部署到 Docker 中运行

    环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...

  4. docker中运行ASP.NET Core Web API

    在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...

  5. 在Docker中运行torch版的neural style

    相关的代码都在Github上,请参见我的Github,https://github.com/lijingpeng/deep-learning-notes 敬请多多关注哈~~~ 在Docker中运行to ...

  6. ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...

  7. 在Docker中运行EOS(MAC版)

    在Docker中运行EOS(MAC版) 在Docker中也可以简单快速的构建EOS.IO.笔者在Mac平台下参考官方文档躺了一次河.记录如下: 安装依赖 Docker 版本 17.05或者更高 tes ...

  8. 在docker中运行jenkins实现代码自动发布到测试服务器

    在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:80 ...

  9. 在Docker中运行纸壳CMS并配置使用MySql

    纸壳CMS是基于ASP.Net Core开发的可视化内容管理系统,可以跨平台部署,可以在容器中运行.接下来看看如何在docker中运行纸壳CMS. GitHub:https://github.com/ ...

随机推荐

  1. Storage 002 电商数据库设计

    [用户模块] 账户登录:邮箱/用户名/已验证手机 密码 如果将所有字段都放到一张表里存储? 数据插入异常        只想插入一个值的  由于需要主键信息,插入的一行变成新的一行,和原来的记录无关. ...

  2. Keras实现LSTM

    一.先看一个Example 1.描述,输入为一个字母,输出为这个字母的下一个顺序字母 A->B B->C C->D 2.Code import numpy from keras.mo ...

  3. Linux-Shell编程之求命令行中所有整数之和

    前言 复习shell编程知识,书中有此练习题,之前学习时便没有搞透彻,此次是非啃下不可. 但是,摸索许久,却屡碰南墙,于是查阅网络博客,结果有让人比学不懂知识更让生气的是:博文遍地,净是抄袭!连个截图 ...

  4. httpClient closeableHttpClient

    https://www.cnblogs.com/lyy-2016/p/6388663.html

  5. KML,SHP TAB互转,GDAL

    最近在接触地图数据转换的东西,从硬件kml的数据转换其他的格式,因为从没做过着东西, 先去了解kml文件格式 http://baike.baidu.com/view/400307.htm?fr=ala ...

  6. JAVA进阶17

    ---恢复内容开始--- 间歇性混吃等死,持续性踌躇满志系列-------------第17天 1.递归结构 递归是一种常见的解决问题的方法,即把问题逐渐简单化.递归的基本思想就是自己就是“自己调用自 ...

  7. word20170103除了busy,忙的10种英语说法!

    年前,忙死啦!除了busy,这些说法更地道.更形象! #1 I'm swamped! Swamp: 沼泽“忙死了”最形象.最对应的英语说法:It's the end of the year. I'm ...

  8. CSS 实现滚动进度条效果

    参考:https://www.w3cplus.com/css/pure-css-create-scroll-indicator.html 前言:细化总结.参考的文章作者已经写的很详细了.这里在从初学者 ...

  9. 封装selenium自动化框架中的截图功能

    对selenium自带的截图功能进行封装: 以下为封装的代码,自定义一个.py文件即可,图片路径自己设置一个. #coding:utf-8 class Screen(object): ''' 封装的截 ...

  10. A Discriminative Feature Learning Approach for Deep Face Recognition

    url: https://kpzhang93.github.io/papers/eccv2016.pdf year: ECCV2016 abstract 对于人脸识别任务来说, 网络学习到的特征具有判 ...