在GCP上运行InfluxDB
首先
因为有一个被称作InfluxDB的软件作为Prometheus的外部存储设备,所以可以在GCP的最便宜的实例上运行它,作为外部存储装置。
在GCP上创建一个实例。
在GCP中,有一项名为VM实例的服务,可以使用它来创建一个Ubuntu的机器。
根据以下条件,费用大约会是每个月7.11美元左右。
名称設定備考リージョンus-central1アイオワシリーズE2
マシンタイプe2-micro2 vCPU, 1GBimageUbuntu 20.04
マシンタイプ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的收费策略感到理解和认同。