Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
guanzhangzhang
V2EX  ›  Linux

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

  •  
  •   guanzhangzhang ·
    zhangguanzhang · May 8, 2024 · 6597 views
    This topic created in 920 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
    xxiaowangwang
    May 8, 2024
    1
    啊,馆长
    libook
    libook
    May 8, 2024 via Android❤️1
    2
    不知道为什么必须是 go 。

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

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