轻量级监控平台之java进程监控脚本
轻量级监控平台之java进程监控脚本
#!/bin/bash
#进程监控脚本
#功能需求: 上报机器Java进程的进程ID,对应的端口号service tcp端口号,tomcat http 端口号,以及tcp链接数数据
. /etc/profile
. ~/.bash_profile
pushurl="https://lightmonitorapi.test.cn/push/process"
proNum=$(jps | grep -v Jps | cut -d' ' -f1)
i=1
cd /opt/web/
webDir=$( ls )
serviceRunning=$(service list | grep RUNNING)
msg=""
for pid in $proNum
do
port=$(echo "$serviceRunning" | grep $pid | awk -F " " '{print $8}')
if [ -n "$port" ];then
serviceName=$(echo "$serviceRunning" | grep $pid | awk -F " " '{print $1}')
threadTime=$(ps -eo pid,tty,user,comm,stime,etime | grep "$pid"| cut -c 46-60)
tcpStatus=$(netstat -nat | grep $port | awk '{print $6}' | sort | uniq -c)
escount=$( echo "$tcpStatus" | grep "ESTABLISHED" | awk '{print $1}')
cwcount=$( echo "$tcpStatus" | grep "CLOSE_WAIT" | awk '{print $1}')
twcount=$( echo "$tcpStatus" | grep "TIME_WAIT" | awk '{print $1}')
licount=$( echo "$tcpStatus" | grep "LISTEN" | awk '{print $1}')
msg=$msg"$pid,$serviceName,$port,$threadTime,T,E$escount,C$cwcount,T$twcount,L$licount\n"
else
for fileName in $webDir
do
fileDir=$(ps -ef | grep "$pid" | grep "$fileName")
if [ -n "$fileDir" ];then
serverPath="/opt/web/$fileName/conf/server.xml"
threadTime=$(ps -eo pid,tty,user,comm,stime,etime | grep "$pid"| cut -c 46-60)
httpPort=$(cat "$serverPath" | grep 'Connector' | cut -d' ' -f6 | awk -F "[\"\"]" '{print $2}')
tcpStatus=$(netstat -nat | grep $httpPort | awk '{print $6}' | sort | uniq -c)
escount=$( echo "$tcpStatus" | grep "ESTABLISHED" | awk '{print $1}')
cwcount=$( echo "$tcpStatus" | grep "CLOSE_WAIT" | awk '{print $1}')
twcount=$( echo "$tcpStatus" | grep "TIME_WAIT" | awk '{print $1}')
licount=$( echo "$tcpStatus" | grep "LISTEN" | awk '{print $1}')
msg=$msg"$pid,$fileName,$httpPort,$threadTime,H,E$escount,C$cwcount,T$twcount,L$licount\n"
fi
done
fi
done
ip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d '/')
ticket=$(cat /opt/shell/ticket.txt)
curl $pushurl \
-H "Accept: application/json" \
-H 'Content-Type: application/json' \
-d \ '{"ip": "'"${ip}"'", "ticket": "'"${ticket}"'", "data": "'"${msg}"'"}'
轻量级监控平台之java进程监控脚本的更多相关文章
- 初识阿里开源的本地Java进程监控调试工具arthas(阿尔萨斯)
转载自:https://www.cnblogs.com/linhui0705/p/9795417.html 上个月,阿里开源了一个名为Arthas的监控工具.恰逢近期自己在写多线程处理业务,由此想到了 ...
- Java进程监控
目录 1.引言 2. 程序启停, 为进程自定义项目名称 3. 操作系统判断 4. 获取进程信息 5. 内存,CPU信息 6. 堆内存信息 7. 端口信息 8. 线程信息 9. MXBean使用样例 9 ...
- Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做
7月6日任务 19.1 Linux监控平台介绍19.2 zabbix监控介绍19.3/19.4/19.5 安装zabbix19.6 忘记Admin密码如何做 19.1 Linux监控平台介绍 一般大公 ...
- Linux centosVMware Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做
一.Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios ...
- shell脚本--监控java进程存活脚本
#!/bin/bash base_dir=/opt war_processor="tomcat" jar_processor="manager-server.jar pl ...
- linux平台关闭某个进程的脚本
在开发LINUX平台下的程序时,经常需要为我们的开发的程序写启动程序和关闭程序的脚本. 启动脚本比较好做,关闭程序脚本如下: 具体思路是通过ps命令找到程序的进程ID号,然后通过Kill命令将程序Ki ...
- 基于java spring框架开发部标1078视频监控平台精华文章索引
部标1078视频监控平台,是一个庞杂的工程,涵盖了多层协议,部标jt808,jt809,jt1078,苏标Adas协议等,多个平台功能标准,部标796标准,部标1077标准和苏标主动安全标准,视频方面 ...
- 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus
前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...
- 部署zabbix监控平台(源码安装)
案例:部署Zabbix监控平台 1 问题 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 安装LNMP环境 源码安装Zabbix 安装监控端主机,修改基本 ...
随机推荐
- qq cookie
qq cookie from selenium import webdriver from selenium.webdriver import ActionChains import time, re ...
- Git push error: http 411的解决方案总结
目录 一.事故现场 二.事故原因 三.解决方案 一.事故现场 git push 的时候报错如下: 将分支推送到远程存储库时遇到错误:Git failed with a fatal error, the ...
- 【一起刷LeetCode】在未排序的数组中找到第 k 个最大的元素
题目描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 ...
- IT兄弟连 HTML5教程 CSS3揭秘 CSS简介
HTML使用标签将内容放到网页上,也可使用元素和属性来控制简单的文档外观.如果希望更全面地控制Web页面的外观和布局,则需要使用层叠样式表(简写为CSS).CSS规范的工作原理在于允许用户制定一些规则 ...
- css多余文本使用....代替
1. 只显示单行文本,多余文本使用...代替 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 2. 显示多行文本,多余文 ...
- ETCD:基于角色的访问控制
原文地址:Role-based access control 总览 身份验证已添加到etcd 2.1中. etcd v3 API略微修改了身份验证功能的API和用户界面,以更好地适应新的数据模型.本指 ...
- Java描述设计模式(06):建造者模式
本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 基于建造者模式,描述软件开发的流程. 1.代码实现 /** * 基于建造者模式描述软件开发 */ public class C0 ...
- navicat 12激活
激活软件:https://github.com/DoubleLabyrinth/navicat-keygen/releases 激活说明:https://github.com/DoubleLabyri ...
- Web前端基础(14):jQuery基础(一)
1. jQuery概述 1.1 为什么要使用jQuery 在用js写代码时,会遇到一些问题: window.onload 事件有事件覆盖的问题,因此只能写一个事件. 代码容错性差. 浏览器兼容性问题. ...
- 网络协议 3 - 物理层 和 MAC 层
在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了. 今天,我们来认识下 物理层 和 MAC 层. 日常生活中,身为 90 后 ...