V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0987363
V2EX  ›  Kubernetes

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

  •  
  •   0987363 · 34 天前 · 2616 次点击
    这是一个创建于 34 天前的主题,其中的信息可能已经有所发展或是发生改变。
    机房托管,自建的 k8s ,几台 es 物理机做日志集群。

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

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

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

    真要是不差钱可以直接用 datadog 或者 dynatrace 之类的服务,直接把日志发给他们,整个监控+日志查询+归档一条龙,可用性要比开源方案强的多,就是要很多¥¥¥¥
    Bromine0x23
        17
    Bromine0x23  
       34 天前
    那只能用 Filebeat 采集 /var/log/containers ,再同时输出到 ES 和本地文件了
    sampeng
        18
    sampeng  
       33 天前
    你本来就有个 agent 每台机器上进行采集日志啊。加一个 output 输出到 NFS 的盘上就好了啊。我们是云服务,所以一个 output 是 kafka 。kafka 分两个 output 一个 s3 一个 es 。也做过直接 agent 分两个 output ,一个直接往 nfs 上 backup 一份,一个给 es 。但其实。。99%的原因是压根没打日志。1%的可能是 es 有并发限制丢弃了,加个 kafka 就不会丢了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5520 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 09:06 · PVG 17:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.