精华内容
参与话题
问答
  • InfluxDB

    2020-12-27 10:23:31
    ve been playing with the latest InfluxDB, the api has change significantly breaking the current metrics.net influxdb reporter. I'm going to start updating this but before I do how do you foresee ...
  • influxdb

    2020-11-26 00:06:18
    1.安装influxDb,详见docker hub,基本使用 docker run -d -p 8086:8086 -v /home/influxdb/data:/var/lib/influxdb --name influxdb influxdb 8086为HTTP API数据端口 ,8083管理端口高版本已废除??;

    influxdb是目前比较流行的时间序列数据库,常用于存储监控数据,日志等数据,基本语法类似sql

    1.基本安装,其它参数参考https://hub.docker.com/_/influxdb

    docker run  -d -p 8086:8086     -v /home/influxdb/data:/var/lib/influxdb  --name influxdb  influxdb
    
    8086为HTTP API数据端口 ,8083管理端口高版本已废除;

    2.基本使用,参考https://www.cnblogs.com/jackyroc/p/7677508.html

    展开全文
  • influxDB

    2020-04-08 15:27:28
    1.时序性数据库InfluxDB 2.InfluxDB-Python

    1.时序性数据库InfluxDB

    2.InfluxDB-Python

    展开全文
  • Influxdb

    2019-07-26 16:48:00
    Influxdb的安装配置启动  influxdb简介  1、influxdb使用GO语言开发,是一种时序序列数据库  2、influxdb的查询语句类似于mysql的select * from mysql.user  3、schemaless(无模式),结构型数据库类似mysql...

    Influxdb的安装配置启动

      influxdb简介

        1、influxdb使用GO语言开发,是一种时序序列数据库

        2、influxdb的查询语句类似于mysql的select * from mysql.user

        3、schemaless(无模式),结构型数据库类似mysql需要先定义列,influxdb无需预先定义,无结构的

        4、数据库 -->measurement(类似于表)-->points(数据,每一条数据就是一个point)

        5、它有三大特性:
               1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等);
               2. Metrics(度量):你可以实时对大量数据进行计算;
               3. Eevents(事件):它支持任意的事件数据。

      influxdb的points数据说明

        1、time,默认存储数据会有时间,时间无需关心,会帮助我们自动插入

        2、tags:用来存储数据标识,各种有索引的属性

        3、fields:用于存储数据,没有索引

      influxdb的下载和安装

        centos下载连接:https://dl.influxdata.com/influxdb/releases/influxdb-1.6.0.x86_64.rpm

        Ubantu下载连接:https://dl.influxdata.com/influxdb/releases/influxdb_1.6.0_amd64.deb

        通过wget命令下载:wget  下载连接

        centos安装:yum localinstall influxdb-1.6.0.x86_64.rpm

        Ubantu安装:dpkg -i influxdb_1.6.0_amd64.deb

        安装完成后默认会有一个influxdb用户

          root@xdl-gj:/etc# cat /etc/passwd | grep influxdb
          influxdb:x:999:999::/var/lib/influxdb:/bin/false
      influxdb的配置:/etc/influxdb/influxdb.conf
        [meta]
          dir = "/usr/local/influxdb/meta"
        [data]
          dir = "/usr/local/influxdb/data"
          wal-dir = "/usr/local/influxdb/wal"
        [coordinator]
        [retention]
        [shard-precreation]
        [monitor]
        [http]
          enable = true
          bind-address = "127.0.0.1:8086"  
        [ifql]
        [logging]
        [subscriber]
        [[graphite]]
        [[collectd]]
        [[opentsdb]]
        [[udp]]
        [continuous_queries]
      配置说明:

        data:存放最终存储的数据,文件以.tsm结尾

        meta:存放数据库元数据

        wal:存放预写日志文件

      创建目录更新权限

        mkdir -pv /usr/local/influxdb,说明:-p表示递归创建目录,-v表示创建新目录显示信息

        root@xdl-gj:/etc/influxdb# mkdir -pv /usr/local/influxdb
        mkdir: 已创建目录 '/usr/local/influxdb'

        chown -R influxdb:influxdb /usr/local/influxdb/

      influxdb的启动和开机自启动

        systemctl restart influxdb

        systemctl enable influxdb

        systemctl status influxdb #查看状态

        systemctl stop influxdb #停止influxdb服务

      观察进程和监听端口

        ps auxf

          root@xdl-gj:/etc/influxdb# ps auxf | grep influxdb
          influxdb 24525  0.1  0.5 738072 20792 ?        Ssl  22:51   0:00 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

        netstat  -tulnp  

          root@xdl-gj:/etc/influxdb# netstat -tulnp | grep influxd
          tcp        0      0 127.0.0.1:8086          0.0.0.0:*               LISTEN      24525/influxd       
          tcp        0      0 127.0.0.1:8088          0.0.0.0:*               LISTEN      24525/influxd 

    influxdb开启登录认证

      操作influxdb数据库准备开启认证

        influxdb --help :查询influx客户端的使用帮助

        influx :默认连接到localhost:8086

        show users:查看所有用户,默认没有

        create user "xudonglin" with password '123456' with all privileges:创建xudonglin用户,密码为123456 并具有管理员权限

      influxdb增加auth配置如下,并重启influxd(systemctl restart influxd)

        只需要在influxdb.conf配置文件中[http]下面添加:auth-enabled = true

      使用用户名密码登录:

        1、influx -username xudonglin -password 123456:可以直接登录

        2、influx -username xudonglin -password ''     :执行这个命令之后再输入密码

        3、influx   先进行连接,之后输入auth命令,进行用户登录

          root@xdl-gj:~# influx
          Connected to http://localhost:8086 version 1.6.0
          InfluxDB shell version: 1.6.0
          > auth
          username: xudonglin
          password:

      安全性强度

        本地 > 内网 > 公网

    influxdb数据库的简单操作

      数据库(database)操作

        show databases :查询所有的数据库

        create database xudonglin :创建数据库

        drop database xudonglin :删除数据库

      数据表(measurement)操作

        use xudonglin:操作xudongln数据库

        show measurements :查询当前数据库下所有的数据表

        insert cpuinfo,item=xudonglin_192.168.0.105_cpu.idle value=80 1564217916148774054 :无需创建measurement,可直接插入数据

          插入数据的格式:insert 数据表,tags fileds time

          说明:time不写会默认插入当前的时间,中间不要出现多余的空格

        select * from cpuinfo :查询所有cpuinfo的数据

        drop measurement cpuinfo :删除数据表

      influxdb常用查询操作

        select * from cpuinfo

        select * from cpuinfo limit 2 :如果数据量太大,使用limit,限制输出的行数

        delete from cpuinfo where time=1564217916148674054:删除一条数据,但是influxdb一般不会手动删除数据,主要根据策略自动删除

      influxdb数据保留事件设置

        show retention policies on xudonglin  :查看xudongln数据库表中数据保存的事件,duration为0s时表示永久有效

        create retention policy rp_xudonglin on xudonglin duration 30d replication 1 default

          说明:创建一个名字为rp_xudonglin的保存策略,保存时间为30天

            如果表中有多个策略,可以通过select * from 策略名.表名,这张表这个策略下的数据

        alter retention policy rp_xudonglin on xudonglin duration 2d replication 1 defalut:修改策略

        drop retention policy re_xudonglin on xudonglin:删除策略,删除后这个策略的数据也将被删除,所以一般不要删除

      influxdb使用易看的事件格式

        1、使用precision rfc339

        2、连接时指定:influx -host 192.168.0.105 -username xudonglin -password '123456' -precision rfc3339

    influxdb自带函数查询

      influxdb提供了一些内置函数,这些函数方便grafana拉取数据

        查询非空的数量

          select count(value) from cpuinfo

        查询唯一值

          select distinct(value) from cpuinfo

        查询平均值

          select mean(value) from cpuinfo

        查询总和

          select sum(value) from cpuinfo

        查询最大的N个值

          select bottom(value,0) from cpuinfo

        查询最小的N个值

          select bottom(value,1) from cpuinfo

    Grafana的安装和influxdb数据源配置

      grafana介绍

        grafana是一个可视化面板,有着非常漂亮的图表,布局方便

        数据源可以使用zabbix、influxdb等

      grafana的下载和安装

        Ubantu:

          wget https://dl.grafana.com/oss/release/grafana_6.2.5_amd64.deb

          dpkg -i grafana_6.2.5_amd64.deb

        centos:

          wget https://dl.grafana.com/oss/release/grafana-6.2.5-1.x86_64.rpm

          yum localinstall grafana-6.2.5-1.x86_64.rpm

      grafana的启动和开机自启动

        systemctl restart granfana-server

        systemctl enable grafanna-server

        systemctl status grafana-server

      访问grafana测试

        http://ip:3000

      grafana配置influxdb数据源

        grafana的默认用户名密码都是admin,第一次登录会要求更改密码

        配置influxdb的数据源(Data Source),用户名和密码

    Grafana+infludb绘图基础

      Grafana配置图形展现

        流程:先创建dashboard,然后才能创建图像

        创建dashboard

        修改dashboard

        删除dashboard

        创建Graph Panel(值为整形、浮点型的可以创建图形)

      手动插入数据观察

        先开启Grafana自动刷新

        插入数据

      图形设置

        设置图形标题

        配置透明度

        

        显示当前值、最大、最小、平均值

        

        左y轴的单位可以指定

        

        把每个值的point都显示出来

        

        布局可以随意拖拉

        可以复制图形的配置

        可以把值表格展现(表格可以排序)     

    influxdb+grafana监控cpu

      监控思路

        1、采集数据(使用python脚本进行采集)

        2、入库(python脚本采集完插入influxdb数据库)

        3、展示(Grafana读取influxd数据进行展示)

      首先了解一下/proc/loadavg文件

        系统平均负载个字段的含义

          xdl@xdl-gj:~/python$ cat /proc/loadavg
          0.17 0.16 0.10 2/957 19900

          前三个分别表示1、 5、 15分钟内的平均进程数

          第四个分子表示正在运行的进程数,分母表示进程总数

          最后一个表示最近运行的进程ID

    from influxdb import InfluxDBClient
    import os
    
    # 连接influxdb数据(host, port, username, password, database)
    client = InfluxDBClient("192.168.0.105", 8086, 'xudonglin', '123456', 'xudonglin')
    # 获取1、 5、 15 分钟内的平均进程数
    loadavg1 = os.popen("cat /proc/loadavg | awk '{print $1}'").read()
    loadavg5 = os.popen("cat /proc/loadavg | awk '{print $2}'").read()
    loadavg15 = os.popen("cat /proc/loadavg | awk '{print $3}'").read()
    data_json = [
        {'measurement': 'loadavg',
        'tags': {
            'item': 'xudonglin_192.168.0.105_loadavg1'
            } ,
        'fields': {
            'value': float(loadavg1)
            },
        },
        {'measurement': 'loadavg',
        'tags': {
            'item': 'xudonglin_192.168.0.105_loadavg5'
            } ,
        'fields': {
            'value': float(loadavg5)
            },
        },
        {'measurement': 'loadavg',
        'tags': {
            'item': 'xudonglin_192.168.0.105_loadavg15'
            } ,
        'fields': {
            'value': float(loadavg15)
            },
        },
    ]
    client.write_points(data_json)

      将脚本添加到linux的crontab任务,然后图表展示(/etc/crontab)

        * * * * * xdl python3 /data/loadavg.py >/dev/null 2>/dev/null

      python监控cpu时间并存入influxdb

    from influxdb import InfluxDBClient
    import psutil
    
    # 连接influxdb数据(host, port, username, password, database)
    client = InfluxDBClient("192.168.0.105", 8086, 'xudonglin', '123456', 'xudonglin')
    
    cpu_times_percent = psutil.cpu_times_percent(interval=1)
    user = cpu_times_percent.user
    system = cpu_times_percent.system
    iowait = cpu_times_percent.iowait
    idle = cpu_times_percent.idle
    
    data_json = [
        {'measurement': 'cpu_times_percent',
        'tags': {
            'item': 'xudonglin_192.168.0.105_user'
            } ,
        'fields': {
            'value': user
            },
        },
        {'measurement': 'cpu_times_percent',
        'tags': {
            'item': 'xudonglin_192.168.0.105_system'
            } ,
        'fields': {
            'value': system        
            },
        },
        {'measurement': 'cpu_times_percent',
        'tags': {
            'item': 'xudonglin_192.168.0.105_iowait'
            } ,
        'fields': {
            'value': iowait
            },
        },
        {'measurement': 'cpu_times_percent',
        'tags': {
            'item': 'xudonglin_192.168.0.105_idle'
            } ,
        'fields': {
            'value': idle
            },
        },
    ]
    client.write_points(data_json)

      添加到linux的crontab任务,然后图表展示观察

        * * * * * xdl python3 /data/cpu_times_percent.py >/dev/null 2>/dev/null
    influxdb+Granfana监控内存磁盘流量

      python监控内存并入influxdb

    from influxdb import InfluxDBClient
    import psutil
    
    # 连接influxdb数据(host, port, username, password, database)
    client = InfluxDBClient("192.168.0.105", 8086, 'xudonglin', '123456', 'xudonglin')
    
    virtual_memory = psutil.virtual_memory()
    total = virtual_memory.total
    available = virtual_memory.available
    used = virtual_memory.used
    
    data_json = [
        {'measurement': 'memory',
        'tags': {
            'item': 'total'
            } ,
        'fields': {
            'value': total
            },
        },
        {'measurement': 'memory',
        'tags': {
            'item': 'available'
            } ,
        'fields': {
            'value': available        
            },
        },
        {'measurement': 'memory',
        'tags': {
            'item': 'used'
            } ,
        'fields': {
            'value': used
            },
        },
    ]
    client.write_points(data_json)

      添加到linux的crontab任务,然后图标展示观察

        * * * * * xdl python3 /data/memory.py >/dev/null 2>/dev/null

      内存的换算一般是用的1024的比例,Grafana上有两个单位

        1、data(iec)这个是按照1024的比例换算的

        2、data(metric)这个是按照1000比来换算的

      python监控磁盘并存入infludb

    from influxdb import InfluxDBClient
    import psutil
    
    # 连接influxdb数据(host, port, username, password, database)
    client = InfluxDBClient("192.168.0.105", 8086, 'xudonglin', '123456', 'xudonglin')
    # 获取所有磁盘
    for one_disk in psutil.disk_partitions():
        mountpoint = one_disk.mountpoint
        diskused = psutil.disk_usage(mountpoint).percent
        data_list = [
            {'measurement': 'disk', 
            'tags': {
                'item': 'diskused.%s' % mountpoint
            }, 
            'fields': {
                'value': float(diskused)
            }
        }
        ]
        client.write_points(data_list)

      添加到linux的crontab任务,然后图标展示观察

        * 1 * * * xdl python3 /data/disk.py >/dev/null 2>/dev/null  #每小时采集一次

      python监控流量并存入influxdb

     

    from influxdb import InfluxDBClient
    import psutil
    
    # 连接influxdb数据(host, port, username, password, database)
    client = InfluxDBClient("192.168.0.105", 8086, 'xudonglin', '123456', 'xudonglin')
    # 监控每个网卡的发送流量和接收流量
    for netname, netinfo in psutil.net_io_counters(pernic=True).items():
        bytes_sent = netinfo.bytes_sent
        bytes_recv = netinfo.bytes_recv
        data_list = [
            {'measurement': 'traffic', 
            'tags': {
                'item': 'bytes_sent.%s' % netname
                }, 
            'fields': {
                'value': bytes_sent
                }
            },
            {'measurement': 'traffic', 
            'tags': {
                'item': 'bytes_recv.%s' % netname
            }, 
            'fields': {
                'value': bytes_recv
                }
            }
        ]
        client.write_points(data_list)

      添加定时任务

        * * * * * xdl python3 /data/traffic.py >/dev/null 2>/dev/null

      流量单位说明(每秒的流量,无负数)

        non_negative_derivative(mean('value'), 1s)

        通过psutil收集到的是bytes,流量单位一般是bit,所以需要乘以8

      说明:

        influxdb+grafana的组合监控硬件并不是好选择,如果熟悉Zabbix的话,推荐Zabbix来监控硬件

        influxdb+grafana的组合来监控业务数据是非常好用的

     

      

     

      

     

        

     

          

        

     

        

        

     


     

      

      

     

     

     

     

     

     

      

    转载于:https://www.cnblogs.com/xdl-smile/p/11251386.html

    展开全文
  • python连接influxdb写入数据

    万次阅读 2020-12-08 20:06:27
    插入数据到influxdb里面 vim influxdb_model.py #!/usr/bin/python #coding=utf-8 from influxdb import InfluxDBClient class InlfluxInfo(object): def __init__(self): pass def influxconn(self, type, ...

    有问题可联系本人QQ:1016401546

    一起学习一起成长

    需求:

    插入数据到influxdb里面

    vim influxdb_model.py

    
    #!/usr/bin/python
    #coding=utf-8
    from influxdb import InfluxDBClient
    
    class InlfluxInfo(object):
        def __init__(self):
            pass
        def influxconn(self, type, table_name, data=None, value=None):
            self.type = type
            self.table_name = table_name
            self.data = data
            self.value = value
            client = InfluxDBClient('192.168.xxx.xxx', 8086, username='xxx', password='xxxx', database='test',timeout=10)
            if self.type == 'insert':
                json_body = [
                    {
                        "measurement": self.table_name,
                        "tags": self.data,
                        "fields": {
                            "value": self.value
                        }
                    }
                ]
                client.write_points(json_body)
            else:
                pass
    

    vim insert_influxdb.py

    #!/usr/bin/python
    #coding=utf-8
    
    import sys
    from influxdb_model import InfluxInfo
    reload(sys)
    sys.setdefaultencoding('utf8')
    def insert_data(arg1, arg2, arg3, online):
        table_name = "tt"
        data = {
                    "arg1": arg1,
                    "arg2": arg2,
                    "arg3": arg3
                }
        value = online
        op = InfluxInfo()
        #插入数据
        op.influxconn('insert', table_name, data, value)
    
    insert_data('aa','bb','cc',10)
    
    
    
    

    执行完之后可以在influxdb的test 库 tt 表看到对应的数据。

    展开全文
  • InfluxDB入门教程

    万次阅读 2017-07-31 11:11:11
    InfluxDB是一个时序性数据库,详细资料如下 http://liubin.org/blog/2016/02/18/tsdb-intro/ 下载和安装 LZ从官网下载的是influxdb-1.2.4_windows_amd64这个版本,这种数据库不需要安装,解压后配置完毕直接...
  • influxdb学习

    2019-03-26 15:47:48
    一、InfluxDB特点 可以设置metric的保存时间。 支持通过条件过滤以及正则表达式删除数据。 支持类似 sql 的语法。 可以设置数据在集群中的副本数。 支持定期采样数据,写入另外的measurement,方便分粒度存储数据...
  • InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 本次用InfluxDB来存储监控数据。 具体...

空空如也

1 2 3 4 5 ... 20
收藏数 9,319
精华内容 3,727
关键字:

influxdb