文章目录

  • 一、安装 influxdb
    • Ⅰ、docker 安装
  • 二、常用操作
    • Ⅰ、influxdb 1.x版本添加用户认证
    • Ⅱ、influxdb 2.x 使用命令行
    • Ⅲ、CLI 配置token
    • Ⅴ、CLI 查询测试
  • 三、grafana 安装使用
    • Ⅱ、docker 安装 grafana
  • 四、grafana 连接 influx
    • Ⅰ、influx 1.x
      • 1、添加数据源
      • 2、添加数据
      • 3、grafana 测试连接
    • Ⅱ、influx 2.x
      • 1、添加数据源
      • 2、添加数据
      • 3、grafana测试连接

grafana 连接 influxdb 1.x 和 2.x

influxdb 中文文档 https://jasper-zhang1.gitbooks.io/influxdb/content/,该文档还是 1.x 版本
influxdb 官方文档 https://docs.influxdata.com/influxdb/v2.0/,可以选择版本

influxdb 的概念基础语法可以查看官方文档,下面讲讲安装使用方法,1.x 版本使用 influxQL 查询语言,2.x 和 1.8+(beta) 使用 flux 查询语法

一、安装 influxdb

参考官方文档 https://docs.influxdata.com/influxdb/v2.0/install/?t=Docker,在右上方选择文档版本,然后选择指定的系统,按照指定命令或者下载安装包安装,下面讲讲 docker 安装方法

influx 2.x 版本安装成功自带 UI 界面,可访问 http://127.0.0.1:8086 查看配置

Ⅰ、docker 安装

选取拉取的镜像版本,可在 https://hub.docker.com/_/influxdb 中选择指定版本,不指定版本默认安装最新的

docker pull influxdb

创建并启动容器,将容器/var/lib/influxdb2 内部的数据持久化到主机 /var/docker/influxdb2.0 目录。

docker run -d \--name influxdb \-p 8086:8086 \--volume /var/docker/influxdb2.0:/var/lib/influxdb2 \influxdb:2.0.9

使用 docker ps -a 查看是否已经启动,如果未启动使用 docker logs -f influxdb 查看错误日志
进入influxdb 容器使用 docker exec -it influxdb /bin/bash 查看

二、常用操作

Ⅰ、influxdb 1.x版本添加用户认证

1、添加一个管理员用户,all privileges 拥有所有权限就是管理员用户

create user admin with password '..ye123456' with all privileges

2、修改 influxdb.conf 文件,开启用户认证 auth-enabled = true

3、启动运行
重新启动 influx 服务,重新运行 influxd.exe,Linux可以使用 systemctl restart influxd 或 service restart influxd

注意:网上说的是直接运行 influxd.exe 就可以,但我没有成功,我在启动服务时指定了配置文件

# influxdb.conf 为你配置文件的路径
influxd -config influxdb.conf

4、测试
未认证

认证

Ⅱ、influxdb 2.x 使用命令行

命令如下

官方文档地址 https://docs.influxdata.com/influxdb/v2.0/reference/cli/influx/

Ⅲ、CLI 配置token

influx cli 配置token,执行语句时不用传递 token

influx config create --config-name <config-name> \--host-url http://localhost:8086 \--org <your-org> \--token <your-api-token> \--active

比如我的设置

 influx config create -n first -u http://1.117.165.107:8086 -o first_org -t tNJ7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxU2xJjhGqV2cw== -a

其中 token 以及 org 在你的 influx UI 界面查看 http://127.0.0.1:8086/

查看配置的 token


比如查看所有的

influx config ls

可以看到我激活的是 first 的配置

切换环境可以使用 influx config set -n second -a

Ⅴ、CLI 查询测试

例如,查询 test 数据库 temperature 表,field 为西安的最近 5 分钟的数据

influx query 'from(bucket: "test")|> range(start: -5m,stop:now())|> filter(fn: (r) => r["_measurement"] == "temperature")|> filter(fn: (r) => r["_field"] == "西安")|> yield(name: "mean")'

查询结果

相比 influx 1.x 命令行变化很大,1.x 版本命令行类似常用的 mysql 命令行写法

三、grafana 安装使用

安装 grafana,上一篇讲了 window 从源码运行 grafana https://blog.csdn.net/qq_41538097/article/details/120956231,有需要的可以看看
window和Linux安装 grafana 比较简单,下载解压即可,可以参考 grafana 官方文档https://grafana.com/docs/grafana/v8.1/installation/

Ⅱ、docker 安装 grafana

去dockerhub 查看需要的版本https://hub.docker.com/r/grafana/grafana
使用如下命令拉去镜像

docker pull grafana/grafana

创建启动容器

docker run -d -p 3000:3000  --name=grafana grafana/grafana

进入容器内部使用命令

docker exec -it -u root grafana /bin/sh

启动成功使用 http://127.0.0.1:3000 访问

如果需要修改 grafana 默认端口号,使用上面命令进入容器,进入 /usr/share/grafana/conf 目录,使用 cp default.ini grafana.ini 复制一份配置文件,grafana 官方不建议直接修改 default.ini 文件,具体修改方法可以参考我上一篇博客。

四、grafana 连接 influx

Ⅰ、influx 1.x
1、添加数据源

grafana 连接 influx 1.x ,点击设置里面的 datasources ,名字自己制定,查询语言需要选择 influxQL,设置链接地址 URL

设置连接数据库、用户名以及密码,点击保存并测试,如下表示配置成功

2、添加数据

需要数据的可以执行如下代码,需要使用 npm install influx 安装包

const Influx = require('influx'); //导包
const influxdbClient = new Influx.InfluxDB({database: 'my_data',username: 'root',password: '123456',hosts: [{host: 'localhost'}],schema: [{measurement: 'cpu', //类似于数据表的概念fields: { //数据表的字段,定义类型,FLOAT/INTEGER/STRING/BOOLEANenabled: Influx.FieldType.BOOLEAN,host: Influx.FieldType.STRING,temperature: Influx.FieldType.FLOAT}, // tag 也是里面的字段,是自带索引光环。查询速度杠杠的。tags: ['model', 'system']}]
});// 插入数据
function insert(field1, field2, field3, tag1, tag2) {influxdbClient.writePoints([{measurement: 'cpu',fields: {enabled: field1,host: field2,temperature: field3},tags: {model: tag1,system: tag2}}])
}let j = 0;
setInterval(() => {for (let i = 0; i < 5; i++) {let field1, field2, field3, tag1, tag2;let arg1 = Math.round((Math.random() * 100).valueOf());let arg2 = Math.round((Math.random() * 100).valueOf());let arg3 = Math.round((Math.random() * 100).valueOf());let arg4 = (Math.random() * 100).toFixed(2);field1 = arg1 % 2 === 0 ? true : false;field2 = '192.' + arg1 + '.' + arg2 + '.' + arg3;field3 = arg4;// 模拟告警(测试告警数据需要)if (i === 2) {if (j % 5 !== 0) {field3 = (Math.random() * 20 + 80).toFixed(2);}j++;}switch (i) {case 0:tag1 = 'window';tag2 = 'notebook';break;case 1:tag1 = 'window';tag2 = 'desktop';break;case 2:tag1 = 'linux';tag2 = 'notebook';break;case 3:tag1 = 'linux';tag2 = 'desktop';break;case 4: tag1 = 'mac';tag2 = 'notebook';break;}console.log(field1, field2, field3, tag1, tag2);insert(field1, field2, field3, tag1, tag2);}
}, 1000 * 30);

插入数据如下所示

3、grafana 测试连接
  • 新建仪表盘
  • 选择刚才新建的数据源
  • 添加查询语句 SELECT "temperature" FROM "cpu" WHERE $timeFilter GROUP BY "model", "system"
Ⅱ、influx 2.x
1、添加数据源
  • 2.x 和 1.x 差别还是挺大的,查询语言使用 flux,相关语法可参考 https://docs.influxdata.com/flux/v0.x/
  • 连接不在使用用户名密码连接,而是使用 token

    Organization,选择创建组织

    Token

    Default Bucket,默认桶,即数据库
2、添加数据

如果需要添加数据的可以在 cli ui 界面选择客户端或其他数据源,选择自己熟悉的语言,复制其中的代码即可

3、grafana测试连接
  • grafana 新建仪表盘
  • 选定 influx2.x 数据源
  • 添加 flux 查询语句
from(bucket: "test")|> range(start: v.timeRangeStart, stop: v.timeRangeStop)|> filter(fn: (r) => r["_measurement"] == "temperature")|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)|> yield(name: "mean")

结果如下

grafana 连接 influxdb 1.x 和 2.x相关推荐

  1. python使用influxdb-client连接InfluxDB

    python连接InfluxDB数据库 官方示例代码:https://github.com/influxdata/influxdb-client-python/tree/master/examples ...

  2. docker-compose 部署jmeter+grafana+prometheus/influxdb,构建性能测试可视化实时监控(二)...

    上一节我们已经部署好了grafana,prometheus,influxdb,这一节我们尝试把jmeter+influxdb+grafana打通 打通influxdb+jmeter 首先看我们熟悉的j ...

  3. grafana连接mysql时区问题

    在用grafana连接mysql的一个视图展示数据时,出现grafana中的时间比数据库中的时候多8小时的问题,表现如下: 视图结构: 数据: grafana展示: 从上两张图可以看到,数据库中1点钟 ...

  4. grafana访问influxdb报错Bad Gateway

    问题: 本地安装两个docker :grafana 和 influx时,配置grafana中influxdb数据源时,报错InfluxDB Error: Bad Gateway 原因:influxdb ...

  5. Grafana连接 ntop 数据源

    最近公司在推进运维大数据平台的建设,其中前期有一个服务器流量分析的需求.这个服务器流量分析,并不是像 zabbix 这类监控软件可以完成的,虽然我们也在用 zabbix 作为一个基础的监控告警平台,但 ...

  6. k8s安装prometheus(sealos)解决grafana连接prometheus报错的问题:HTTP Error Bad Gateway

    问题现象: 解决办法: 配置使用iptables做转发,即可. 重新apply以后就正常: [root@k8s-n0 prometheus]# ll 总用量 1153616 -rwxr-xr-x. 1 ...

  7. Grafana连接elastic search 实现数据实时显示

    1 Grafana安装 1.1 grafana安装 ,我的版本为grafana 6.0 1.2 grafana启动 在命令行输入(我的系统是Ubuntu16): sudo service grafan ...

  8. JMeter+InfluxDB+Grafana实现可视化实时监控

    本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造可视化实时监控. 目录 一.简介 概述 简单介绍实现原理 二.indluxdb安装和部署 1.indluxdb下载 2.修改in ...

  9. Telegraf-Influxdb-Grafana容器化部署拓展(Https、AD域、告警集成)并监控Cisco设备指标

    前言: 还记得在去年的笔记中提到过使用python的pysnmp模块,配合Influxdb,Grafana收集Cisco设备指标.链接如下:https://blog.csdn.net/tushanpe ...

最新文章

  1. automake生成静态库文件_动手 | 奶奶级的动态库入门
  2. USACO Broken Necklace 题解(环展开成链,枚举)
  3. Linux 防火墙的基本认识
  4. Objective-C之category
  5. 台达asda-b2伺服驱动器说明书_台达解决方案提升粉末冶金液压机的控制精度
  6. XSS-Game level 13
  7. 维纳滤波的详细讲解(同为小白,相互取暖)
  8. 这是用过的最差树形插件
  9. IEEE 802各个协议
  10. TCP连接关闭—close和shutdown
  11. 做国外广告联盟:你要学会这些运作方法
  12. 视频点播开发者实战:视频水印时间线,防模糊处理
  13. 下列python语句的输出结果是_下列Python语句的输出结果是 __________ 。
  14. 计算机手速如何学,拼不过手速的你,来学学这些操作
  15. python 拼音识别_python识别一段由字母组成的字符串是否是拼音
  16. 《论文写作》课程心得
  17. php 活动网站,网页游戏的活动管理后台和管理后台
  18. 学术——获取参考文献格式
  19. Linux一:Linux启动及登陆
  20. Hadoop分布式集群搭建完全教程

热门文章

  1. html flex 兼容ie9,flex布局及其兼容解决方案_蓝戒的博客
  2. vue 跳转至当前路由,并刷新页面
  3. vue 跳转到本地的html文件预览pdf
  4. php批量生成随机数函数,一个php随机数生成的函数
  5. 数据结构实验:图遍历的演示——以多重邻接表实现
  6. ICC遇到Severe Error: Fatal error: Placer did not complete. (PSYN-375)
  7. 面向对象思想写好并发程序
  8. Matlab的Gpu加速(CUDA cudnn)
  9. NAND Flash操作技术详解
  10. 安装postman失败,跳转到安装.net framework