抓取的信息有 CPU 、内存、IO 、进(线)程、网络连接情况,还可能有一些中间件的特有的指标,大概 1s 抓取一次。我的思路是部署 agent 到每台机器做采集工作(目前试过用 go 调用 shell 去抓取,然后再把 shell 的 stdout 做解析和整合),将整个后结果推到 Kafka,再用 kafka-xx-connetor 或者类似的东西把 kafka 的数据同步到 ES 、mongo 或者 mysql 里。请问大家觉得我这个思路怎么样?还有就是有啥更好想法吗?包括抓取指标的维度、抓取方式、数据转移链路,存储后端等等方面。
1
Aumujun 2021-02-09 11:27:39 +08:00
你需要的应该是“ZABBIX”这种东西
|
2
cslive 2021-02-09 11:29:40 +08:00
日志都单独挂载在一个一盘里,然后将日志扔到 hadoop 里吧
|
3
Qetesh 2021-02-09 11:30:19 +08:00 via iPhone
同意楼上,感觉楼主要的是监控吧
主机监控和 apm 监控 |
4
zhoudaiyu OP |
6
eason1874 2021-02-09 11:41:08 +08:00
我搞新东西,自己没经验就会找大厂产品研究下。
看看腾讯云、阿里云那些 agent 脚本,看看网站的控制台面板,看看云监控自定义上报功能,就能猜到他们怎么设计的吧。 |
7
ElmerZhang 2021-02-09 11:50:40 +08:00 1
本机打日志然后 fluentd 之类的收集一下就好了。
通用指标可以试试 dstat |
8
zhoudaiyu OP |
9
defunct9 2021-02-09 15:29:47 +08:00 via iPhone 1
prometheus
|
10
DoctorCat 2021-02-09 15:32:17 +08:00
prometheus
|
11
jlwrp 2021-02-09 15:35:42 +08:00
ELk
|
12
wzwwzw 2021-02-09 18:10:57 +08:00
prometheus
|
13
pc10201 2021-02-09 20:41:20 +08:00
有一个软件叫 atop,不过推荐一分钟采集一次
|
14
xuzhzzz 2021-02-09 21:27:35 +08:00 via iPhone
别乱想方案,找开源的行吗
|
15
CallMeReznov 2021-02-09 21:38:17 +08:00
zabbix 自己调整下取值的间隔,你想 1 秒取一次都可以!
|
16
Lemeng 2021-02-09 21:48:08 +08:00
看看也想了解了解
|
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 的抓取频率,会让数据规模翻几十倍。 |
18
akira 2021-02-09 23:09:38 +08:00
1s 一次,这个有点夸张了啊。。
1 分钟一次外面现成的方案挺多的 |
19
victor97 2021-02-10 08:04:32 +08:00 via Android
本地一秒钟抓一次,传可以一分钟传一次。另外也可以只传一分钟内的最大值,最小值和平均值。
|
20
sampeng 2021-02-10 09:42:03 +08:00 via iPhone 1
没有任何监控有需要 1 秒监控一次的……头一次做监控的时候总是这么想,我需要 2 秒监控一次。本质上监控是统计问题,没有真正的所谓这个时间点性能怎么样。都是通过多个采样点计算出大致的。只要采样点足够多就是可信的。1 秒和一分钟的区别仅仅是精读差别,甚至可以说汇出图出来没有任何指导价值…因为抖动可能大得吓人。而抖动又没有价值
比如说流量,一秒飙到 100Mb 很正常,持续一分钟也很正常,只有持续 10 分钟可能不正常。所以一秒间隔采样点没价值。浪费性能 再比如抖动最多的内存,java 虚拟机内部先把内存分走了,下一秒就回收掉了。 监控只有看持续才会有有问题。瞬间点没任何指导价值 |
21
Lee2019 2021-02-10 09:50:24 +08:00
1s 一次说实话没必要,这种瞬时的尖峰是很正常的吧
|