刚刚接触时序库,看到网上Influxdb关注度非常高,使用广泛,于是动手搭建influxdb,先介绍下我的搭建环境:
我使用的是centos7系统,搭建流程如下:
参考文章:https://www.cnblogs.com/huang-yc/p/10500098.html 非常感谢!
1、修改yum包管理文件,如果没有yum,请自行安装,可以参考 https://www.cnblogs.com/jukaiit/p/8877975.html
vi /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
注:这个 influxdb.repo 是默认没有的
2、安装:
sudo yum install influxdb
3、开启
sudo systemctl start influxdb
如果没有报错啥的,一般是开启成功了,下面尝试一下:
直接运行: influx
会起来交互模式!
可以看到版本号!
目前的influxdb只支持单机版本,而集群版本是收费的,对于一般的中小企业,这样的单机版本是够用了,在集群收费后,有一个依赖的多写项目开放了,这个项目就是influxdb-relay,这个项目的地址是:
https://github.com/vente-privee/influxdb-relay
安装之前,需要安装go环境,安装流程如下:
这里使用二进制源码包来安装:
下载go1.10.2.linux-amd64.tar.gz
Whet https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz
然后解压:
tar xzvf go1.10.2.linux-amd64.tar.gz
然后在任意目录运行查看版本:
[root@jordy tmp]# go version
-bash: go: command not found
发现缺少环境变量配置
然后:
当前我的解压目录是:
/usr/local/src/golang/go/bin
在打开:
vim /etc/profile
然后在最后添加:
# set path for golang
export PATH=$PATH:/usr/local/src/golang/go/bin
然后source使其生效:
source /etc/profile
然后查看版本:
[root@jordy bin]# cd /tmp/
[root@jordy tmp]# go version
go version go1.10.2 linux/amd64
ok,安装完毕
这里面有安装的过程,按照流程就可以安装,安装后需要配置好配置文件后,就可以启动了!
配置文件为 /etc/influxdb-relay/influxdb-relay.conf 一般是这个目录,没有的话,可以搜索 find / -name influxdb-relay.conf
我的配置文件内容是:
[[http]]
name = "example-http"
bind-addr = "127.0.0.1:9096"
output = [
{ name="influxdb-1", location = "http://127.0.0.1:8086/write" },
{ name="influxdb-2", location = "http://10.242.3.244:8086/write" },
]
[[udp]]
#name = "example-udp"
#bind-addr = "127.0.0.1:19096"
#read-buffer = 0 # default
#output = [
# { name="influxdb-1", location="127.0.0.1:8089", mtu=512 },
# { name="influxdb-2", location="127.0.0.1:7089", mtu=1024 },
#]
我这个配置,是配置了本机的influxdb服务,也配置了 10.242.3.244 机器上的influxdb服务,也就是说
10.242.3.244 上也安装了ifnluxdb,这样就等于实现了两个服务器,当然,这两个服务器要互通!
然后需要用如下命令开启:
/root/go/bin/influxdb-relay -config /etc/influxdb-relay/influxdb-relay.conf
开启后,你会发现,在9096端口会起来一个进程,查看方式如下:
netstat -nap|grep 9096
这样,你就可以往9096这个端口写数据了,这样写数据,在两个服务器上都会有数据,也就是实现了双写!
其实相当于做了个备份,防止一个服务器出问题!
写入方式如下:
curl -i -XPOST 'http://localhost:9096/write?db=iwaterdata' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.67'
以上命令直接在linux命令行下执行,那个数据库改成你的,默认是没有数据库的,需要先创建,关于这个使用介绍,推荐一个网址:
https://jasper-zhang1.gitbooks.io/influxdb/content/
其实,以上说上来也是简单的做了备份,两个服务器都存了,取的时候从任何一个取都可以,注意取数据默认端口是8086。
说来也算不上分布式,因为两个系统之间其实没有做交互!