jstatを利用して自動的に監視カメラjavaプログラムを発見します.
jstatを利用して自動的に監視カメラjavaプログラムを発見します.
このプロジェクトは何日間もやりました.原因をまとめました.自動発見登録監視カメラの原理が分かりません.これまで残していたスクリプトが多くてサポートされていません. はできません.脚本はまだ完全に把握できていません.時間があれば、よく見てください. やはり構想の問題、問題を解決する方法千万、1株の木の上で吊り上げないでください、多く何種類かの死に方を試してみます.以前はjmxを使って監視測定したいです. jstatコマンドを使ってパラメータを取得します.ここでは計画任務を使っています.以前はシナリオに入れていましたが、サービスが死んでしまいました.
スクリプト1:
ヴィスド
このプロジェクトは何日間もやりました.原因をまとめました.
:
S0C: survivor( ) ( )
S1C: survivor( ) ( )
S0U: survivor( ) ( )
S1U: survivor( ) ( )
EC: Eden( ) ( )
EU: Eden( ) ( )
OC:Old ( )
OU:Old ( )
PC:Perm( ) ( )
PU:Perm( ) ( )
YGC: gc !
YGCT: gc (s)
FGC: old ( gc)gc !
FGCT: old ( gc)gc (s)
S0: survivor( )
S1: survivor( )
E: Eden( )
O:old
P:perm
干物を直接油で絞るスクリプト1:
[root@iZj6chku2ng9ofxksew0oiZ userparameter_scripts]# cat java_name_discovery.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import os
import subprocess
import simplejson as json
t=subprocess.Popen("ps -ef | grep java|grep -vE '(grep|/bin/bash)'|awk '{print $9}'|awk -F '=' '{print $2}'",stdout=subprocess.PIPE,shell=True).communicate()[0]
#data=t.stdout.readlines()
#print(data)
tomcats=[]
for tomcat in t.split('
'):
if len(tomcat) != 0:
tomcats.append({'{#TOMCAT_NAME}':tomcat})
# zabbix json
print json.dumps({'data':tomcats},sort_keys=True,indent=4,separators=(',',':'))
java , json , zabbix !
pip ,
スクリプト2:#!/bin/bash
JAVA_NAME=$1
STATUS=$2
export PATH=$PATH:/usr/java/jdk1.8.0_144/bin/
PID=$(ps -ef | grep $JAVA_NAME | grep '/bin/java' | grep -v grep | awk '{print $2}')
#echo $PID
fun1 () {
# echo "1"
jstat -gc $PID | awk -v st=$STATUS '{for(i=1;i<=NF;i++) if($i ==st) n=i} END{print $n}'
}
fun2 () {
# echo "2"
jstat -gcutil $PID | awk -v st=$STATUS '{for(i=1;i<=NF;i++) if($i ==st) n=i} END{print $n}'
}
case $STATUS in
"S0C"| "S1C"|"S0U"|"S1U"|"EC"|"EU"|"OC"|"OU"| "YGC"|"YGCT"|"FGC"|"FGCT")
fun1;;
"S0"|"S1"|"E"|"O")
fun2;;
*)echo "print number error"
exit1;;
esac
ZabbixプロファイルUserParameter=java.name.discovery,sudo /usr/bin/python /etc/zabbix/zabbix_agentd.d/userparameter_scripts/java_name_discovery.py
UserParameter=java.status.monitor[*],sudo /etc/zabbix/zabbix_agentd.d/userparameter_scripts/java_status_monitor.sh $1 $2
権限についてはここで注意してください.ヴィスド
zabbix ALL=(ALL) NOPASSWD: ALL. #
Defaults:zabbix !requiretty #
Zabbixプロファイルは修正が必要なところ:AllowRoot=1 #AllowRoot=1( root )
注意:配置を修正してから、zabbix-agentを再起動し、zabbix_を利用する.getでデータを取得して、正常にデータが取得されているか確認してください.