想实时采集约 2000 台服务器的系统运行时快照,当中间件或应用出问题的时候能翻采集记录排查,大家有啥思路吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zhoudaiyu
V2EX    程序员

想实时采集约 2000 台服务器的系统运行时快照,当中间件或应用出问题的时候能翻采集记录排查,大家有啥思路吗?

  •  
  •   zhoudaiyu
    PRO
    2021-02-09 11:23:32 +08:00 3318 次点击
    这是一个创建于 1705 天前的主题,其中的信息可能已经有所发展或是发生改变。

    抓取的信息有 CPU 、内存、IO 、进(线)程、网络连接情况,还可能有一些中间件的特有的指标,大概 1s 抓取一次。我的思路是部署 agent 到每台机器做采集工作(目前试过用 go 调用 shell 去抓取,然后再把 shell 的 stdout 做解析和整合),将整个后结果推到 Kafka,再用 kafka-xx-connetor 或者类似的东西把 kafka 的数据同步到 ES 、mongo 或者 mysql 里。请问大家觉得我这个思路怎么样?还有就是有啥更好想法吗?包括抓取指标的维度、抓取方式、数据转移链路,存储后端等等方面。

    24 条回复    2021-02-10 13:26:58 +08:00
    Aumujun
        1
    Aumujun  
       2021-02-09 11:27:39 +08:00
    你需要的应该是“ZABBIX”这种东西
    cslive
        2
    cslive  
       2021-02-09 11:29:40 +08:00
    日志都单独挂载在一个一盘里,然后将日志扔到 hadoop 里吧
    Qetesh
        3
    Qetesh  
       2021-02-09 11:30:19 +08:00 via iPhone
    同意楼上,感觉楼主要的是监控吧
    主机监控和 apm 监控
    zhoudaiyu
        4
    zhoudaiyu  
    OP
    PRO
       2021-02-09 11:38:07 +08:00 via iPhone
    @Aumujun
    @Qetesh Zabbix 我了解,我们用的 Falcon-Agent,这个 falcon 都是以分钟为单位上报数据的,有时候 cpu 尖峰就是几秒的事情,感觉 falcon 时间尺度不够使
    zhoudaiyu
        5
    zhoudaiyu  
    OP
    PRO
       2021-02-09 11:38:28 +08:00 via iPhone
    @cslive 也是要有这个 agent 吧
    eason1874
        6
    eason1874  
       2021-02-09 11:41:08 +08:00
    我搞新东西,自己没经验就会找大厂产品研究下。

    看看腾讯云、阿里云那些 agent 脚本,看看网站的控制台面板,看看云监控自定义上报功能,就能猜到他们怎么设计的吧。
    ElmerZhang
        7
    ElmerZhang  
       2021-02-09 11:50:40 +08:00   1
    本机打日志然后 fluentd 之类的收集一下就好了。
    通用指标可以试试 dstat
    zhoudaiyu
        8
    zhoudaiyu  
    OP
    PRO
       2021-02-09 11:57:52 +08:00 via iPhone
    @eason1874 好主意老哥,我这就去看看
    @ElmerZhang dstat 这个很不错啊,多谢多谢
    defunct9
        9
    defunct9  
       2021-02-09 15:29:47 +08:00 via iPhone   1
    prometheus
    DoctorCat
        10
    DoctorCat  
       2021-02-09 15:32:17 +08:00
    prometheus
    jlwrp
        11
    jlwrp  
       2021-02-09 15:35:42 +08:00
    ELk
    wzwwzw
        12
    wzwwzw  
       2021-02-09 18:10:57 +08:00
    prometheus
    pc10201
        13
    pc10201  
       2021-02-09 20:41:20 +08:00
    有一个软件叫 atop,不过推荐一分钟采集一次
    xuzhzzz
        14
    xuzhzzz  
       2021-02-09 21:27:35 +08:00 via iPhone
    别乱想方案,找开源的行吗
    CallMeReznov
        15
    CallMeReznov  
       2021-02-09 21:38:17 +08:00
    zabbix 自己调整下取值的间隔,你想 1 秒取一次都可以!
    Lemeng
        16
    Lemeng  
       2021-02-09 21:48:08 +08:00
    看看也想了解了解
    AnyISalIn
        17
    AnyISalIn  
       2021-02-09 22:19:13 +08:00
    Prometheus, Zabbix 之类的方案都行,就是抓取周期为 1s 频率太高,这里的难点在于你的数据要存储多久。

    Zabbix 的问题在于后端 数据通过 MySQL 存储,数据库是一个很大的瓶颈,横向扩展只能通过类似 Sharding 的方案来做。
    Prometheus 支持的插件比较多,大部分中间件都能覆盖,而且 TSDB 的性能很强劲,性能应该不是问题,但集群方案得借助第三方方案类似 Thanos, Cortex 来解决,并且对内存的要求很高 (默认 2 小时内的数据都放在内存里,如果 1s 一次采集,数据量太大了),如果要做的话,你这种需求可能要用 hasmod + thanos 才能搞定。

    ELK (MetricBit) 的方案也是可以的,扩展性很强,但是你这种时间粒度和规模的要求,索引会很大,并且 Elasticsearch 本身的维护成本也很高。

    主要的难点不是 2000 台机器,同样是 2000 台机器,15/30 秒抓取一次 1s 的抓取频率,会让数据规模翻几十倍。
    akira
        18
    akira  
       2021-02-09 23:09:38 +08:00
    1s 一次,这个有点夸张了啊。。
    1 分钟一次外面现成的方案挺多的
    victor97
        19
    victor97  
       2021-02-10 08:04:32 +08:00 via Android
    本地一秒钟抓一次,传可以一分钟传一次。另外也可以只传一分钟内的最大值,最小值和平均值。
    sampeng
        20
    sampeng  
       2021-02-10 09:42:03 +08:00 via iPhone   1
    没有任何监控有需要 1 秒监控一次的……头一次做监控的时候总是这么想,我需要 2 秒监控一次。本质上监控是统计问题,没有真正的所谓这个时间点性能怎么样。都是通过多个采样点计算出大致的。只要采样点足够多就是可信的。1 秒和一分钟的区别仅仅是精读差别,甚至可以说汇出图出来没有任何指导价值…因为抖动可能大得吓人。而抖动又没有价值

    比如说流量,一秒飙到 100Mb 很正常,持续一分钟也很正常,只有持续 10 分钟可能不正常。所以一秒间隔采样点没价值。浪费性能

    再比如抖动最多的内存,java 虚拟机内部先把内存分走了,下一秒就回收掉了。

    监控只有看持续才会有有问题。瞬间点没任何指导价值
    Lee2019
        21
    Lee2019  
       2021-02-10 09:50:24 +08:00
    1s 一次说实话没必要,这种瞬时的尖峰是很正常的吧
    u2r1Hqo6HExmNsrt
        22
    u2r1Hqo6HExmNsrt  
       2021-02-10 09:58:44 +08:00
    @sampeng 抖动为什么没有价值?不是还能看看 gc 的情况吗(如果不用 java 自带的 gc 记录)。
    sampeng
        23
    sampeng  
       2021-02-10 10:25:23 +08:00 via iPhone
    @Nillouise 因为只有持续 n 分钟以上的才需要干预。几秒钟维度的监控,没有处理的必要,浪费人力资源
    py2ex
        24
    py2ex  
       2021-02-10 13:26:58 +08:00
    @Lee2019 @Nillouise @sampeng 1s 监控在数据量大的时候(贴主想做 2000 台服务器),性能优化也是很大的挑战
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     982 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:03 PVG 07:03 LAX 16:03 JFK 19:03
    Do have faith in what you're doing.
    ubao 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