注:ビューのJava環境変数、Java環境変数が設定されていない場合、Javaの絶対パス記入してください
1、コンフィグレーションJMX、オープンポート12345を、他のノートのアーカイブがあります
2.キーの設定やjmx.confをアップロード
3、は/ usr / local / ZABBIX / binディレクトリにCMDLINE-jmxclient-0.10.3.jarをアップロード
次のように4、は/ usr / local / ZABBIX / scriptsディレクトリにgc_info.pyとmpool_info.pyをアップロードするスクリプトの詳細されている(現在は、他の未使用状態が最適化された):
[@ルートTomcatのスクリプト]#猫gc_info.py
ます。#/ usr! / binに/ pythonの
輸入OS、サブプロセス、JSON形式の
インポート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])
もし名前 == " メイン ":
パーサ= argparse.ArgumentParser()
parser.add_argument( ' -名'、種類= STR、デフォルト=なし)
parser.add_argument( ' - IP'、種類= STR、デフォルト=なし)
parser.add_argument( ' -ポート'、種類= STR、デフォルト=なし)
引数= parser.parse_args()
memorypool_info(args.name、args.ip、args.port)
5、重启zabbix_agent
[ルート@のtomcatスクリプト]#systemctl再起動zabbix_agentd
6、インポートテンプレートは、あなたがホスト監視を作成することができます
7、次の付属品: