AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-587713

Ed Sabol's questions

Martin Hope
Ed Sabol
Asked: 2025-02-06 15:39:17 +0800 CST

为什么我的 syslog-ng Docker 容器每隔约 1 分钟重启一次?

  • 5

我有一个 Docker Swarm,其中运行着各种服务。我使用https://github.com/linuxserver/docker-syslog-ng添加了 syslog-ng OSE 服务。syslog-ng 堆栈具有以下 docker-compose.yml:

---
services:
  syslog:
    image: registry.local.net/syslog-ng:latest
    ports:
      - 514:514
    volumes:
      - /path/on/host/syslog-ng/config:/config
      - /path/on/host/log:/log
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - LOG_TO_STDOUT=1
#    healthcheck:
#      test: ["CMD-SHELL", "/usr/sbin/syslog-ng-ctl healthcheck -c /config/syslog-ng.ctl || exit 1"]
#      interval: 10s
#      timeout: 2s
#      retries: 3
    deploy:
      mode: replicated
      replicas: 1
      restart_policy:
        condition: on-failure
      update_config:
        parallelism: 1
        delay: 10s
    networks:
      syslog:

networks:
  syslog:
    external: true

我的 syslog-ng.conf 文件是这样的:

@version: 4.2
@include "scl.conf"

options {
     chain_hostnames(no);
     flush_lines(0);
     use_dns(no);
     time_reopen(1);
};

source net {
    tcp(ip(0.0.0.0) port(514));
};

template my_log_format {
    template("$MSG\n");
};

filter f_access_log { program("httpd.access") };

destination d_logs {
    file(
        "/log/TEST"
        owner("1000")
        group("1000")
        perm(0664)
        template(my_log_format)
        );
};

log {
    source(net); filter(f_access_log); destination(d_logs);
};

我已经在 Docker Swarm 中配置了一个 Apache 服务,以使用 将其日志发送到 syslog-ng 服务logger -T -t httpd.accept -n syslog -P 514 --rfc3164。

Syslog-ng 创建配置的日志文件,从 Apache 接收日志行,并定期将它们附加到配置的日志文件中。一切似乎都按我想要的方式进行。唯一的问题是 syslog-ng Docker 容器每 70-80 秒就会退出并重新启动一次。我尝试添加健康检查(上面已注释掉),但没有任何改变。检查已退出的容器显示,健康检查全部通过,直到容器以退出代码 137 退出,并且已退出容器的 docker 日志没有显示任何明显错误。

syslog-ng 当前日志文件显示以下内容(减去每行开头的时间戳):

Accepting connections; addr='AF_INET(0.0.0.0:514)'
syslog-ng starting up; version='4.8.1'
Syslog connection accepted; fd='14', client='AF_INET(10.0.6.244:37126)', local='AF_INET(0.0.0.0:514)'

在其中一个容器退出前的几秒,top容器内部显示以下内容:

top - 08:31:26 up 169 days, 17:44,  0 user,  load average: 1.13, 1.05, 1.05
Tasks:  15 total,   1 running,  14 sleeping,   0 stopped,   0 zombie
%Cpu(s): 23.8 us,  1.8 sy,  0.0 ni, 73.9 id,  0.0 wa,  0.2 hi,  0.2 si,  0.0 st 
MiB Mem :   7652.9 total,    405.8 free,   2924.0 used,   4968.6 buff/cache     
MiB Swap:   8192.0 total,   7883.4 free,    308.6 used.   4728.9 avail Mem 

编辑:我以为我通过添加找到了解决方案

    time-reap(30);
    mark-freq(10);

到 syslog-ng 全局选项。在我最初做出该更改后,Docker 容器保持运行近 5 分钟,但现在即使使用这些选项,它也会每隔一分钟左右退出并重新启动一次。

docker
  • 1 个回答
  • 54 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve