https://github.com/tianshiyeben/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
1
cominghome 2019-01-30 09:20:03 +08:00 1
和普罗米修斯比优势在哪?和 zabbix 呢
|
2
Vogan 2019-01-30 09:24:57 +08:00 via iPhone
@cominghome 你这…不带这么拆台的 哈哈
|
3
CallMeReznov 2019-01-30 09:27:01 +08:00
我来!
这个比 zabbix 轻! 比 prometheus 好看! 结束! |
4
yukiww233 2019-01-30 09:27:25 +08:00
重复看到过好多次了。。。
|
5
BOYPT 2019-01-30 09:30:15 +08:00
监控节点是以什么跟服务器通信的?
|
6
tianshiyeben OP @yukiww233 一共发了 3 次
|
7
fyibmsd 2019-01-30 09:31:34 +08:00
chronograf 了解一下
|
8
tianshiyeben OP @BOYPT 服务器定时通过 ssh 连接,执行 linux 命令,获取监控节点状态
|
9
SoulSleep 2019-01-30 09:43:36 +08:00
@tianshiyeben #8 定时通过 ssh 连接,执行 linux 命令,获取监控节点状态 这种方式真的太原始了,参考下成型的产品是怎么做的吧。
|
10
tionsin 2019-01-30 09:45:38 +08:00
我服务器可能部署完,就把内存,cpu 吃完了...hh
|
11
tianshiyeben OP @tionsin 这个运行,对内存,cpu 很低
|
12
lihongjie0209 2019-01-30 09:47:23 +08:00
我们的服务器内存很紧张, 如果一个监控程序使用 java 写的, 那么我们可能因为内存占用的原因而放弃
|
13
tianshiyeben OP @SoulSleep 会继续优化改进
|
14
aaa5838769 2019-01-30 09:48:02 +08:00
可以自定义监控服务不?
|
15
tianshiyeben OP @lihongjie0209 这个不吃内存,对 cpu 要求也很低
|
16
tianshiyeben OP @aaa5838769 可以,拿进程 id 就行
|
17
iyaozhen 2019-01-30 09:52:12 +08:00 via Android
@tianshiyeben 这个根本铺不开,无密码登录机器间得建立信任,机器多了多麻烦,要是写死账号密码的多不安全
|
18
mritd 2019-01-30 09:52:21 +08:00 via iPhone
@tianshiyeben #15 写了 好几年 java 现在折腾容器的表示: java 不吃内存都是假的
|
19
jiangnanyanyu 2019-01-30 10:01:08 +08:00 via Android
看了一波代码,拼装图表的 json 应该蛮难受(╯﹏╰)的
|
20
lihongjie0209 2019-01-30 10:26:02 +08:00
@tianshiyeben 不, 哪怕你的程序用 1M 内存, 但是 JVM 就要用 100M 内存, JVM 的 overhead 还是挺大的, 所以一般这种基础设施不太建议用 java
|
21
dazhangpan 2019-01-30 10:30:46 +08:00
挺好的,顺便抛个砖:
监控类工具做得再轻量再好看如果内容仍是传统的那些指标也已经不容易占领市场了,个人浅见需要向专门化发展:e.g.CPU 除了占用率之外还需要 PMU 的数据支持诊断程序性能瓶颈,或者通过对 PMU 的分析学习诊断服务器有没有被病毒感染,以及在云计算时代提供对 noisy neighbour 的探测和防护等。总之如果能通过监控解决运维之上的“业务”问题,比较容易在这个领域独树一帜。 |
22
tianshiyeben OP |
23
notreami 2019-01-30 10:45:08 +08:00
有点伤感,现在看到 jsp,第一个想法是:不想看,这个已经不流行了。
|
24
tianshiyeben OP @notreami 唉
|
25
zhouyut001 2019-01-30 13:25:54 +08:00
太麻烦了,还不如用 netdata,一样开源
|
26
mogging 2019-01-30 15:44:43 +08:00
主机运维工具相对好做一点,想要一个 devops dashboard 这种,目前好像知道只有一个开源货叫做 Hygieia 相当不靠谱,不知道这里的大佬有没有推荐的
|