nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
840 stars 93 forks source link

日志文件占用过大 #79

Closed ZhangMingShuo closed 5 months ago

ZhangMingShuo commented 5 months ago

日志文件占用超过10g rnacos-log

ZhangMingShuo commented 5 months ago

docker运行rnacos集群如下图
rnacos
日志内容如下:
rnacoslog

heqingpan commented 5 months ago

r-nacos日志是输出到标准输出流,。运行时一般是通过托管服务运行(如docker,systemd,k8s等),然后托管服务都会有对输出日志的处理策略(如指定单个日志大小,最多存储的日志数量等)。

docker日志策略配置如下(gpt回答内容):


Docker应用输出日志大小可以通过以下几种方式来限制:

1. 使用 --log-opt 参数

在启动容器时,可以通过 --log-opt 参数来设置日志驱动的选项,包括日志文件的最大大小 (max-size) 和保存的最大文件数量 (max-file)。例如,要限制单个日志文件大小为100MB,并且最多保存3个这样的文件,可以这样启动容器:

docker run -d --name my_container --log-opt max-size=100m --log-opt max-file=3 my_image

2. 修改 Docker daemon 配置文件

若想为所有容器设置默认的日志大小限制,可以编辑 Docker daemon 的配置文件(通常是 /etc/docker/daemon.json),然后添加日志驱动的相关配置。例如:

{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
    }
}

之后,需要重启 Docker 守护进程以应用更改:

# 对于Systemd管理的系统
sudo systemctl daemon-reload
sudo systemctl restart docker

# 对于其他系统可能有不同的命令

请注意,这些设置只对新创建的容器生效,已存在的容器不会受到影响,需要重新创建容器以应用新的日志策略。

3. 使用 Docker Compose

如果你使用 Docker Compose 来管理服务,可以在 docker-compose.yml 文件中为服务定义日志限制:

version: '3'
services:
  my_service:
    image: my_image
    logging:
      driver: json-file
      options:
        max-size: 100m
        max-file: 3

注意事项

以上步骤可以帮助你有效地管理 Docker 容器的日志大小,避免因日志占用过多磁盘空间导致的问题。

heqingpan commented 5 months ago

也可以同时考虑通过r-nacos配置提升日志等级,减少输出日志量。

另外,单机docker运行r-nacos集群应该只用于测试集群功能。

r-nacos单结点写入性能一般比集群高,而单机单节点的稳定性和单机docker集群稳定性是相当的。

正式使用,如果只有一台服务器,建议只运行一个服务节点即可。