zabbix复述,自动发现端口的脚本,返回json格式

  

在我们进行自动发现的时候,总会有一个脚本来获取端口等信息,并返回json格式,那以复述为例,下边是复述,进行进行自动发现的脚本

  
 <代码> redisport=(' ps辅助| grep - w redis-server | grep - v“grep”| awk - f”:“{打印$ NF} ' ')
  portnum=$ {# redisport [@]}
  
  数='主机名| grep \平方”| wc - l '
  如果(eq 1美元数),然后
  地址='/usr/sbin/ip地址| grep - w“inet”| awk - f”“{打印$ 2}’| egrep“^ 10。”| awk - f“/薄皗打印$ 1}’”
  其他的
  地址='/usr/sbin/ip地址| grep“192.168”| awk的{打印$ 2}| awk - f“/钡膡打印1美元}' '
  fi
  
  printf“{\ n”
  printf \ t \“\”数据”:["
  ((i=0; i< portnum美元;我+ +))
  做
  printf ' \ n \ t \ t {\ n’
  printf“\ t \ \ t”
  printf“\”{# REDIS_PORT} \ ": \ " $ {redisport [$ i]} \ ",
  printf“\ n \ t \ \ t”
  printf“\”{# REDIS_ADDRESS} \ ": \ " ${地址}“\”,
  printf“\ n \ t \ \ t”
  printf“\”{# REDIS_NAME} \”, \“复述,${地址}:$ {redisport [$ i]} \”“
  printf“\ n \ t \ t}”
  如果(我lt美元($ portnum-1]);
  printf”、“
  fi
  完成
  printf“\ n \ t] \ n”
  printf“} \ n” 
  

返回结果如下

  
 <代码> {
  “数据”:(
  {
  “{# REDIS_PORT}”:“6386”,
  “{# REDIS_ADDRESS}”:“192.168.43.66”,
  “{# REDIS_NAME}”:“复述,192.168.43.66:6386”
  },
  {
  “{# REDIS_PORT}”:“6387”,
  “{# REDIS_ADDRESS}”:“192.168.43.66”,
  “{# REDIS_NAME}”:“复述,192.168.43.66:6387”
  },
  {
  “{# REDIS_PORT}”:“6388”,
  “{# REDIS_ADDRESS}”:“192.168.43.66”,
  “{# REDIS_NAME}”:“复述,192.168.43.66:6388”
  },
  {
  “{# REDIS_PORT}”:“6379”,
  “{# REDIS_ADDRESS}”:“192.168.43.66”,
  “{# REDIS_NAME}”:“复述,192.168.43.66:6379”
  },
  {
  “{# REDIS_PORT}”:“6384”,
  “{# REDIS_ADDRESS}”:“192.168.43.66”,
  “{# REDIS_NAME}”:“复述,192.168.43.66:6384”
  },
  {
  “{# REDIS_PORT}”:“6385”,
  “{# REDIS_ADDRESS}”:“192.168.43.66”,
  “{# REDIS_NAME}”:“复述,192.168.43.66:6385”
  }
  ]
  } 

zabbix复述,自动发现端口的脚本,返回json格式