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

2019-01-30 09:07:42 +08:00
 tianshiyeben

https://github.com/tianshiyeben/wgcloud

WGCLOUD

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

依赖环境

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/531766

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX