欢迎访问我的博客,你的支持,是我最大的动力!

supervisorman-supervisor辅助信息查询工具

Linux 小马奔腾 156℃ 评论
目录:
[显示]
工具说明

supervisorman是自己用shell写的一个supervisor辅助工具,可以查询所有由supervisor管理且为运行状态的程序的名称、pid、监听的端口号,是否是tomcat应用,若是还可以返回ajp端口号

原理:利用supervisorctl status命令过滤出所有状态为RUNNING的程序名及PID,然后基于该PID通过netstat -ltunp|grep PID的结果查询出所有监听端口,若监听地址为127.0.0.1,则会在端口号前加上一个*号为作标识。最后通过/etc/supervisord.d目录下的conf文件,得到程序类型,若为tomcat应用,则获取到server.xml,得到ajp端口号。

2019-08-06 更新
添加程序cpu占用百分比及mem内存使用量
其中cpu 100%表示使用了一个核心;内存单位为MB,不足1M将显示为0

运行效果:

环境说明

1、/etc/supervisord.conf 中配置导入 /etc/supervisord.d/*.conf
/etc/supervisord.d/*.conf 中conf文件的文件名为服务名称
[include]
files = /etc/supervisord.d/*.conf

2、服务类型示例:

tomcat类型服务

cat mytomcat-srv.conf
[program:mytomcat-srv]
directory=/data/srv/mytomcat-srv
command=sh bin/catalina.sh run
user=test
autorestart=true
stdout_logfile=/data/srv/mytomcat-srv/logs/mytomcat-srv.log
redirect_stderr=true
stdout_logfile_maxbytes=100MB

jar类型及其他类型服务

cat myjar-srv.conf
[program:myjar-srv]
directory=/data/srv/myjar-srv
command=sh myjar-srv.jar run prod
user=test
autorestart=true
stdout_logfile=/data/srv/myjar-srv/logs/myjar-srv.log
redirect_stderr=true
stdout_logfile_maxbytes=100MB

3、所有tomcat应用都开启了ajp,用于远程性能监控

部署代码

注意:$符号和反单引号需要使用\转义

原始脚本

关于printf

printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
%s %c %d %f都是格式替代符
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过会将内容全部显示出来。
%-4.2f 指格式化为小数,其中.2指保留2位小数。

另一个思路

cat PidToPort.sh
#!/bin/sh
Str=$1
Name=echo $Str|awk '{print $1}'
Pid=echo $Str|awk '{print $2}'
Port=netstat -ltunp|grep $Pid/|awk -F ":" '{print $2}'|awk '{print $1}'|tr '\n' '|'
echo $Name $Pid $Port
======================================
supervisorctl status|grep RUN|awk '{print $1,$4}'|awk -F ',' '{print $1}' | xargs -I {} ./PidToPort.sh {}

 

转载请注明:轻风博客 » supervisorman-supervisor辅助信息查询工具

喜欢 (0)or分享 (0)