influxDB 和 cadvisor 集成问题

influxDB and cadvisor integration issue

我想通过 influxdb 访问从 cadvisor 收集的数据 这是我的 docker 配置:

//for cadvisor
docker run     
--volume=/:/rootfs:ro     
--volume=/var/run:/var/run:rw     
--volume=/sys:/sys:ro     
--volume=/var/lib/docker/:/var/lib/docker:ro     
--publish=8080:8080     
--detach=true     
--name=cadvisorDB     
google/cadvisor:latest     
-storage_driver=influxdb     
-storage_driver_host=127.0.0.1:8086
-storage_driver_db=databaseName

//for InfluxDB
docker run 
-d 
-p 8083:8083 
-p 8086:8086 
--expose 8090 
--expose 8099 
tutum/influxdb
//and I created manually the databse through the WEB UI on localhost:8083   
with the name databaseName`

所以一旦我启动了两个容器,我就去 influxDB 探索数据(通过查询)。报错说没有数据

配置中的一切看起来都很好。问题可能出在这一行:

-storage_driver_host=127.0.0.1:8086

因为 127.0.0.1 指的是 cadvisor 容器本地主机,而不是您的本地主机。尝试改为 docker Nat ip(通常为 172.17.42.1)。

这是我在 "docker-compose" YAML 文件中使用的内容。应该很容易翻译成通常的 "docker run" 语法。在我的例子中,我在 cAdvisor 中链接了 InfluxDB 容器,因此 cAdvisor 知道如何解析主机名 "influxdb" 而不管分配给容器的内部 Docker IP。

influxdb:
  image: tutum/influxdb
  hostname: influxdb
  volumes:
    - ./influxdb:/data
  environment:
    - PRE_CREATE_DB=cadvisor
  ports:
    - "8083:8083"
    - "8086:8086"
  expose:
    - "8090"
    - "8099"

cadvisor:
  image: google/cadvisor
  hostname: cadvisor
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker:/var/lib/docker:ro
  ports:
    - "8089:8080"
  links:
    - influxdb
  command: -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

注意:如果您设置 PRE_CREATE_DB 环境变量,InfluxDB 可以自动创建您的数据库。