Middleware, data collection, random port jmx solve the problem [Linux]

Note: View java environment variable, if java environment variable is not set, please fill out the absolute path of java
1, configuration jmx, open port 12345, there are other notes archive

2. Configure key or upload jmx.conf
Middleware, data collection, random port jmx solve the problem [Linux]

3, upload cmdline-jmxclient-0.10.3.jar to / usr / local / zabbix / bin directory
Middleware, data collection, random port jmx solve the problem [Linux]


4, upload gc_info.py and mpool_info.py to / usr / local / zabbix / scripts directory (currently optimized, else unused condition) script details are as follows:

[root @ Tomcat scripts] # CAT gc_info.py
# / usr! / bin / python

import os,subprocess,json
import argparse

def gc_info(name_info, ip, port):
data = {}
disk_lists = []
info_list = []
if name_info == None:
p = subprocess.Popen("java -jar /usr/local/zabbix/bin/cmdline-jmxclient0.10.3.jar - " + ip +":" + port + "|grep type=GarbageCollector", shell=True, stdout=subprocess.PIPE) disk_infos = p.stdout.readlines()
for disk_info in disk_infos:
line = disk_info.split(",")
line = line[0]
line = line.split("=")
#line=line.strip()
disk_lists.append(line)
for disk_list in disk_lists:
disk_dict = {}
disk_dict['{#GC}'] = disk_list[1]
info_list.append(disk_dict)
data['data'] = info_list
jsonStr = json.dumps(data, sort_keys=True, indent=4)
print (jsonStr)
else:
p = subprocess.Popen("java -jar /usr/local/zabbix/bin/cmdline-jmxclient0.10.3.jar - 127.0.0.1:12345 |grep GarbageCollector", shell=True, stdout=subprocess.PIPE) disk_infos = p.stdout.readlines()
for disk_info in disk_infos:
line = disk_info.split(",")
disk_lists.append(line)
#print disk_infos
for disk_list in disk_lists:
if name_info == disk_list[0]:
print (disk_list[1])

if name == "main":
parser = argparse.ArgumentParser()
parser.add_argument('--name',type=str, default = None)
parser.add_argument('--ip',type=str, default = None)
parser.add_argument('--port',type=str, default = None)
args = parser.parse_args()
gc_info(args.name, args.ip, args.port)

[root@tomcat scripts]# cat mpool_info.py
import os,subprocess,json
import argparse

def memorypool_info(name_info, ip, port):
data = {}
disk_lists = []
info_list = []
if name_info == None:
p = subprocess.Popen("java -jar /usr/local/zabbix/bin/cmdline-jmxclient0.10.3.jar - " + ip +":" + port + "|grep MemoryPool", shell=True, stdout=subprocess.PIPE) disk_infos = p.stdout.readlines()
for disk_info in disk_infos:
line = disk_info.split(",")
line = line[0]
line = line.split("=")
#line=line.strip()
disk_lists.append(line)
#print (disk_lists)
for disk_list in disk_lists:
disk_dict = {}
disk_dict['{#MPOOL}'] = disk_list[1]

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

else:
p = subprocess.Popen("java -jar /usr/local/java/cmdline-jmxclient0.10.3.jar - 127.0.0.1:12345 |grep MemoryPool", shell=True, stdout=subprocess.PIPE)
disk_infos = p.stdout.readlines()
for disk_info in disk_infos:
line = disk_info.split(",")
disk_lists.append(line)
#print disk_infos
for disk_list in disk_lists:
if name_info == disk_list[0]:
print (disk_list[1])

if name == "main":
parser = argparse.ArgumentParser()
parser.add_argument('--name',type=str, default = None)
parser.add_argument('--ip',type=str, default = None)
parser.add_argument('--port',type=str, default = None)
args = parser.parse_args()
memorypool_info(args.name, args.ip, args.port)

5、重启zabbix_agent
[root@tomcat scripts]# systemctl restart zabbix_agentd

6, import templates, you can create a host monitoring

7, the following accessories:
Middleware, data collection, random port jmx solve the problem [Linux]

Guess you like

Origin blog.51cto.com/14483703/2434736