1.编辑自动发现脚本

自动发现脚本只支持JSON格式

#!/usr/bin/env python
# -*- coding:utf-8 -*- import commands
import psutil
import threading
import json # 获取所有java进程的pid
Pids=commands.getoutput('pidof java').split() def name(pid):
p = psutil.Process(int(pid))
# 应为zabbix监控,是使用zabbix用户,所以cwd参数会报权限不足
#dir = p.cwd().split(r'/')
#return str(dir[-2]).split(r'_')[-1]
# 这种办法虽然Low一点,但是目前来说,是可以使用的
return p.cmdline()[-4].split(r'/')[-1] pids={}
data=[]
for i in Pids:
scn={}
scn[r"{#PID}"]=i
scn[r"{#NAME}"] = name(i)
data.append(scn) pids["data"] = data
print json.dumps(pids)

执行效果

# ./process_scan.py
{"data": [{"{#PID}": "47524", "{#NAME}": "tomcat_xxx"}]}

2.编辑性能获取脚本

#!/usr/bin/env python
# coding:utf-8 import psutil
import sys item = sys.argv[1]
pid = sys.argv[2] # 进程状态[目前都是多线程程序,所以此状态只有参考价值]
def status(pid):
p = psutil.Process(int(pid))
return p.status() # 内存使用率
def mem(pid):
p = psutil.Process(int(pid))
return p.memory_percent() # CPU使用率
def cpu(pid):
p = psutil.Process(int(pid))
return p.cpu_percent() if item == 'status':
print status(pid)
elif item == 'mem':
print '%.2f' %(mem(pid))
elif item == 'cpu':
print cpu(pid)

3.添加zabbix自动意义参数

$ vim etc/zabbix_agentd.conf
UserParameter=process_scan,/data/zabbix/process_scan.py
UserParameter=Process_status[*],/data/zabbix/process_status.py $1 $2

4.zabbix中添加自定义发现项

5.添加监控项

最新文章

  1. javascript的列表切换
  2. fork子进程僵尸问题及解决方案
  3. HDU 5652 India and China Origins(经典并查集)
  4. 一 mybatis快速入门
  5. ImageMagick远程命令执行工具检测工具
  6. FZU 2092 收集水晶 bfs+记忆化搜索 or 暴力
  7. dp,px转换
  8. 设置 MyEclipse 默认打开文件方式
  9. 为一张PCI卡打通经络的过程
  10. js中substring和substr的用法 (转)
  11. shell实例浅谈之六文件特定行打印的多种方法
  12. [Noi2015]荷马史诗
  13. Android-MVVM架构-Data Binding的使用
  14. 20155324《网络对抗》Exp2 后门原理与实践
  15. SSH 安全加固
  16. 微信POST请求接收不到数据问题
  17. C语言 投票系统:给定候选人,从键盘输入候选人的名字,统计票数,并输出最终获胜者
  18. linux chmod命令使用
  19. 携程Apollo配置中心架构深度剖析
  20. Java通过BCrypt加密

热门文章

  1. 报Cannot change version of project facet Dynamic web module to 2.5 错误
  2. C++杂分析
  3. 在没有DOM操作的日子里,我是怎么熬过来的(终结篇)
  4. ACM HDU Bone Collector 01背包
  5. zzuli 1812: sort 排序
  6. POJ 2828 Buy Tickets 线段树 倒序插入 节点空位预留(思路巧妙)
  7. linux使用mysql给一个用户赋予一个权限
  8. 【下一代核心技术DevOps】:(五)微服务CI与Rancher持续集成
  9. 10_Eclipse中演示Git冲突的解决
  10. windows 环境安装oracle11g db 或者RAC 防火墙必需要透过的进程,port