V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tianshiyeben
V2EX  ›  程序员

年前最后一弹, Linux 性能检测工具开源项目推荐

  •  
  •   tianshiyeben ·
    tianshiyeben · 2019-01-30 09:07:42 +08:00 · 4429 次点击
    这是一个创建于 2126 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/tianshiyeben/wgcloud

    WGCLOUD

    linux 性能监测工具,运维监控,网络吞吐率,服务器 cpu 监控,内存监控。

    a.jpg

    b.jpg

    c.jpg

    依赖环境

    1.JDK1.8

    2.tomcat8.5+

    3.mysql5.6+

    4.CentOS6.4 或以上,Red Hat6.4 或以上,其他系统暂不支持

    5.检测被监控的 HOST 主机是否已经安装 sysstat,如下信息说明已经安装,如果没有请通过 yum install sysstat 安装

    [root@localhost ~]# mpstat
    Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 	2019 年 01 月 10 日 	_x86_64_	(4 CPU)
    
    13 时 40 分 26 秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    13 时 40 分 26 秒  all    0.60    0.00    0.19    0.16    0.00    0.03    0.00    0.00    0.00   99.02
    

    源码使用

    用 eclispe 新建一个 web maven 工程,使用 src 来替换新建工程的 src 目录,使用 pom.xml 替换新建工程里的 pom.xml ,设置好 jdk 即可。

    sql 文件夹是数据库创建脚本,在 mysql 新建名为 dats 的数据库,执行 dats.sql 脚本

    application.properties,配置数据库链接信息

    host.properties,配置监控服务器信息,格式为 ip=端口 //用户名 //密码,可以配置多个,尽量不要使用 root 账号

    因为本应用会通过配置的 host.properties 信息来从目标服务器获取运行状态,所以被监控的服务器不需要安装本应用。

    监控指标

    %usr:用户态的 CPU 时间(%)
    %sys:核心时间(%))
    %idle:空闲时间(%)
    %iowait:IO 等待时间(%)
    rxpck/s:每秒钟接收的数据包
    txpck/s:每秒钟发送的数据包
    rxkB/s:每秒钟接收的 kb
    txkB/s:每秒钟发送的 kb
    active/s:每秒本地发起的 TCP 连接数,既通过 connect 调用创建的 TCP 连接
    passive/s:每秒远程发起的 TCP 连接数,即通过 accept 调用创建的 TCP 连接
    %CPU:进程占用 CPU 的使用率
    %MEM:进程使用的物理内存和总内存的百分比
    r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。
    await:IO 操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括 IO 等待和实际操作的耗时。
    如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
    avgqu-sz:向设备发出的请求平均数量。如果这个数值大于 1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。
    %util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过 60,可能会影响 IO 性能(可以参照 IO 操作平均等待时间)。
    如果到达 100%,说明硬件设备已经饱和。
    

    连接失败的服务器信息怎么删除

    服务器每 3 天会清空连接失败的服务器信息,所以 3 天后你就看不到连接失败的服务器信息了。目前暂不支持手动操作,全部由系统自动处理。

    同时系统会定时清除 30 天前的监控信息。

    告警提示规则

    系统内存使用率阈值 99%,超过发送邮件,24 小时不会重复发。

    进程内存监控报警百分比阈值 99%,超过发送邮件,24 小时不会重复发。

    进程 CPU 使用率监控报警百分比阈值 99%,超过发送邮件,24 小时不会重复发。

    若不想接受告警通知,可在 applications.properties 里,关闭提示。

    访问地址

    http://localhost:9000/wgcloud

    登陆账号 /密码:admin/111111

    tomcat 下可运行的安装包请加 qq 群后,在群文件下载

    联系

    QQ 群:623503772

    第 1 条附言  ·  2019-01-30 10:18:51 +08:00
    统一回复,本项目志在开源,志在研究。
    但并代表最优秀的解决方案,只是自己曾经的一个项目,现在分享给大家。
    就是这样。
    大家提出的问题,我也想想。
    第 2 条附言  ·  2019-01-30 16:53:49 +08:00
    可以的话,请给个星星,谢谢哈
    26 条回复    2019-01-30 15:44:43 +08:00
    cominghome
        1
    cominghome  
       2019-01-30 09:20:03 +08:00   ❤️ 1
    和普罗米修斯比优势在哪?和 zabbix 呢
    Vogan
        2
    Vogan  
       2019-01-30 09:24:57 +08:00 via iPhone
    @cominghome 你这…不带这么拆台的 哈哈
    CallMeReznov
        3
    CallMeReznov  
       2019-01-30 09:27:01 +08:00
    我来!
    这个比 zabbix 轻!
    比 prometheus 好看!
    结束!
    yukiww233
        4
    yukiww233  
       2019-01-30 09:27:25 +08:00
    重复看到过好多次了。。。
    BOYPT
        5
    BOYPT  
       2019-01-30 09:30:15 +08:00
    监控节点是以什么跟服务器通信的?
    tianshiyeben
        6
    tianshiyeben  
    OP
       2019-01-30 09:30:37 +08:00
    @yukiww233 一共发了 3 次
    fyibmsd
        7
    fyibmsd  
       2019-01-30 09:31:34 +08:00
    chronograf 了解一下
    tianshiyeben
        8
    tianshiyeben  
    OP
       2019-01-30 09:31:50 +08:00
    @BOYPT 服务器定时通过 ssh 连接,执行 linux 命令,获取监控节点状态
    SoulSleep
        9
    SoulSleep  
       2019-01-30 09:43:36 +08:00
    @tianshiyeben #8 定时通过 ssh 连接,执行 linux 命令,获取监控节点状态 这种方式真的太原始了,参考下成型的产品是怎么做的吧。
    tionsin
        10
    tionsin  
       2019-01-30 09:45:38 +08:00
    我服务器可能部署完,就把内存,cpu 吃完了...hh
    tianshiyeben
        11
    tianshiyeben  
    OP
       2019-01-30 09:46:57 +08:00
    @tionsin 这个运行,对内存,cpu 很低
    lihongjie0209
        12
    lihongjie0209  
       2019-01-30 09:47:23 +08:00
    我们的服务器内存很紧张, 如果一个监控程序使用 java 写的, 那么我们可能因为内存占用的原因而放弃
    tianshiyeben
        13
    tianshiyeben  
    OP
       2019-01-30 09:47:56 +08:00
    @SoulSleep 会继续优化改进
    aaa5838769
        14
    aaa5838769  
       2019-01-30 09:48:02 +08:00
    可以自定义监控服务不?
    tianshiyeben
        15
    tianshiyeben  
    OP
       2019-01-30 09:48:51 +08:00
    @lihongjie0209 这个不吃内存,对 cpu 要求也很低
    tianshiyeben
        16
    tianshiyeben  
    OP
       2019-01-30 09:49:54 +08:00
    @aaa5838769 可以,拿进程 id 就行
    iyaozhen
        17
    iyaozhen  
       2019-01-30 09:52:12 +08:00 via Android
    @tianshiyeben 这个根本铺不开,无密码登录机器间得建立信任,机器多了多麻烦,要是写死账号密码的多不安全
    mritd
        18
    mritd  
       2019-01-30 09:52:21 +08:00 via iPhone
    @tianshiyeben #15 写了 好几年 java 现在折腾容器的表示: java 不吃内存都是假的
    jiangnanyanyu
        19
    jiangnanyanyu  
       2019-01-30 10:01:08 +08:00 via Android
    看了一波代码,拼装图表的 json 应该蛮难受(╯﹏╰)的
    lihongjie0209
        20
    lihongjie0209  
       2019-01-30 10:26:02 +08:00
    @tianshiyeben 不, 哪怕你的程序用 1M 内存, 但是 JVM 就要用 100M 内存, JVM 的 overhead 还是挺大的, 所以一般这种基础设施不太建议用 java
    dazhangpan
        21
    dazhangpan  
       2019-01-30 10:30:46 +08:00
    挺好的,顺便抛个砖:

    监控类工具做得再轻量再好看如果内容仍是传统的那些指标也已经不容易占领市场了,个人浅见需要向专门化发展:e.g.CPU 除了占用率之外还需要 PMU 的数据支持诊断程序性能瓶颈,或者通过对 PMU 的分析学习诊断服务器有没有被病毒感染,以及在云计算时代提供对 noisy neighbour 的探测和防护等。总之如果能通过监控解决运维之上的“业务”问题,比较容易在这个领域独树一帜。
    tianshiyeben
        22
    tianshiyeben  
    OP
       2019-01-30 10:39:03 +08:00
    @lihongjie0209 嗯,建议很中肯
    @dazhangpan 嗯,你很专业啊。现在还没想过市场,想的是总有人需要的,就放出来了
    @jiangnanyanyu 是的,是挺难受
    notreami
        23
    notreami  
       2019-01-30 10:45:08 +08:00
    有点伤感,现在看到 jsp,第一个想法是:不想看,这个已经不流行了。
    tianshiyeben
        24
    tianshiyeben  
    OP
       2019-01-30 10:45:34 +08:00
    zhouyut001
        25
    zhouyut001  
       2019-01-30 13:25:54 +08:00
    太麻烦了,还不如用 netdata,一样开源
    mogging
        26
    mogging  
       2019-01-30 15:44:43 +08:00
    主机运维工具相对好做一点,想要一个 devops dashboard 这种,目前好像知道只有一个开源货叫做 Hygieia 相当不靠谱,不知道这里的大佬有没有推荐的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5660 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:45 · PVG 16:45 · LAX 00:45 · JFK 03:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.