• Influxdb+Grafana+Telegraf及docker中运行



    • 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
    
  • 相关阅读:
    Java之美[从菜鸟到高手演变]之设计模式
    Akka边学边写(1)-- Hello, World!
    [D3 + AngularJS] 15. Create a D3 Chart as an Angular Directive
    [D3] 14. Line and Area Charts with D3
    [D3] 13. Cleaner D3 code with selection.call()
    [D3] 12. Basic Transitions with D3
    [D3] 9. Scatter Plot
    [D3] 8. Margins
    [D3] 7. Quantitative Scales
    Runoob-Java-高级教程-实例-字符串:09. Java 实例
  • 原文地址:https://www.cnblogs.com/YYRise/p/10060591.html
Copyright © 2020-2023  润新知