天天看点

Influxdb的部署以及运行cadvisor

环境为:CentOS7.4

1.安装influxdb1.7

mkdir -p /home/influxdb/
cd /home/influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8_linux_amd64.tar.gz
tar xf influxdb-1.7.8_linux_amd64.tar.gz 
cd /home/influxdb/influxdb-1.7.8-1/
mkdir data log meta wal
cd /home/influxdb/influxdb-1.7.8-1/etc/influxdb
cp influxdb.conf influxdb.conf.bak           

2.目录解释

  • /usr/bin/

influxd    //influxdb服务器
influx      //influxdb命令行客户端
influx_inspect  //查看工具
influx_stress  //压力测试工具
influx_tsm  //数据库转换工具(将数据库从b1或bz1格式转换为tsm1格式)           
  • /var/lib/influxdb/

data  //存放最终存储的数据,文件以.tsm结尾
meta  //存放数据库元数据
wal  //存放预写日志文件           
  • /var/log/influxdb/

influxd.log  //日志文件           
  • /etc/influxdb/

influxdb.conf  //配置文件           
  • /var/run/influxdb/

influxd.pid  //PID文件           

3.修改配置文件

[root@es_data02 influxdb]# egrep -v "^#|^$|#" influxdb.conf
[meta]
  dir = "/home/influxdb/influxdb-1.7.8-1/meta"
[data]
  dir = "/home/influxdb/influxdb-1.7.8-1/data"
  wal-dir = "/home/influxdb/influxdb-1.7.8-1/wal"
  series-id-set-cache-size = 100
[coordinator]
[retention]
   enabled = true
   check-interval = "30m"
[shard-precreation]
[monitor]
[http]
[logging]
[subscriber]
[[graphite]]
[[collectd]]
[[opentsdb]]
[[udp]]
[continuous_queries]
[tls]           

4.启动

cd /home/influxdb/influxdb-1.7.8-1/logs
nohup  /home/influxdb/influxdb-1.7.8-1/usr/bin/influxd -config /home/influxdb/influxdb-1.7.8-1/etc/influxdb/influxdb.conf &           
  • 注:默认情况下,

    InfluxDB

    使用以下网络端口:
  1. TCP

    端口

    8083

    用于 InfluxDB 的管理面板(1.3版本之后无web界面);
  2. TCP

    8086

    用于通过 InfluxDB 的

    HTTP API

    进行客户端到服务器的通信;

5.登录

cd /home/influxdb/influxdb-1.7.8-1/usr/bin
[root@es_data02 bin]# ./influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> show databases;
name: databases
name
----
_internal           
  • 默认用户名密码为

    root

[root@es_data02 bin]# ./influx -username root -password root
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
>           

6.InfluxDB重要概念

  • database:

数据库

如之前创建的数据库

cadvisor

  • timestamp:

时间戳,因为

InfluxDB

是时序数据库,它的数据里面都有一列名为

time

的列,存储记录生成时间。

rx_bytes

中的

time

列,存储的就是时间戳。

  • fields:

包括

field key

field value

field set

几个概念。

field key

是字段名,在

rx_bytes

表中,字段名为

value

field value

是字段值,如

17858781633

1359398

等。

field set

是字段集合,由

field key

field value

构成

rx_bytes

中的字段集合如下:

value = 17858781633
value           
  • tags:

tag key

tag value

tag set

tag key

是标签名,在

rx_bytes

表中

container_name

game

machine

namespace

type

都是标签。

tag value

就是标签的值了。

tag set

就是标签集合,由

tag key

tag value

构成。

InfluxDB

中标签是可选的,不过标签是有索引的。

如果查询中经常用的字段,建议设置为标签而不是字段。标签相当于传统数据库中有索引的列。

  • retention policy:

数据保留策略,

cadvisor

的保留策略为

cadvisor_retention

,存储

30

天,副本为

1

。一个数据库可以有多个保留策略。

  • measurement:

类似传统数据看的表,是字段,标签以及

time

列的集合。

  • series:

共享同一个

retention policy

measurement

以及

tag set

的数据集合。

7.增删改查

  • 创建数据库

    cadvisor

> create database cadvisor;               
  • 创建用户和设置密码
> CREATE USER cadvisor WITH PASSWORD 'cadvisor';           
  • 授权数据库给指定用户
> GRANT ALL PRIVILEGES ON cadvisor TO cadvisor;           
  • 创建默认的数据保留策略,设置保存时间

    30

    1

> CREATE RETENTION POLICY "cadvisor_retention" ON "cadvisor" DURATION 30d REPLICATION 1 DEFAULT;           
  • 显示表
> show databases;
name: databases
name
----
_internal
> use cadvior;
> show MEASUREMENTS;
name: measurements
name
----
cpu_usage_per_cpu
cpu_usage_system
cpu_usage_total
cpu_usage_user
fs_limit
fs_usage
load_average
memory_usage
memory_working_set
rx_bytes
rx_errors
tx_bytes
tx_errors           
  • 查询内存使用
> select * from memory_usage order by time desc limit 5;
name: memory_usage
time                container_name                              machine      value
----                --------------                              -------      -----
1570606022314528492 /system.slice/systemd-user-sessions.service e1510f5156f6 0
1570606022165528044 /system.slice/rhel-import-state.service     e1510f5156f6 0
1570606022130190231 /system.slice                               e1510f5156f6 164671488
1570606022030381573 /user.slice                                 e1510f5156f6 518492160
1570606021889689198 /system.slice/telegraf.service              e1510f5156f6 1859584           

8.集成cadvisor

docker pull google/cadvisor:latest
docker run -d --name cadvisor -p 8080:8080 --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_user=root -storage_driver_password=root -storage_driver_host=192.168.1.8:8086            
  • 启动

    cadvisor

    容器,并使用

    influxdb

    为存储(

    cadvisor

    数据库名, 数据访问账号密码

    root

    , 地址为本地

    8086

    端口,别用

    127.0.0.1

    连不上)
docker pull google/cadvisor:latest
docker run -d \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_user=root \
-storage_driver_password=root \
-storage_driver_host=172.16.131.211:8086           

或者

docker run -d --name cadvisor -p 8080:8080 --volume=/:/rootfs:ro --volume