V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
guanzhangzhang
V2EX  ›  Linux

有没有轻量级别的单机 Linux 监控

  •  
  •   guanzhangzhang ·
    zhangguanzhang · May 8, 2024 · 5587 views
    This topic created in 723 days ago, the information mentioned may be changed or developed.

    有没有 daemon 类轻量监控:

    • 必须 golang 开发的,不依赖 cgo
    • 单机实体 os 上使用,不需要啥 agent 和 server 架构,不需要支持监控容器
    • daemon 能收集 cpu ,mem ,iops ,盘读写,网卡带宽等之类的监控指标
    • 不依赖任何中间件,例如简单的 rrd 本地环形文件存储啥的,来支持历史监控数据存储,也就是一个二进制文件(daemon 和 cli)+配置文件就能快速部署起来
    • 查看历史监控不需要重依赖 web ,可以 cli 啥的查看历史监控信息,比如简单的查看 3d 内

    最后一条不满足也行,有的话我可以改改

    Supplement 1  ·  May 8, 2024
    😭好多回复为什么不看看要求
    不是常规 cpu 架构,不是常规系统,客户没有公网,没有内网包管理仓库,所以要求 golang 一个二进制,golang 天然支持交叉编译
    更别说监控全家桶了(标题都说明轻量了,要求也列了不要什么监控 agent 和 server )
    Supplement 2  ·  May 12, 2024
    伙计们,找到了个 https://github.com/amuluze/amprobe
    43 replies    2024-05-12 22:01:27 +08:00
    xxiaowangwang
        1
    xxiaowangwang  
       May 8, 2024
    啊,馆长
    libook
        2
    libook  
       May 8, 2024 via Android   ❤️ 1
    不知道为什么必须是 go 。

    如果是轻量级的话,可以看看 netdata ,我软路由上用的这个。
    libook
        3
    libook  
       May 8, 2024 via Android
    纯 go 的话有个 Prometheus 方案,但需要额外一台机器部署 Prometheus 数据库,适合汇总监控很多服务器的情况
    RedisMasterNode
        4
    RedisMasterNode  
       May 8, 2024
    为啥不在机器上跑一下 Prometheus + Node Exporter 呢...并且运行起来的 Prometheus 未来也可以帮忙监控其他的机器。
    mayli
        5
    mayli  
       May 8, 2024
    collected?
    maughan
        6
    maughan  
       May 8, 2024
    easeprobe 试下
    terrancesiu
        7
    terrancesiu  
       May 8, 2024
    netdata 呢
    rrfeng
        8
    rrfeng  
       May 8, 2024
    要求这么多,自己写一个吧。
    guanzhangzhang
        9
    guanzhangzhang  
    OP
       May 8, 2024
    @terrancesiu netdata 不是 golang
    guanzhangzhang
        10
    guanzhangzhang  
    OP
       May 8, 2024
    @libook #3 看看第二点,我只监控基础信息历史
    guanzhangzhang
        11
    guanzhangzhang  
    OP
       May 8, 2024
    @RedisMasterNode 因为理想是美好的,比如为啥我不能买彩票中 500w
    hingle
        12
    hingle  
       May 8, 2024   ❤️ 5
    我感觉 OP 只是想抄个现成的代码。
    RedisMasterNode
        13
    RedisMasterNode  
       May 8, 2024
    @guanzhangzhang 。。。回了一堆废话
    tool2dx
        14
    tool2dx  
       May 8, 2024
    linux 大部分监控数据都在/proc 目录下。

    你 cli 直接挂一个 ssh 中间层,实时取服务器数据呗,都不需要上什么 daemon 。
    cctv6
        15
    cctv6  
       May 8, 2024 via Android
    我觉得你可以了解一下 sar ,一般系统软件仓库里面都有,有些还自带了。
    guanzhangzhang
        16
    guanzhangzhang  
    OP
       May 8, 2024
    @mayli 不是 golang 开发的
    guanzhangzhang
        17
    guanzhangzhang  
    OP
       May 8, 2024
    @cdlnls 如果没网呢系统还不自带,没内网仓库呢,os 还不是常规 os 呢
    guanzhangzhang
        18
    guanzhangzhang  
    OP
       May 8, 2024
    @tool2dx 单机,必须 golang 实现的,且支持历史数据
    guanzhangzhang
        19
    guanzhangzhang  
    OP
       May 8, 2024
    @RedisMasterNode #13 因为 cpu 架构不是 amd64 和 arm64 呢
    DIMOJANG
        20
    DIMOJANG  
       May 8, 2024
    guanzhangzhang
        21
    guanzhangzhang  
    OP
       May 8, 2024
    @DIMOJANG 好兄弟,看看标题的要求,轻量😯
    guanzhangzhang
        22
    guanzhangzhang  
    OP
       May 8, 2024
    @maughan 这个看了下,是探针请求,不是偏向历史+基础信息的监控实现
    xw
        23
    xw  
       May 8, 2024 via iPhone
    不大懂..,可以看看 nmon 是否符合
    Immunize
        24
    Immunize  
       May 8, 2024
    要不自己写一个?随手就能找到一个第三方库 https://github.com/mackerelio/go-osstat ,搞个 ticker 定时读取序列化写入到文件里呗。
    F7TsdQL45E0jmoiG
        25
    F7TsdQL45E0jmoiG  
       May 8, 2024
    这要求,也别 go 啦,shell 脚本就行
    dhb233
        26
    dhb233  
       May 8, 2024
    没人提 open-falcon 吗?除了最后一个不满足,别的应该都可以。当然了,这个不是为监控单机的,但是可以把几个组件都部署到一个机器上。
    用的是 go ,代码比较简单,不满足的也很容易自己改
    defunct9
        27
    defunct9  
       May 8, 2024
    自己写个得了。这鬼需求
    main1234
        28
    main1234  
       May 8, 2024
    atop 系统命令就解决了
    wujianhua22
        29
    wujianhua22  
       May 8, 2024
    需求都上了,还想要别人给你写吗?
    ZXiangQAQ
        30
    ZXiangQAQ  
       May 8, 2024
    直接起一个 node_exporter 不就行了,各种指标都能收集,至于展示,如果不想额外部署 prometheus ,自己写个查询 cli 去查想要的数据不就行了,反正 node_exporter 是标准 http ,自己解一下找找想要的 key[label]
    guanzhangzhang
        31
    guanzhangzhang  
    OP
       May 8, 2024
    @ZXiangQAQ 😏裸 exporter 不支持历史存储
    guanzhangzhang
        32
    guanzhangzhang  
    OP
       May 8, 2024
    @main1234 好兄弟,看看第一条附言
    qwertooo
        33
    qwertooo  
       May 9, 2024
    Prometheus 也不算重呀,该满足的条件都能满足......不满意你还是自己写一个吧
    qwertooo
        34
    qwertooo  
       May 9, 2024
    @guanzhangzhang Prometheus 和 node_exporter 放一台不就行了,指定地址 127.0.0.1......
    t2musiccn
        35
    t2musiccn  
       May 9, 2024
    当初学 golang 的时候写过一个单机的监控,循环将负载情况存入文本文件内:
    用了一个包 shirou/gopsutil
    lsk569937453
        36
    lsk569937453  
       May 9, 2024
    昨天手撸了一个,100 行代码而已。目前卡在了 cli 查看历史监控这里,数据已经存储在 sqlite ,查询的时候不知道用什么展示好点。
    guanzhangzhang
        37
    guanzhangzhang  
    OP
       May 9, 2024
    @lsk569937453 一般是 tui 框架展示会好些 https://github.com/pesos/grofer?tab=readme-ov-file#examples 这个的 tui 类似可以看看
    lsk569937453
        38
    lsk569937453  
       May 9, 2024
    @guanzhangzhang 这 terminal ui 库学起来头疼,算了。
    youyoumarco
        39
    youyoumarco  
       May 9, 2024
    自己写吧,改着也方便
    ZXiangQAQ
        40
    ZXiangQAQ  
       May 9, 2024
    @guanzhangzhang 那没办法了,如果存历史数据,那就得上时序数据库,然后还要从数据查,不如直接 prometheus 了,毕竟 prometheus 本质就是一个时序数据库,有非常好用的 PromQL ,只是额外多了些能自动拉数据的功能
    chengxiao
        41
    chengxiao  
       May 9, 2024
    https://github.com/rapidloop/rtop
    之前项目里用过这个,但是好久不更新了,有些需要改点自己写,开箱即用可能满足不了
    ansemz
        42
    ansemz  
       May 9, 2024
    sar 就可以了吧。
    guanzhangzhang
        43
    guanzhangzhang  
    OP
       May 12, 2024
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   922 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 23:23 · PVG 07:23 · LAX 16:23 · JFK 19:23
    ♥ Do have faith in what you're doing.