有没有轻量级别的单机 Linux 监控 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
guanzhangzhang
V2EX    Linux

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

  •  
  •   guanzhangzhang
    zhangguanzhang 2024-05-08 12:42:38 +08:00 4920 次点击
    这是一个创建于 533 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有 daemon 类轻量监控:

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

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

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

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

    你 cli 直接挂一个 ssh 中间层,实时取服务器数据呗,都不需要上什么 daemon 。
    cctv6
        15
    cctv6  
       2024-05-08 14:48:04 +08:00 via Android
    我觉得你可以了解一下 sar ,一般系统软件仓库里面都有,有些还自带了。
    guanzhangzhang
        16
    guanzhangzhang  
    OP
       2024-05-08 14:48:45 +08:00
    @mayli 不是 golang 开发的
    guanzhangzhang
        17
    guanzhangzhang  
    OP
       2024-05-08 14:49:38 +08:00
    @cdlnls 如果没网呢系统还不自带,没内网仓库呢,os 还不是常规 os 呢
    guanzhangzhang
        18
    guanzhangzhang  
    OP
       2024-05-08 14:50:07 +08:00
    @tool2dx 单机,必须 golang 实现的,且支持历史数据
    guanzhangzhang
        19
    guanzhangzhang  
    OP
       2024-05-08 14:51:21 +08:00
    @RedisMasterNode #13 因为 cpu 架构不是 amd64 和 arm64 呢
    DIMOJANG
        20
    DIMOJANG  
       2024-05-08 15:00:59 +08:00
    guanzhangzhang
        21
    guanzhangzhang  
    OP
       2024-05-08 15:02:01 +08:00
    @DIMOJANG 好兄弟,看看标题的要求,轻量
    guanzhangzhang
        22
    guanzhangzhang  
    OP
       2024-05-08 15:02:34 +08:00
    @maughan 这个看了下,是探针请求,不是偏向历史+基础信息的监控实现
    xw
        23
    xw  
       2024-05-08 15:03:41 +08:00 via iPhone
    不大懂..,可以看看 nmon 是否符合
    Immunize
        24
    Immunize  
       2024-05-08 15:04:08 +08:00
    要不自己写一个?随手就能找到一个第三方库 https://github.com/mackerelio/go-osstat ,搞个 ticker 定时读取序列化写入到文件里呗。
    F7TsdQL45E0jmoiG
        25
    F7TsdQL45E0jmoiG  
       2024-05-08 15:38:26 +08:00
    这要求,也别 go 啦,shell 脚本就行
    dhb233
        26
    dhb233  
       2024-05-08 15:56:41 +08:00
    没人提 open-falcon 吗?除了最后一个不满足,别的应该都可以。当然了,这个不是为监控单机的,但是可以把几个组件都部署到一个机器上。
    用的是 go ,代码比较简单,不满足的也很容易自己改
    defunct9
        27
    defunct9  
       2024-05-08 16:00:00 +08:00
    自己写个得了。这鬼需求
    main1234
        28
    main1234  
       2024-05-08 16:10:53 +08:00
    atop 系统命令就解决了
    wujianhua22
        29
    wujianhua22  
       2024-05-08 16:36:14 +08:00
    需求都上了,还想要别人给你写吗?
    ZXiangQAQ
        30
    ZXiangQAQ  
       2024-05-08 17:52:18 +08:00
    直接起一个 node_exporter 不就行了,各种指标都能收集,至于展示,如果不想额外部署 prometheus ,自己写个查询 cli 去查想要的数据不就行了,反正 node_exporter 是标准 http ,自己解一下找找想要的 key[label]
    guanzhangzhang
        31
    guanzhangzhang  
    OP
       2024-05-08 19:16:33 +08:00
    @ZXiangQAQ 裸 exporter 不支持历史存储
    guanzhangzhang
        32
    guanzhangzhang  
    OP
       2024-05-08 19:17:22 +08:00
    @main1234 好兄弟,看看第一条附言
    qwertooo
        33
    qwertooo  
       2024-05-09 08:33:34 +08:00
    Prometheus 也不算重呀,该满足的条件都能满足......不满意你还是自己写一个吧
    qwertooo
        34
    qwertooo  
       2024-05-09 08:37:18 +08:00
    @guanzhangzhang Prometheus 和 node_exporter 放一台不就行了,指定地址 127.0.0.1......
    t2musiccn
        35
    t2musiccn  
       2024-05-09 09:03:41 +08:00
    当初学 golang 的时候写过一个单机的监控,循环将负载情况存入文本文件内:
    用了一个包 shirou/gopsutil
    lsk569937453
        36
    lsk569937453  
       2024-05-09 09:09:10 +08:00
    昨天手撸了一个,100 行代码而已。目前卡在了 cli 查看历史监控这里,数据已经存储在 sqlite ,查询的时候不知道用什么展示好点。
    guanzhangzhang
        37
    guanzhangzhang  
    OP
       2024-05-09 09:34:17 +08:00
    @lsk569937453 一般是 tui 框架展示会好些 https://github.com/pesos/grofer?tab=readme-ov-file#examples 这个的 tui 类似可以看看
    lsk569937453
        38
    lsk569937453  
       2024-05-09 09:43:01 +08:00
    @guanzhangzhang 这 terminal ui 库学起来头疼,算了。
    youyoumarco
        39
    youyoumarco  
       2024-05-09 09:49:20 +08:00
    自己写吧,改着也方便
    ZXiangQAQ
        40
    ZXiangQAQ  
       2024-05-09 10:39:12 +08:00
    @guanzhangzhang 那没办法了,如果存历史数据,那就得上时序数据库,然后还要从数据查,不如直接 prometheus 了,毕竟 prometheus 本质就是一个时序数据库,有非常好用的 PromQL ,只是额外多了些能自动拉数据的功能
    chengxiao
        41
    chengxiao  
       2024-05-09 10:44:59 +08:00
    https://github.com/rapidloop/rtop
    之前项目里用过这个,但是好久不更新了,有些需要改点自己写,开箱即用可能满足不了
    ansemz
        42
    ansemz  
       2024-05-09 13:38:32 +08:00
    sar 就可以了吧。
    guanzhangzhang
        43
    guanzhangzhang  
    OP
       2024-05-12 22:01:27 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5196 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:16 PVG 15:16 LAX 00:16 JFK 03:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86