V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
0987363

新需求,要求所有 k8s 里的服务把日志都保存到本地磁盘

  •  
  •   0987363 · Mar 3, 2025 · 4018 views
    This topic created in 422 days ago, the information mentioned may be changed or developed.
    机房托管,自建的 k8s ,几台 es 物理机做日志集群。

    k8s 里跑的普通业务,没有什么特殊要求。

    现在是要求把 k8s 里跑的各种服务打印的日志全部保存到本地磁盘,理由是日志服务器会挂,会丢日志。。。
    18 replies    2025-03-04 18:24:17 +08:00
    cctv6
        1
    cctv6  
       Mar 3, 2025   ❤️ 5
    根据我的经验,90%不是日志服务器挂了,而是压根没打印。
    nxforce
        2
    nxforce  
       Mar 3, 2025
    对日志服务器做远程备份啊。

    打本地快照也行。
    Jokesy
        3
    Jokesy  
       Mar 3, 2025
    Pod 的日志默认都是在磁盘内部,/var/lib/docker/* 去可以找的到。
    idihs
        4
    idihs  
       Mar 4, 2025
    bro, try a random LLM(large language model
    birdhk
        5
    birdhk  
       Mar 4, 2025
    fluent-bit 、vector 这些日志收集组件不都可以直接收集 k8s 中的日志吗?收集到了想保存哪里就保存到哪里
    birdhk
        6
    birdhk  
       Mar 4, 2025
    直接 fluent-bit 收集或 vector 收集然后直接写入到 es 不就行了,没啥问题
    runzhliu
        7
    runzhliu  
       Mar 4, 2025
    k8s 节点也会挂,磁盘也可能有问题,光存本地肯定不行
    defunct9
        8
    defunct9  
       Mar 4, 2025
    最近正在搞这个,用 ilogtail 吧,满足你的需求
    dbak
        9
    dbak  
       Mar 4, 2025
    搞一个 nfs 网盘 挂载到容器/data/logs 下 把应用的日志都保存到这里 定期压缩归档
    cheng6563
        10
    cheng6563  
       Mar 4, 2025
    看你怎么部署的,比如直接用 vector daemonset 把/var/log/pods/全收集就完了。
    yelog
        11
    yelog  
       Mar 4, 2025
    直接 hostPath 落盘
    kd9yYw2RyhQwAwzn
        12
    kd9yYw2RyhQwAwzn  
       Mar 4, 2025
    这种碰到 pod 漂移 日志翻看起来会很痛苦吧
    tairan2006
        13
    tairan2006  
       Mar 4, 2025
    容器的 stdout 本来就保存在本地啊……
    set
        14
    set  
       Mar 4, 2025
    @Jokesy #3 对的
    $ cp /var/lib/docker/* /root/
    报个 1 个月开发工时, 其后就可以摸鱼拿钱了
    oudemen
        15
    oudemen  
       Mar 4, 2025
    存本地的话用 victorialogs 吧,兼容多种协议。也一天一个目录,方便归档和备份
    lff0305
        16
    lff0305  
       Mar 4, 2025
    用 fluent bit ,protail 之类(一般都是装成 daemon set ),监控/var/lib/docker 下面的日志文件,转发到日志服务器。日志服务器可以用 Loki 或者 ES 或者其它什么现在选择很多;
    可以装在本地自己定期备份,或者装在云上,直接用各种高可用的存储。

    真要是不差钱可以直接用 datadog 或者 dynatrace 之类的服务,直接把日志发给他们,整个监控+日志查询+归档一条龙,可用性要比开源方案强的多,就是要很多¥¥¥¥
    Bromine0x23
        17
    Bromine0x23  
       Mar 4, 2025
    那只能用 Filebeat 采集 /var/log/containers ,再同时输出到 ES 和本地文件了
    sampeng
        18
    sampeng  
       Mar 4, 2025
    你本来就有个 agent 每台机器上进行采集日志啊。加一个 output 输出到 NFS 的盘上就好了啊。我们是云服务,所以一个 output 是 kafka 。kafka 分两个 output 一个 s3 一个 es 。也做过直接 agent 分两个 output ,一个直接往 nfs 上 backup 一份,一个给 es 。但其实。。99%的原因是压根没打日志。1%的可能是 es 有并发限制丢弃了,加个 kafka 就不会丢了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2232 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 16:12 · PVG 00:12 · LAX 09:12 · JFK 12:12
    ♥ Do have faith in what you're doing.