• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jdz
V2EX  ›  程序员

我想把多台机器上同一个服务的日志进行合并, 有什么好用的工具么

  •  
  •   jdz · Aug 28, 2024 · 3546 views
    This topic created in 804 days ago, the information mentioned may be changed or developed.

    日志的格式如下 [08-28 07:36:30 839420] [debug] [16169] [worker.cc:1100] ivyjxj,Foo, timer 我想把合并的日志按前面的时间进行排序

    16 replies  •  2024-08-29 11:33:07 +08:00
    summerLast
    summerLast
    Aug 28, 2024
    1
    elk
    xnplus
    xnplus
    Aug 28, 2024
    2
    syslogd
    tgcdz
    tgcdz
    Aug 28, 2024
    3
    Jemini
    Jemini
    Aug 28, 2024
    4
    elk ,loki
    0x5c0f
    0x5c0f
    Aug 28, 2024
    5
    如果不需要进行行合并,在 linux 下,你可以直接用 cat 合并为一个文件,然后 sort 命令排个序就行了,不过还是建议导入到 loki 这种日志系统里面在进行分析
    akin520
    akin520
    Aug 28, 2024
    6
    rsyslog
    lx0758
    lx0758
    Aug 28, 2024
    7
    公司用 elk, 自己用 loki
    amazingZL
    amazingZL
    Aug 28, 2024
    8
    分布式日志手机,还是上报到日志系统来弄方便,查日志也方便
    tf2
    tf2
    Aug 28, 2024
    9
    公司用 e+k 。 用 https://vector.dev/ 代替 l
    vacuitym
    vacuitym
    Aug 28, 2024
    10
    promtail + loki + grafana
    小项目十分友好
    onesixthree
    onesixthree
    Aug 28, 2024
    11
    1 、汇总到一起如果是容器可以挂载共享盘,多个文件汇总到一个目录下,然后用工具合并这些文件,例如
    @tgcdz
    2 、也可以使用 filebeat 等工具采集发送到队列,在汇总的地方进行消费重写到一个文件
    3 、容器内采用 EFS ,多个容器写入一个文件(共享写没实验过,不知道会不会冲突)
    Kaiv2
    Kaiv2
    Aug 28, 2024
    12
    如果感觉 ELK 太重,quickwit + vector 也不错
    目前我用于收集一下系统日志,quickwit 可以简单的查询
    jdz
    jdz
    OP
    Aug 28, 2024
    13
    @onesixthree 能根据每条日志的时间进行排序么
    ShineyWang
    ShineyWang
    Aug 28, 2024 via Android
    14
    https://datalust.co/seq
    不需要多复杂的日志中心可以试试 seq
    支持基本的查询,过滤,
    xuanbg
    xuanbg
    Aug 28, 2024
    15
    elk ,简单好用
    wxf666
    wxf666
    Aug 29, 2024
    16
    一个 `sort` 命令不就行了嘛。。你的日期部分也满足默认字典序

    里面有个选项:`-m, --merge 归并已排序的文件;不进行排序`

    你可以尝试如下命令(用了 `scp`、`curl` 两种方式,流式远程获取日志文件。远程服务器可以 `python3 -m http.server` 临时开个服务端):

    ```shell
    sort -m 本机日志.log <(curl -s http://远程主机 1IP:服务端口/路径/日志.log) <(scp -O 远程主机 2 用户 @远程主机 2IP:/路径/日志.log /dev/stdout) >合并后日志.log
    ```


    如,`sort -m <(seq 1 4) <(seq 3 6) <(seq 5 8)` 执行效果为:

    ```
    1
    2
    3
    3
    4
    4
    5
    5
    6
    6
    7
    8
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2337 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 113ms · UTC 00:19 · PVG 08:19 · LAX 16:19 · JFK 19:19
    ♥ Do have faith in what you're doing.