InfluxDB原理与实战
上QQ阅读APP看书,第一时间看更新

2.1 InfluxDB在各环境下的安装部署

目前,InfluxDB支持在多个主流系统环境下的安装部署,如常用的UNIX/Linux、Mac OS和MS Windows环境等。本书主要以InfluxDB-v1.7.8这个最新的稳定版本为例来介绍。

在安装InfluxDB前还需要注意以下4点:

❑安装时需要使用root或管理员权限。

❑默认情况下,InfluxDB服务监听了两个端口:8086和8088。其中,8086端口是InfluxDB服务端HTTP RESTful API接入服务的监听端口,8088端口是RPC服务的监听端口,主要用于数据的备份与还原等。除了这些端口外,InfluxDB还集成了第三方插件的服务监听端口,所有端口都可以通过InfluxDB配置文件进行修改,默认情况下,该文件位于/etc/influxdb/influxdb.conf下。

❑InfluxDB使用本地的UTC时间作为数据的时间戳。如果时间出现异常,数据的时间戳也会发生错误,所以,需要提前配置NTP(Network Time Protocol,网络时间协议)服务,同步主机时间。

❑InfluxDB服务启动后,要确认防火墙(Iptables)是否已经开通了本机8086端口和8088端口的访问权限,确认方法如代码清单2-1所示。

代码清单2-1 确认防火墙是否已经开通了8086和8088的端口访问

        $ sudo iptables -L -nv --line | grep 8086
        $ sudo iptables -L -nv --line | grep 8088

在防火墙默认开启的情况下,以上命令如果未grep到8086端口和8088端口,就需要增加防火墙的授权策略,开启本机8086和8088的端口访问,iptables命令如代码清单2-2所示。

代码清单2-2 开启8086和8088端口访问

        $ sudo iptables -I INPUT 1-p tcp --dport 8086-j ACCEPT
        $ sudo iptables -I INPUT 1-p tcp --dport 8088-j ACCEPT

下面我们开始学习各环境下InfluxDB的安装部署。

2.1.1 RedHat & CentOS环境

在RedHat & CentOS环境下,官方提供了两种方式来安装InfluxDB:通过rpm软件包安装InfluxDB和通过yum软件包管理器安装InfluxDB。

1.通过rpm软件包安装

我们可以通过官方提供的rpm软件包在RedHat & CentOS系统中安装InfluxDB,首先使用wget命令下载最新稳定版的InfluxDB软件包,如代码清单2-3所示。

代码清单2-3 下载InfluxDB rpm软件包

        $ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm

然后,使用yum命令安装InfluxDB rpm软件包,如代码清单2-4所示。

代码清单2-4 通过yum命令安装InfluxDB rpm软件包

        $ sudo yum localinstall influxdb-1.7.8.x86_64.rpm

通过sudo service命令启动InfluxDB服务,如代码清单2-5所示。

代码清单2-5 启动InfluxDB服务

        $ sudo service influxdb start

如果你的操作系统使用的是Systemd(CentOS 7 +、RHEL 7+),则使用systemctl命令启动InfluxDB服务,如代码清单2-6所示。

代码清单2-6 通过systemctl命令启动InfluxDB服务

        $ sudo systemctl start influxdb

2.通过yum软件包管理器安装

RedHat和CentOS用户可以使用yum软件包管理器安装最新稳定版本的InfluxDB。

首先将InfluxData软件源分别添加到RedHat和CentOS系统中,如代码清单2-7所示。

代码清单2-7 添加InfluxData软件源仓库

        cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
        [influxdb]
        name = InfluxDB Repository - RHEL \$releasever
        baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
        enabled = 1
        gpgcheck = 1
        gpgkey = https://repos.influxdata.com/influxdb.key
        EOF

然后通过运行yum命令和service命令安装并启动InfluxDB服务,如代码清单2-8所示。

代码清单2-8 安装并启动InfluxDB服务

        $ sudo yum install influxdb
        $ sudo service influxdb start

如果你的操作系统使用的是Systemd(CentOS 7 +、RHEL 7+),则使用systemctl命令启动InfluxDB服务,如代码清单2-9所示。

代码清单2-9 安装并通过systemctl命令启动InfluxDB服务

        $ sudo yum install influxdb
        $ sudo systemctl start influxdb

2.1.2 Ubuntu & Debian环境

在Ubuntu & Debian环境下,官方提供了两种方式来安装InfluxDB:通过deb软件包安装InfluxDB和通过apt-get软件包管理器安装InfluxDB。

1.通过deb软件包安装

我们可以通过官方提供的deb软件包在Ubuntu & Debian系统中安装InfluxDB,首先使用wget命令下载最新稳定版本的InfluxDB软件包,如代码清单2-10所示。

代码清单2-10 下载InfluxDB deb软件包

        $ wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.8_amd64.deb

然后使用dpkg命令安装InfluxDB deb软件包,如代码清单2-11所示。

代码清单2-11 通过dpkg命令安装InfluxDB deb软件包

        $ sudo dpkg -i influxdb_1.7.8_amd64.deb

通过sudo service命令来启动InfluxDB服务,如代码清单2-12所示。

代码清单2-12 启动InfluxDB服务

        $ sudo service influxdb start

如果你的操作系统使用的是Systemd(Ubuntu 15.04 +、Debian 8+),则使用systemctl命令启动InfluxDB服务,如代码清单2-13所示。

代码清单2-13 通过systemctl命令启动InfluxDB服务

        $ sudo systemctl start influxdb

2.通过apt-get软件包管理器安装

Ubuntu和Debian用户可以使用apt-get软件包管理器安装最新稳定版本的InfluxDB。

首先将InfluxData软件源分别添加到Ubuntu和Debian系统中。在Ubuntu系统上,使用以下命令添加InfluxData软件源仓库,如代码清单2-14所示。

代码清单2-14 在Ubuntu系统上添加InfluxData软件源仓库

        wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
        source /etc/lsb-release
        echo  "deb  https://repos.influxdata.com/${DISTRIB_ID, , }  ${DISTRIB_CODENAME}
    stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

在Debian系统上,使用以下命令添加InfluxData软件源仓库,如代码清单2-15所示。

代码清单2-15 在Debian系统上添加InfluxData软件源仓库

        wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
        source /etc/os-release
        test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
        test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
        test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

然后通过apt-get命令和service命令安装并启动InfluxDB服务,如代码清单2-16所示。

代码清单2-16 安装并启动InfluxDB服务

        $ sudo apt-get update && sudo apt-get install influxdb
        $ sudo service influxdb start

如果你的操作系统使用的是Systemd(Ubuntu 15.04 +、Debian 8+),则使用systemctl命令启动InfluxDB服务,如代码清单2-17所示。

代码清单2-17 安装并通过systemctl命令启动InfluxDB服务

        $ sudo apt-get update && sudo apt-get install influxdb
        $ sudo systemctl unmask influxdb.service
        $ sudo systemctl start influxdb

2.1.3 Mac OS & OS X环境

在Mac OS & OS X环境下,官方提供了两种方式来安装InfluxDB:通过二进制软件包安装InfluxDB和通过brew安装InfluxDB。

1.通过二进制软件包安装

首先从InfluxData官网上下载最新稳定版本的InfluxDB Darwin软件包,如代码清单2-18所示。

代码清单2-18 下载InfluxDB Darwin软件包

        $  wget  https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8_darwin_amd64.tar.gz

然后解压缩InfluxDB Darwin软件包,如代码清单2-19所示。

代码清单2-19 解压缩InfluxDB Darwin软件包

        $ tar -xvzf influxdb-1.7.8_darwin_amd64.tar.gz

启动InfluxDB服务,如代码清单2-20所示。

代码清单2-20 启动InfluxDB服务

        $ cd ./influxdb-1.7.8-1/usr/bin/
        $ ./influxd -config ../../etc/influxdb/influxdb.conf

2.通过brew安装

通过brew来安装InfluxDB。brew是Mac OS系统中一个类似于yum的包管理工具。

首先来安装brew,如代码清单2-21所示。

代码清单2-21 安装brew

        $/usr/bin/ruby  -e  "$(curl  -fsSL  https://raw.githubusercontent.com/Homebrew/install/master/install)"

通过brew命令来安装InfluxDB,如代码清单2-22所示。

代码清单2-22 安装InfluxDB

        $ brew update
        $ brew install influxdb

然后配置InfluxDB服务开机默认启动,如代码清单2-23所示。

代码清单2-23 配置InfluxDB服务开机默认启动

        $ ln -sfv /usr/local/opt/influxdb/*.plist ~/Library/LaunchAgents

通过launchctl命令立即启动InfluxDB服务,如代码清单2-24所示。

代码清单2-24 启动InfluxDB服务

        $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.influxdb.plist

或者不使用launchctl命令,通过手动执行influxd命令启动InfluxDB服务,如代码清单2-25所示。

代码清单2-25 手动启动InfluxDB服务

        $ influxd -config /usr/local/etc/influxdb.conf

2.1.4 MS Windows环境

我们可以通过官方提供的MS Windows软件包安装InfluxDB,首先从浏览器下载最新稳定版本的InfluxDB软件包,下载地址如代码清单2-26所示。

代码清单2-26 InfluxDB MS Windows软件包下载地址

        https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8_windows_amd64.zip

下载后解压缩Unzip influxdb-1.7.8_windows_amd64.zip,如图2-1所示。

图2-1 MS Windows版本InfluxDB软件包内容

可以双击influxd.exe文件来启动InfluxDB MS Windows版本进程,如图2-2所示。

图2-2 启动InfluxDB进程

InfluxDB启动后,可以在cmd中执行“netstat -an”系统命令,查看是否有8086端口存在,如果存在,则说明InfluxDB启动成功,如图2-3所示。

图2-3 通过netstat命令查看Windows监听的端口

2.1.5 二进制软件包安装

官方提供了多种InfluxDB二进制软件包,分别为X64、X64(static)、X86和ARM环境。读者可以根据自己的实际情况来选择合适的二进制软件包进行安装。二进制软件包安装比较适合企业内网无法与互联网通信的情况,我们可以通过一台中转服务器将多种二进制软件包下载到本机,再传输到内网中不同类型的服务器上完成安装。

以Linux Binaries(64-bit)为例。首先使用wget命令从InfluxData官网下载最新稳定版本的InfluxDB Linux二进制软件包,如代码清单2-27所示。

代码清单2-27 下载InfluxDB Linux二进制软件包

        $ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8_linux_amd64.
    tar.gz

然后解压缩InfluxDB Linux二进制软件包,如代码清单2-28所示。

代码清单2-28 解压缩InfluxDB Linux二进制软件包

        $ tar -xvzf influxdb-1.7.8_linux_amd64.tar.gz

解压后目录结构如代码清单2-29所示,从中我们可以看到所有的二进制程序、配置文件、库文件和帮助文档都在一个根目录下,非常便于发布和安装使用。

代码清单2-29 InfluxDB Linux二进制软件包解压后的目录结构

        $ tree influxdb-1.7.8-1/
        influxdb-1.7.8-1/
        ├—— etc
        |   ├—— influxdb
        |   |   └—— influxdb.conf
        |   └—— logrotate.d
        |        └—— influxdb
        ├—— usr
        |   ├—— bin
        |   |   ├—— influx
        |   |   ├—— influxd
        |   |   ├—— influx_inspect
        |   |   ├—— influx_stress
        |   |   └—— influx_tsm
        |   ├—— lib
        |   |   └—— influxdb
        |   |        └—— scripts
        |   |             ├—— influxdb.service
        |   |             └—— init.sh
        |   └—— share
        |        └—— man
        |             └—— man1
        |                 ├—— influx.1.gz
        |                 ├—— influxd.1.gz
        |                 ├—— influxd-backup.1.gz
        |                 ├—— influxd-config.1.gz
        |                 ├—— influxd-restore.1.gz
        |                 ├—— influxd-run.1.gz
        |                 ├—— influxd-version.1.gz
        |                 ├—— influx_inspect.1.gz
        |                 ├—— influx_stress.1.gz
        |                 └—— influx_tsm.1.gz
        └—— var
            ├—— lib
            |   └—— influxdb
            └—— log
                └—— influxdb

进入influxdb-1.7.8-1的usr/bin目录后手动启动InfluxDB服务,如代码清单2-30所示。

代码清单2-30 启动InfluxDB服务

        $ sudo nohup ./influxd  --config ../../etc/influxdb/influxdb.conf &