Zabbix监控万物5--监控JAVA heap memory相关
背景
实现
创建scripts
在scripts(/etc/zabbix/scripts)目录下创建一个新的shell脚本 get_heap_memory.sh
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/bash
pid=`ps -aux | grep java | grep wildfly | grep -v "grep" | grep -v $0 | awk '{print $2}'`
S0U=`jstat -gc $pid | awk '{if(NR!=1) print int($3+0.5)}'` S1U=`jstat -gc $pid | awk '{if(NR!=1) print int($4+0.5)}'` EU=`jstat -gc $pid | awk '{if(NR!=1) print int($6+0.5)}'` OU=`jstat -gc $pid | awk '{if(NR!=1) print int($8+0.5)}'` heap_memory_used=$((S0U+S1U+EU+OU)) heap_memory_max=`jinfo -flag MaxHeapSize $pid | awk -F "=" '{print $2}'` echo $heap_memory_used > /var/log/zabbix/heap_memory_used.txt echo $heap_memory_max > /var/log/zabbix/heap_memory_max.txt
|
配置定时任务
由于zabbix agent没有权限去运行这个命令,因此我们采用定时任务的方式
1
| * * * * * sudo bash /etc/zabbix/get_heap_memory.sh
|
注:其实可以通过赋予agent运行这个脚本的权限来省略这一步
获得任务执行结果
在脚本运行后,会生成下面两个文件,我们监控这两个文件即可
1 2
| /var/log/zabbix/heap_memory_used.txt /var/log/zabbix/heap_memory_max.txt
|
在console中配置
分别创建两个item,用来监控最大值和已使用值
前Android/Vue开发,现Infra从业人员,主营监控/AWS