返回 导航

Docker / K8s

hangge.com

Docker - 通过容器安装部署InfluxDB数据库教程(以及Chronograf、Telegraf、Kapacitor)

作者:hangge | 2020-10-06 08:10
    InfluxDB 是一个开源分布式时序、时间和指标数据库,使用 Go 语言编写,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如 DevOps 监控数据,APP metricsloT 传感器数据和实时分析数据。
    我在之前写过文件介绍如何使用 InfluxDB 官方的安装程序进行 InfluxDB 数据库的安装(点击查看),本文介绍另一种方式:通过 Docker 来快速搭建 InfluxDB 数据库环境。

1,拉取镜像

首先执行如下命令将镜像下载到本地:
docker pull influxdb

2,启动容器 

(1)执行如下命令实例化 InfluxDB 服务:
参数说明:
  • -d:表示在后台启动容器;
  • -p 8086:8086:容器内部的 8086 端口映射主机的 8086 端口;
  • --name influxdb:将容器命名为 influxdb
  • -v /home/user/influxdb:/var/lib/influxdb:挂载目录,其中 /home/user/influxdb 是宿主机的目录
docker run -d -p 8086:8086 --name=influxdb -v /home/user/influxdb:/var/lib/influxdb influxdb

(2)执行 docker ps 命令确认容器启动成功:

3,执行命令

(1)首先执行如下命令进入 InfluxDB 实例的命令环境中:
docker exec -it influxdb bash

(2)接着执行 influx 命令连接到本地的 InfluxDB 实例上:

(3)第一次安装好 InfluxDB 之后是没有数据库的,我们执行如下命令创建一个 名为 mydb 的数据库:
说明:数据库的名字可以是被双引号引起来的任意 Unicode 字符。 如果名称只包含 ASCII 字母,数字或下划线,并且不以数字开头,那么也可以不用引起来。
CREATE DATABASE mydb

(4)然后执行如下命令可以显示当前所有的数据库:
SHOW DATABASES

附一:使用 Docker 安装部署 Chronograf、Telegraf、Kapacitor

1,安装 Chronograf

    InfluxDB 1.3 以及之后的版本已经去掉了自带的 web 页面,取而代之的是官方配套的展示工具 Chronograf(它也是官方全套 TICK 方案中的一部分)。之前我写过文件介绍如何使用 官方的安装程序进行 Chronograf 的安装:

(1)如果要通过容器安装部署 Chronograf 只需执行如下命令即可:
docker run -d --name chronograf -p 8888:8888 -v /home/user/chronograf:/var/lib/chronograf chronograf

(2)启动后使用浏览器访问 http://服务器IP:8888 就可以看到 Chronograf 欢迎页面了,接下来操作可以参考我之前的文章(点击查看):

2,安装 Telegraf

    Telegraf 是一个数据收集器,负责收集所有的原始数据,格式化后存入influxdbTelegraf 内置了大量的数据输入、输出和分析插件,能够收集 php-fpmnginxaccess logmysqlredis 等组件的监控数据。之前我写过文件介绍如何使用官方的安装程序进行 Telegraf 的安装:

(1)如果要通过容器安装部署,首先执行如下命令将镜像下载到本地:
docker pull telegraf

(2)然后执行如下命令创建个文件夹:
mkdir /home/user/telegraf

(3)接着执行如下命令启动并自动删除一个 telegraf,目的是为了把容器内的配置文件拷贝出来:
docker run --rm telegraf telegraf config > /home/user/telegraf/telegraf.conf

(4)然后执行如下命令编辑配置文件:
vi /home/user/telegraf/telegraf.conf

(5)这里我们将 InfluxDB 作为输出插件,OUTPUT PLUGINS 部分应具有以下 InfluxDB 输出设置(比如 InfluxDB 地址、数据库等):

(6)最后执行如下命令启动容器:
docker run -d --name telegraf -v /home/user/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro telegraf

(7)启动后,请求如下 InfluxDB 接口地址查询下 CPU 相关信息,如果有返回说明系统统计信息正在写入 InfluxDB。如果安装了 Chronograf 也可以在 Chronograf 页面上查看,具体参考我之前的文章(点击查看):
http://192.168.60.133:8086/query?q=select+*+from+telegraf..cpu

3,安装 Kapacitor

    Kapacitor 是一个脚本定义告警规则服务,用户通过 tickScript 脚本来对时序数据库当中的数据进行过滤,筛选,批处理等进行告警,告警信息可以通过日志保存在本地,或回插到 InfluxDB,还可以直接在告警产生后发起 http 请求到指定地址。之前我写过文件介绍如何使用官方的安装程序进行 Kapacitor 的安装:

(1)如果要通过容器安装部署,首先执行如下命令将镜像下载到本地:
docker pull kapacitor

(2)然后执行如下命令创建个文件夹:
mkdir /home/user/kapacitor

(3)接着执行如下命令启动并自动删除一个 kapacitor,目的是为了把容器内的配置文件拷贝出来:
docker run --rm kapacitor kapacitord config > /home/user/kapacitor/kapacitor.conf

(4)然后执行如下命令编辑配置文件:
vi /home/user/kapacitor/kapacitor.conf

(5)修改 InfluxDB 地址后保存退出:

(6)最后执行如下命令启动容器:
docker run -d -p 9092:9092 --name kapacitor -v /home/user/kapacitor/kapacitor.conf:/etc/kapacitor/kapacitor.conf:ro kapacitor

(7)如果安装了 Chronograf 组件话,我们接下来就可以直接在 Chronograf Web 页面上进行 Kapacitor 的配置了,具体参考我之前写的文章(点击查看)。

附二:使用 Docker Compose 运行 InfluxDB、Chronograf、Telegraf、Kapacitor 服务

    上面样例中 InfluxDBChronografTelegrafKapacitor 这几个服务我们需要手动分别执行一个个 docker 命令来启动,略显麻烦。我们可以通过编写 Docker Compose 的方式来启动容器,这样就不用记住容器启动命令了,方便快捷。

(1)首先按照本文“附一”部分的内容,将 telegraf.conf 和 kapacitor.conf 从容器中拷贝出来,并根据情况对其内容做修改。

(2)接着创建 docker-compose.yml 文件,内容如下:
version: '3'
  
services:
  influxdb:
    container_name: influxdb
    image: influxdb
    restart: always
    ports:
      - "8086:8086"
    volumes:
      - /home/user/influxdb:/var/lib/influxdb
    networks:
      - net-db
      
  chronograf:
    container_name: chronograf
    image: chronograf
    restart: always
    ports:
      - "8888:8888"
    volumes:
      - /home/user/chronograf:/var/lib/chronograf
    networks:
      - net-db

  telegraf:
    container_name: telegraf
    image: telegraf
    restart: always
    volumes:
      - /home/user/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
    networks:
      - net-db
      
  kapacitor:
    container_name: kapacitor
    image: kapacitor
    restart: always
    ports:
      - "9092:9092"
    volumes:
      - /home/user/kapacitor/kapacitor.conf:/etc/kapacitor/kapacitor.conf:ro
    networks:
      - net-db

networks:
  net-db:

(3)最后执行如下命令即可启动容器:
docker-compose up -d

(4)如果想要停止容器则执行如下命令:
docker-compose down
评论

全部评论(0)

回到顶部