V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
fox0001
V2EX  ›  Linux

[交流] Linux 服务器,大家使用什么方案监控性能和资源?

  •  
  •   fox0001 · 2022-09-22 09:37:35 +08:00 via Android · 7853 次点击
    这是一个创建于 796 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司生产机,购买阿里云 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 条附言  ·  2022-09-23 00:33:55 +08:00
    首先,感谢各位回复!我觉得可以结贴并总结一下了。

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

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

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

    4 ) dstat / njmon + InfluxDB + Grafana ,个人对这种方案比较感兴趣。部署了 InfluxDB ,还能用于其它业务场景,比如只记录最近 30 天的点击数据。
    第 2 条附言  ·  2022-10-03 20:57:27 +08:00
    不好意思,dstat / njmon + InfluxDB + Grafana 不太好用,或者可以考虑回复中提到的 Telegraf + InfluxDB + Grafana 。

    1 ) dstat 最新版遇到这两个 bug:

    https://bugs.launchpad.net/ubuntu/+source/dstat/+bug/1905665

    https://github.com/dstat-real/dstat/issues/120

    2 ) njmon 收集的数据,Grafana 上的模板主要针对 AIX ,没找到好用的 Linux 模板。
    第 3 条附言  ·  148 天前
    目前在用 node_exporter + Prometheus + Grafana ,搭配 docker compose 特别好用。建议大家一步到位~

    另外,InfluxDB 野心太大,用起来也复杂(主要是查数据复杂),目前已弃坑。
    44 条回复    2022-11-30 15:08:41 +08:00
    kaiger
        1
    kaiger  
       2022-09-22 09:41:29 +08:00
    btop
    bishop
        2
    bishop  
       2022-09-22 09:46:06 +08:00
    htop
    salmon5
        3
    salmon5  
       2022-09-22 09:47:42 +08:00
    "阿里云的云监控要付费",不懂别乱说,是免费的。
    jifengg
        4
    jifengg  
       2022-09-22 09:51:29 +08:00   ❤️ 1
    zabbix
    fox0001
        5
    fox0001  
    OP
       2022-09-22 09:51:45 +08:00 via Android
    @bishop #2 htop 不能记录历史数据吧?用来管理进程是挺好的
    tiiis
        6
    tiiis  
       2022-09-22 09:54:52 +08:00   ❤️ 1
    prometheus + grafana
    fox0001
        7
    fox0001  
    OP
       2022-09-22 09:57:19 +08:00 via Android
    @salmon5 #3 这样说吧,阿里云的云监控有免费额度,超过了会收费。
    lindas
        8
    lindas  
       2022-09-22 10:08:43 +08:00
    普罗米修斯和 grafana
    Shawns
        9
    Shawns  
       2022-09-22 10:16:16 +08:00
    node_exporter 收集 prometheus 存储 grafana 展示
    Hasal
        10
    Hasal  
       2022-09-22 10:20:47 +08:00   ❤️ 1
    推测规模不大,建议用 zabbix ,其他监控系统一套部署下来所占用的主机可能比你的业务集群都多。
    dreamramon
        11
    dreamramon  
       2022-09-22 10:23:09 +08:00
    不想自己配置,开箱即用,就 netdata ,想自己再去配置一堆就普罗米修斯。
    fox0001
        12
    fox0001  
    OP
       2022-09-22 10:56:54 +08:00 via Android
    @jifengg #4
    @Hasal #10
    看了下 zabbix ,是一套企业级解决方案。支持中文,界面直观,有警告通知等等,我找个时间玩玩。谢谢!
    wxyrrcj
        13
    wxyrrcj  
       2022-09-22 13:07:00 +08:00 via Android
    btop
    salmon5
        14
    salmon5  
       2022-09-22 13:35:45 +08:00
    @fox0001 监控又不要钱的,告警免费短信 1000 条 /月,不够用?
    jiom
        15
    jiom  
       2022-09-22 13:56:38 +08:00
    prometheus + grafana/zabbix 两台来~
    huangdanyu
        16
    huangdanyu  
       2022-09-22 14:07:39 +08:00
    阿里云云监控 基础指表免费的 够用啊 其他业务监控需要自己搭建监控补充
    salmon5
        17
    salmon5  
       2022-09-22 14:48:58 +08:00
    监控免费
    告警:
    钉钉|企微|飞书| slack Webhook
    短信:免费额度 1000 条 /月,超出部分按 0.045 元 /条收费。
    电话:0.15 元 /个。

    这个不够用?
    asilin
        18
    asilin  
       2022-09-22 15:26:13 +08:00
    有想要较多的性能指标,还需要好看的图表页面,我推荐 Ganglia 。

    虽然这个项目 2017 之后就没有怎么更新过了,但是用起来没问题,在生产环境中用了 6 年,占用 CPU 、内存和磁盘 IO 都很小,还可以将数据放到内存中,如果你不想占用磁盘 IO 的话。
    xiaoz
        19
    xiaoz  
       2022-09-22 15:37:27 +08:00 via Android
    同 6 楼和 9 楼,Prometheus+Gfafana
    neilyoone
        20
    neilyoone  
       2022-09-22 17:31:56 +08:00   ❤️ 1
    Zabbix 监控 ECS 、Prometheus 监控 应用、Grafana 做监控大盘
    zoharSoul
        21
    zoharSoul  
       2022-09-22 17:40:47 +08:00
    ecs 监控免费的啊
    cnoder
        22
    cnoder  
       2022-09-22 18:30:26 +08:00
    node_exporter + prometheus + grafana
    你的 prometheus + grafana 再展示別的数据还能复用
    clickhouse
        23
    clickhouse  
       2022-09-22 18:54:40 +08:00
    prometheus +10086
    ZE3kr
        24
    ZE3kr  
       2022-09-22 19:22:55 +08:00 via iPhone
    snmp
    yghack
        25
    yghack  
       2022-09-22 19:43:02 +08:00
    机器数量低于 10 台建议,zabbix
    高于 10 台,prometheus+ grafana 吧
    wwhc
        26
    wwhc  
       2022-09-22 21:12:55 +08:00
    Munin 很省资源
    Songxwn
        27
    Songxwn  
       2022-09-22 22:32:14 +08:00
    Zabbix 吧
    Jirajine
        28
    Jirajine  
       2022-09-22 22:57:41 +08:00
    node_exporter + prometheus + grafana
    部署完了以后可以逐步在业务代码里添加 tracing ,收集聚合展示其他业务相关的 metric 。
    fox0001
        29
    fox0001  
    OP
       2022-09-22 23:54:40 +08:00 via Android
    @yghack #25 看过有文章说,prometheus 更适合于容器的监控。所以想请教一下你的结论是怎样总结得出?有没有相关的经验、数据或者文章可以参考一下?

    该文章:
    https://blog.51cto.com/lovebetterworld/2864084
    fox0001
        30
    fox0001  
    OP
       2022-09-23 00:02:19 +08:00 via Android
    @Jirajine #28 不好意思,涉及收集业务数据的方案,不是很明白。你意思是,在业务代码添加发送相关数据到 prometheus 的功能,然后就能分析和统计业务相关的指标吗?
    Alliot
        31
    Alliot  
       2022-09-23 00:37:14 +08:00 via Android
    说到监控,如果你对硬件 网络设备不关心,那么不要想,直接 prometheus 全家桶。
    如果是硬件监控,zabbix PRTG 都是你的选择。
    如果是云资源,数量 10 以下,没太多定制需求,直接用云厂商的监控。
    所以答案很明显了。
    akira
        32
    akira  
       2022-09-23 00:57:10 +08:00
    自己部署的时候 投入的人力资源,新增的服务器资源, 比 云监控 便宜么。。
    Jirajine
        33
    Jirajine  
       2022-09-23 01:26:40 +08:00   ❤️ 2
    @fox0001 没错,node_exporter 只是输出 CPU/内存这些通用的硬件监测指标,还可以自行添加业务相关的数据源,在线用户数、订单量等,以及代码中结构化日志,有多少 warning 、error ,包括 payload ,都可以在 grafana 里可视化展示。
    一般框架和库和 log infra 集成,代码里直接 tracing ,就可以自动收集、汇总、展示了。
    fox0001
        34
    fox0001  
    OP
       2022-09-23 06:17:45 +08:00 via Android
    @Jirajine #33 感谢!这个好玩~
    yghack
        35
    yghack  
       2022-09-23 06:53:30 +08:00
    @fox0001 没有相关文章,经验之谈,zabbix 易用性更强,prometheus 性能更好,相同的配置下,prometheus 的承载量大不少
    fox0001
        36
    fox0001  
    OP
       2022-09-23 07:57:00 +08:00 via Android
    @yghack #35 谢谢
    fox0001
        37
    fox0001  
    OP
       2022-09-23 08:14:30 +08:00 via Android
    @yghack #35 对了,我记得 Zabbix 是使用 MySQL 之类的关系数据库存储数据,所以相对于 Prometheus 的时序数据库,确实逊色
    liaohongxing
        38
    liaohongxing  
       2022-09-23 08:33:38 +08:00
    现代方案肯定是选 node_exporter + prometheus + grafana ,prometheus 还能接入众多第三方的 metrics ,代码的自定义 metrics ,显示自定义图表
    zent00
        39
    zent00  
       2022-09-23 08:40:56 +08:00   ❤️ 1
    如果有大量硬件需要监控,建议 Zabbix 。

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

    备选方案 Telegraf + InfluxDB + Grafana 。
    hoopan
        40
    hoopan  
       2022-09-23 08:57:47 +08:00   ❤️ 1
    Nightingale 夜莺监控 All-In-One 方案,我们公司运维在用。https://n9e.github.io/
    Aumujun
        41
    Aumujun  
       2022-09-23 09:52:56 +08:00   ❤️ 1
    prometheus 那一套我用下来感觉的缺点就是需要装一大堆 exporter ,暴露一堆端口;另外告警抑制之类的需要自己二次改动。不过总体下来比 zabbix 灵活很多,promql 真的很友好,开发可以对自己的需求编写 exporter 。我 elk 的告警就是对接到 prometheus 上的,不为别的,就是 promql 好使 灵活。
    huangzxx
        42
    huangzxx  
       2022-09-23 15:40:31 +08:00
    zabbix
    joApioVVx4M4X6Rf
        43
    joApioVVx4M4X6Rf  
       2022-09-23 20:48:08 +08:00
    我们组几十台服务器用的 Telegraf + InfluxDB + Grafana 。Telegraf 用的 docker 方式启动的,平时没出过啥问题,部署起来简直简单到起飞。Grafana 可以配置发报警我们目前是发送到 slack 的 channel 了,也是简单到爆炸
    laiwei
        44
    laiwei  
       2022-11-30 15:08:41 +08:00
    @neilyoone 可以试试夜莺监控 = Zabbix + Prometheus + Grafana :) https://github.com/ccfos/nightingale
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3269 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:39 · PVG 08:39 · LAX 16:39 · JFK 19:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.