时序数据: 即时间序列数据,带时间标签的数据,主要由电力行业、化工行业等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。 比如,带有时间标签的访问nginx的http request日志:10.73.244.166|10.75.14.36|remote user|2016-10-1719:00:00|GET /interface/intf/get_enterpriseV2_fans_platform_article_publish.jsp?uid=2292533727&sdate=2014-10-01&edate=2016-10-1 5 HTTP/1.1|-|200|62|http://e.weibo.com/v1/public/interface/dashboard/gmsg?uid=2292533727|0.002|EPF at weibo.com|127.0.0.1:808
时序监控系统:就是为了查看时序数据在每个时间点的情况,时间标签就是时间点。
结构
Fluented 日志采集器,把日志转化成json格式然后导入数据库。 介绍和安装地址:http://docs.fluentd.org/articles/quickstart 在这里只介绍Fluented采集nginx log入Influxdb; 1.安装Influxdb插件,安装方法:http://www.fluentd.org/guides/recipes/syslog-influxdb 2.设置配置文件td-agent.conf:
<source> @type tail @log_level error path /data0/nginx/logs/*-access.log pos_file /var/log/td-agent/httpd-access.log.pos tag nginx_logs format /^(?<remote_addr>[^\|]*)\|([^\|]*)\|([^\|]*)\|(?<time>[^\|]*)\|([^ ]*) (?<request_interface>[^\?]*)\?([^ ]*) ([^\|]*)\|([^\|]*)\|(?<status>[^\|]*)\|([^\|]*)\|([^\|]*)\|(?<request_time>[^\|]*)\|([^\|]*)\|(?<upstream_addr>[^ ]*)?$/ types request_time:float time_format %Y-%m-%d %H:%M:%S </source> <match nginx_logs> type influxdb dbname db_nginx host 10.210.208.47 port 8086 tag_keys ["status", "request_interface", "upstream_addr"] </match>format :用表达式解析日志生成需要的字段,链接可以进行测试format,http://fluentular.herokuapp.com/ types:设置value的类型,默认是strng。 tag_keys:指定哪些字段在Influxdb是TAG 其他有关配置的详细说明请参考官网: http://docs.fluentd.org/articles/config-file https://github.com/fangli/fluent-plugin-influxdb
Influxdb 时序数据库,专门存储和处理时序数据,属于nosql。
Influxdb与关系型数据库的区别 基本概念 1. database:数据库
SHOW DATABASES #查看数据库 CREATE DATABASE mydb #创建数据库 USE mydb #选中数据库 INSERT cpu,host=serverA,region=us_west value=0.64 #插入数据 SELECT "host", "region", "value" FROM "cpu" #查询数据 "cpu"是measurement,"host"、"regon"是tag 2. measurement,相当于表 3. Tag:标签值,索引作用,类型只能是string 4. pont:一个时间点的数据,如果同一个时间点的tag一致,值就会覆盖。Influxdb写入数据可以用日志采集工具,也可以用Http API :
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server02 value=0.67 cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257 cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257'Grafana 设置数据源 配置监控
