Zabbix监控万物5--监控JAVA heap memory相关
    
  
      
      
     
    
      
        背景
实现
创建scripts
在scripts(/etc/zabbix/scripts)目录下创建一个新的shell脚本 get_heap_memory.sh
| 12
 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运行这个脚本的权限来省略这一步
获得任务执行结果
在脚本运行后,会生成下面两个文件,我们监控这两个文件即可
| 12
 
 | /var/log/zabbix/heap_memory_used.txt/var/log/zabbix/heap_memory_max.txt
 
 | 
在console中配置
分别创建两个item,用来监控最大值和已使用值
 
 
      
     
    
      
  
  
    
      
      
        
        前Android/Vue开发,现Infra从业人员,主营监控/AWS