在GCP上运行InfluxDB

首先

因为有一个被称作InfluxDB的软件作为Prometheus的外部存储设备,所以可以在GCP的最便宜的实例上运行它,作为外部存储装置。

在GCP上创建一个实例。

在GCP中,有一项名为VM实例的服务,可以使用它来创建一个Ubuntu的机器。
根据以下条件,费用大约会是每个月7.11美元左右。

名称設定備考リージョンus-central1アイオワシリーズE2
マシンタイプe2-micro2 vCPU, 1GBimageUbuntu 20.04

完成后,使用SSH通过终端进行访问并在该环境下进行工作。

调整SWAP设置

如果保持默认设置,InfluxDB可能会耗尽内存,为了能够使用SWAP,可以使用SWAP功能,并通过以下命令增加可用内存的使用量。

sudo fallocate -l 1G /swap
sudo chmod 600 /swap 
sudo mkswap /swap
sudo swapon /swap

在/etc/fstab文件中添加以下文本,并重新启动以使SWAP生效。

/swap none swap sw 0 0

启动InfluxDB。

由于使用容器可以更容易地设置InfluxDB服务器,因此进行Podman安装并在该环境中启动InfluxDB容器。

在中文中,Podman的安装

OS=xUbuntu_20.04
VERSION=1.22

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list

curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | apt-key add -
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | apt-key add -

apt-get update
apt-get install podman

InfluxDB的启动

以下是创建InfluxDB配置文件的方法。

[meta]
  dir = "/var/lib/influxdb/meta"

[data]
  dir = "/var/lib/influxdb/data"
  engine = "tsm1"
  wal-dir = "/var/lib/influxdb/wal"
  cache-max-memory-size = "512m"
  cache-snapshot-memory-size = "10m"
  compact-full-write-cold-duration = "1h"
  max-concurrent-compactions = 1
  compact-throughput = "12m"
  compact-throughput-burst = "12m"
  max-values-per-tag = 25000
  max-series-per-database = 250000
  max-index-log-file-size = "256k"
  series-id-set-cache-size = 25
[http]  
  # auth-enabled = true #認証できるユーザを作成したら有効にする
  max-body-size = 12500000
[logging]
  label = "error"
podman run --name=influxdb -p 8086:8086 -d -v $PWD/influxdb:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8.10

使用上述的设置,成功创建了InfluxDB服务器。

关于服务的发布。

可以通过防火墙开放8086端口,或者通过像Nginx等软件设置反向代理到8086端口来公开服务。

可以通过以下方式创建nginx的config文件。

erver {
  listen  443 ssl;
  ssl_certificate /key/server.crt;
  ssl_certificate_key /key/server.key;
  location / {
     proxy_pass http://localhost:8080/;
  }
  location /api/v1/prom/ {
     proxy_pass http://localhost:8086/api/v1/prom/;
  }
}

在上述文件中,将Grafana分配到3000端口是为了让其通过3000端口访问,并使其能够进行分配。

对于经营该服务的感受是怎样的?

尝试使用Prometheus将数据发送到InfluxDB服务器,但在最快的情况下,仅持续了一天,最长也只能持续五天左右,这给InfluxDB带来了过重的负载,导致了InfluxDB容器的崩溃。
根据设置可能可以改变一些情况,以避免它崩溃,但由于InfluxDB的设置较为困难,
也许修改发送到Prometheus的数据,仅发送最必要的数据可能是更好的选择。

此外,当尝试执行此操作时,我意外地发现DB服务器会经常崩溃,这让我对AWS和GCP的收费策略感到理解和认同。

bannerAds