r-nacos icon indicating copy to clipboard operation
r-nacos copied to clipboard

日志文件占用过大

Open ZhangMingShuo opened this issue 9 months ago • 3 comments

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

ZhangMingShuo avatar May 13 '24 08:05 ZhangMingShuo

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

ZhangMingShuo avatar May 13 '24 08:05 ZhangMingShuo

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

注意事项

  • 设置的日志大小限制和文件数量限制仅对新创建的容器生效。
  • 超过限制的旧日志文件会被自动删除,以确保日志目录不会无限制地增长。
  • 如果需要更高级的日志管理,如远程日志存储,可以考虑使用 syslog、journald 或其他第三方日志驱动。

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

heqingpan avatar May 13 '24 10:05 heqingpan

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

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

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

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

heqingpan avatar May 13 '24 10:05 heqingpan