公司生产机,购买阿里云 ECS ,系统 Debian 。由于阿里云的云监控要付费,计划自己搞个监控性能和资源的情况。
目前先使用 dstat 收集一下数据。后面可能考虑 njmon 。
找到的相关方案如下:

  1. dstat
    占用资源小,监控数据可配置,监控数据可保存 CSV 。但是数据需要自己生成图表(目前使用 Excel ),就是查看不方便。
  2. nmon / njmon
    占用资源小,监控数据基本无配置,nmon 可保存 CSV ,njmon 可保存 json 。官方提供工具生成图表。njmon 更高级,可搭配 InfluxDB 和 Grafana ,实现更好的数据展示。
  3. glances
    占用资源较大,可持久化监控数据,界面漂亮,部署方式多样(单机版、C/S 、Web )。未深入研究。
  4. netdata
    占用资源较大,可持久化监控数据,界面漂亮。比较奇怪的是,界面有比较多的地方提示登录 netdata cloud 。未深入研究。
    大家有无其它方案或建议?

首先,感谢各位回复!我觉得可以结贴并总结一下了。

1 )对于服务器监控方案,主要分为 4 个功能点:采集、存储、展示、警报。

2 )对于公司的服务器集群,有运维同事管理,Zabbix 是个合适的方案。功能全面,基于 Web 的图形化管理,支持中文等,直观易用。

3 ) node_exporter + Prometheus + Grafana ,这种方案适合开发人员使用。有回复提到可以监控业务数据。另外,Grafana 有警报功能(就是发通知)。整体是个完整的监控方案。

4 ) dstat / njmon + InfluxDB + Grafana ,个人对这种方案比较感兴趣。部署了 InfluxDB ,还能用于其它业务场景,比如只记录最近 30 天的点击数据。

btop

htop

"阿里云的云监控要付费",不懂别乱说,是免费的。

zabbix

#2 htop 不能记录历史数据吧?用来管理进程是挺好的

prometheus + grafana

#3 这样说吧,阿里云的云监控有免费额度,超过了会收费。

普罗米修斯和 grafana

node_exporter 收集 prometheus 存储 grafana 展示

推测规模不大,建议用 zabbix ,其他监控系统一套部署下来所占用的主机可能比你的业务集群都多。

不想自己配置,开箱即用,就 netdata ,想自己再去配置一堆就普罗米修斯。

#4
#10
看了下 zabbix ,是一套企业级解决方案。支持中文,界面直观,有警告通知等等,我找个时间玩玩。谢谢!

btop

监控又不要钱的,告警免费短信 1000 条 /月,不够用?

prometheus + grafana/zabbix 两台来~

阿里云云监控 基础指表免费的 够用啊 其他业务监控需要自己搭建监控补充

监控免费
告警:
钉钉|企微|飞书| slack Webhook
短信:免费额度 1000 条 /月,超出部分按 0.045 元 /条收费。
电话:0.15 元 /个。

这个不够用?

有想要较多的性能指标,还需要好看的图表页面,我推荐 Ganglia 。

虽然这个项目 2017 之后就没有怎么更新过了,但是用起来没问题,在生产环境中用了 6 年,占用 CPU 、内存和磁盘 IO 都很小,还可以将数据放到内存中,如果你不想占用磁盘 IO 的话。

同 6 楼和 9 楼,Prometheus+Gfafana

Zabbix 监控 ECS 、Prometheus 监控 应用、Grafana 做监控大盘

ecs 监控免费的啊

node_exporter + prometheus + grafana
你的 prometheus + grafana 再展示別的数据还能复用

prometheus +10086

snmp

机器数量低于 10 台建议,zabbix
高于 10 台,prometheus+ grafana 吧

Munin 很省资源

Zabbix 吧

node_exporter + prometheus + grafana
部署完了以后可以逐步在业务代码里添加 tracing ,收集聚合展示其他业务相关的 metric 。

#25 看过有文章说,prometheus 更适合于容器的监控。所以想请教一下你的结论是怎样总结得出?有没有相关的经验、数据或者文章可以参考一下?

该文章:
blog.51cto.com/lovebetterworld/2864084

#28 不好意思,涉及收集业务数据的方案,不是很明白。你意思是,在业务代码添加发送相关数据到 prometheus 的功能,然后就能分析和统计业务相关的指标吗?

说到监控,如果你对硬件 网络设备不关心,那么不要想,直接 prometheus 全家桶。
如果是硬件监控,zabbix PRTG 都是你的选择。
如果是云资源,数量 10 以下,没太多定制需求,直接用云厂商的监控。
所以答案很明显了。

自己部署的时候 投入的人力资源,新增的服务器资源, 比 云监控 便宜么。。

没错,node_exporter 只是输出 CPU/内存这些通用的硬件监测指标,还可以自行添加业务相关的数据源,在线用户数、订单量等,以及代码中结构化日志,有多少 warning 、error ,包括 payload ,都可以在 grafana 里可视化展示。
一般框架和库和 log infra 集成,代码里直接 tracing ,就可以自动收集、汇总、展示了。

#33 感谢!这个好玩~

没有相关文章,经验之谈,zabbix 易用性更强,prometheus 性能更好,相同的配置下,prometheus 的承载量大不少

#35 谢谢

#35 对了,我记得 Zabbix 是使用 MySQL 之类的关系数据库存储数据,所以相对于 Prometheus 的时序数据库,确实逊色

现代方案肯定是选 node_exporter + prometheus + grafana ,prometheus 还能接入众多第三方的 metrics ,代码的自定义 metrics ,显示自定义图表

如果有大量硬件需要监控,建议 Zabbix 。

其它场景我一般选择 Node Exporter + Prometheus + Grafana 。

备选方案 Telegraf + InfluxDB + Grafana 。

Nightingale 夜莺监控 All-In-One 方案,我们公司运维在用。 n9e.github.io/

prometheus 那一套我用下来感觉的缺点就是需要装一大堆 exporter ,暴露一堆端口;另外告警抑制之类的需要自己二次改动。不过总体下来比 zabbix 灵活很多,promql 真的很友好,开发可以对自己的需求编写 exporter 。我 elk 的告警就是对接到 prometheus 上的,不为别的,就是 promql 好使 灵活。

zabbix

我们组几十台服务器用的 Telegraf + InfluxDB + Grafana 。Telegraf 用的 docker 方式启动的,平时没出过啥问题,部署起来简直简单到起飞。Grafana 可以配置发报警我们目前是发送到 slack 的 channel 了,也是简单到爆炸