目前,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的安装部署。
在RedHat & CentOS环境下,官方提供了两种方式来安装InfluxDB:通过rpm软件包安装InfluxDB和通过yum软件包管理器安装InfluxDB。
我们可以通过官方提供的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
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
在Ubuntu & Debian环境下,官方提供了两种方式来安装InfluxDB:通过deb软件包安装InfluxDB和通过apt-get软件包管理器安装InfluxDB。
我们可以通过官方提供的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
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
在Mac OS & OS X环境下,官方提供了两种方式来安装InfluxDB:通过二进制软件包安装InfluxDB和通过brew安装InfluxDB。
首先从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
通过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
我们可以通过官方提供的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所示。
InfluxDB启动后,可以在cmd中执行“netstat-an”系统命令,查看是否有8086端口存在,如果存在,则说明InfluxDB启动成功,如图2-3所示。
图2-2 启动InfluxDB进程
图2-3 通过netstat命令查看Windows监听的端口
官方提供了多种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 &