huazhi 发表于 2018-1-2 10:41:14

zabbix 使用LLD自动添加进程监控

  监控需求:1.服务器上在/data/gameserver下有n个目录,每个目录都使用相对路径启动了3个进程,现要对这些进程进行监控,需要能得知是哪个目录下的哪个进程宕掉;
  2.目录数量可能会增加和删减;
  3.进程的名字都是一样的,启动的端口也是随机无规律;
  解决方法:因目录数量可能增加与删减所以需要是用LLD发现做监控:

https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttps://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif  

#!/usr/bin/python  
#
XFTZN gameserver dir zabbix LLD moniotr  
#
2017/05/22  

  
import os
  
import json
  

  
data = {}
  
game_list = []
  
dir_list = []
  
command = 'ls /data/gameserver'
  
lines = os.popen(command).readlines()
  

  
for line in lines:
  dir = line.replace("\n","")
  dir_list.append(dir)
  

  
for dir in dir_list:
  dir_dict = {}
  dir_dict['{#GAME_DIR}'] = dir
  game_list.append(dir_dict)
  

  
data['data'] = game_list
  
jsonStr = json.dumps(data, sort_keys=True, indent=4)
  
print jsonStr
  


View Code  aa

https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttps://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif  

#!/usr/bin/python  
#
XFTZN gameserver dir zabbix LLD moniotr  
#
2017/05/23  

  
import os
  
import sys
  

  
check_pro = sys.argv
  
check_dir = sys.argv
  
run_pro_dir = []
  

  
command = 'pgrep '+check_pro
  
lines = os.popen(command).readlines()
  

  
for line in lines:
  pid = line.replace("\n","")
  command2 = str('sudo pwdx '+pid)
  lines2 = os.popen(command2).readline()
  dir = lines2.replace("\n","")
  dir2 = dir.split('/')
  run_pro_dir.append(dir2)
  

  
if check_dir in run_pro_dir:
  print "1"
  
else:
  print "2"
  


View Code
页: [1]
查看完整版本: zabbix 使用LLD自动添加进程监控